Эту статью я бы хотел посвятить замечательному алгоритму сортировки, носящему имя Дональда Шелла. Не секрет, что сортировка Шелла зачастую работает медленнее, чем быстрая сортировка (сортировка Хоара), которую мы рассматривали здесь.
Эту статью я бы хотел посвятить замечательному алгоритму сортировки, носящему имя Дональда Шелла. Не секрет, что сортировка Шелла зачастую работает медленнее, чем быстрая сортировка (сортировка Хоара), которую мы рассматривали здесь.
В процессе трудоустройства на должность PHP-разработчика вы можете столкнуться с довольно популярной задачей, на которой любят «ловить» многих кандидатов.
В мире современного ПО и высоких скоростей разработки можно смело говорить о том, что ни один процесс написания программного кода не обходится без ошибок.
По виду типизации, языки программирования делятся на языки с динамической (dynamic typing) и статической типизацей (static typing). Статическая типизация — когда тип переменной точно известен в compile-time, например в Clang
В любой сфере или области существуют определённые стандарты. Стандарты конструкций, размеров, технических процессов. Например, в России и большинстве стран СНГ при строительстве железной дороги используют установленный стандарт ширины колеи – 1520 мм. А теперь представьте, что было бы, если каждая строительная бригада использовала бы свой стандарт. На таких рельсах далеко бы мы не уехали…
Каждый день разработчики сталкиваются с огромным количеством монотонных задач. Это может быть сборка проекта, контроль качества, доставка изменений, подготовка окружения и так далее. На сегодняшний день существует огромное количество решений, которые позволяют автоматизировать некоторые из этих монотонных действий.
Одним из таких инструментов является Phing, который может быть интересен как раз PHP-разработчикам, так как сам написан на PHP и позволяет расширять свой функционал.
Ни для кого не секрет, что язык PHP имеет довольно низкий порог вхождения, что делает его как одним из самых удобных языков для быстрого создания веб-приложений, так и самым уязвимым для неоптимизированного кода. Зачастую разработчики даже Middle-уровня ограничиваются в своей работе тем, что используют среды разработки, такие, как OpenServer или XAMPP.
Разумеется, для небольших проектов в этом нет ничего фатального, но как только размер проекта вырастает, то появляются новые проблемы, которые до этого не были известны.
Сейчас большинство команд разработки принимает на вооружение стандарты кодирования и организовывает процедуры следования им. Самый лучший способ следить за соблюдением принятых стандартов, конечно же, это code review. Но постоянное возвращение кода из-за незамеченного тобой отступления от правил кодирования, к примеру, отсутствия отступа перед оператором return, не добавляет популярности данной процедуре. Чтобы уменьшить объём подобных небрежностей, для PHP-программистов существует инструмент CodeSniffer.
Все слышали о SQL-инъекциях, XSS, DoS, DDoS. Кто-то уходил дальше и рассказывал о других методах код-инклудинга, сниффинга, брутфорсинга. И только один из десяти кандидатов на собеседовании может полностью описать последствия удачно осуществлённой SQL-инъекции. Но самое неприятное, что практически все абсолютно уверены, что фильтрация всех получаемых от пользователя данных гарантирует отсутствие уязвимостей в коде.
В жизни каждого начинающего программиста наступает момент, когда становятся важными по крайней мере две составляющие: скорость и качество. Если качество кода приходит с годами, то прирост скорости в разработке можно получить в достаточно короткое время благодаря использованию различных фреймворков.