PHP развивается стремительно. И сам язык, и его реализация, и, особенно, сообщество. PHP перестаёт быть языком для быстрого клепания сайтиков и всё больше движется в сторону языка общего назначения, хотя путь этот будет долог — слишком много врожденных недостатков тянется с доисторических времён.
Как грибы растут стандарты, фреймворки, развивается и становится всё слаще синтаксис, растут разнообразные инструменты.
И это здорово!
Не совсем здорово то, что мы с вами, обычные разработчики, в массе своей всё больше отстаём от стремительного потока. История знает аналогичный пример — мамонты тоже отстали от стремительно меняющейся среды. И вымерли. Ну, или, по другой гипотезе — были съедены своими конкурентами за экологическую нишу — людьми. Неважно. Конец бедных гигантов в любом случае был печален.
Попробуйте пройти несложный тест и определить — не мамонт ли Вы в мире PHP? Не грозит ли Вам, как специалисту, вымирание в ближайшее время?
Тест, разумеется, пятничный и шуточный. Но в нём всё-таки есть доля истины.
Вы пишете на современных версиях языка
Основная версия 5.6? Отлично,
начислите себе 10 баллов. Уже собирали PHP 7 и тестировали свой код под ним? Прекрасно,
добавьте еще 5 баллов.
До сих пор пишете «array()»? Пугаетесь слова «трейт»? Ничего не знаете о генераторах? Используете md5 для хэширования паролей? Пора просыпаться, версия 5.4 вышла три года назад! Где вы были эти три года? Спали в хрустальном гробу? Вот только не нужно ничего говорить про тонны legacy-кода и про хостинги. Первая проблема это не проблема кода, а проблема вашей лени, а вторая вообще не существует в условиях, когда можно взять свой сервер всего за 250 рублей в месяц и организовать свой собственный хостинг.
Вы используете современные системы контроля версий
Что, вы не используете VCS в повседневной работе? Закройте эту страницу. Я серьёзно — вам не нужно дальше проходить тест, вам нужно немедленно позвонить ближайшему франчайзи «1С» и устроиться к нему внештатным разработчиком на побегушках.
Если же вы не мыслите своей работы без Git (или Hg, например) —
начисляйте себе 20 баллов
Вы правильно используете современные системы контроля версий
Начислите себе по 5 баллов за каждое утверждение, которое соответствует вам и вашему стилю работы:
(слово «git» можно заменять на другую VCS)
- Всё должно быть в git-е
- Всё — это значит всё! И даже конфиги приложения
- Crontab должен быть в git-e
- Инъекции в конфиги php или веб-сервера берутся откуда? Правильно, из вашего репозитория!
- Все изменения в структуре и системных данных в БД — только через Git, используем миграции или иной механизм
- Ну сколько раз повторять — ВСЁ ДОЛЖНО БЫТЬ В GIT-Е!
Вы используете современные системы контроля версий в соответствии с чётким workflow
Если вы работаете по git flow — сразу
добавьте себе 25 баллов, пожалуйста. В противном случае
добавляйте по 5 баллов за каждое утверждение, которое относится к вам:
- Всегда есть стабильная ветка, чьё состояние точно соответствует состоянию продакшна
- Каждой задаче — своя ветка
- Исключений из этого правила не бывает
- Ветки могут быть разных типов, в зависимости от типа задачи
- Любая ветка рано или поздно будет влита в стабильную (тем или иным путём) и/или удалена
Вы не вносите изменения в БД руками, для этого есть миграции, которые можно накатывать и откатывать
Неважно какой фреймворк вы используете, простейший механизм миграций в состоянии написать даже Junior за пару часов. Согласны? Так и делаете? Никогда не лазаете в БД на продакшн, чтобы добавить поле или индекс? Поздравляю,
заберите 10 баллов.
Хотите поспорить? Знаете, что такое ловчая яма? Вы — мамонт, вы сидите в этой яме и пытаетесь спорить с охотниками, раздумывающими, как вас оттуда вытащить — целиком или всё-таки предварительно порубив на куски. Удачи!
Вы используете сценарии сборки
Дружите с phing? Или знакомы с Capistrano? А может быть используете Ant?
15 баллов в студию!
И да, вы же помните — сценарии сборки у вас лежат где, где? Правильно
, в доме, где резной палисад в git-е!
Не знаете, что такое сценарии сборки? Не понимаете, зачем они нужны? Ааа, мамонт, еда для всего племени!!! Слышите, как уже бежит толпа охотников выбросить вас за борт?
Автоматический деплой
Teamcity? Или Jenkins? Или, может быть, Bamboo? Поздравляю, вы на шаг ближе к билету на Ноев ковчег и заодно получаете бонус —
10 баллов. Первый раз слышите эти слова? Или считаете себя умнее всех и написали свой велосипед для выкладки релизов? У меня для вас плохие новости. Тут одно из двух — или вымирать, или эволюционировать, — выбирайте!
PHPStorm?
- Да? 10 баллов
- Vi(m)? 5 баллов. Просто из уважения к динозаврам. Они переживут всех мамонтов, поверьте.
- Что-то другое? 0 баллов
Фреймворки
Zend? Symfony? Laravel? Yii, прости господи? Прекрасно.
Добавьте себе 20 баллов, если для вас это не пустые слова, а каждодневная работа.
Приплюсуйте еще 10, если вы постоянно работаете более, чем с одним современным фреймворком. Впрочем, ровно столько же можете себе добавить, если для конкретного проекта вы собираете набор нужных вам пакетов с помощью composer.
Плюс еще 5, если вас хотя бы однажды посещала мысль «До чего же криво в этом фреймворке реализовано X, я бы переделал» или
плюс 15 баллов, если вы взяли и переделали.
Спрашиваете, зачем нужны PHP-фреймворки? Хотите узнать, не стоит ли изучить CodeIgniter? Не понимаете, зачем управлять зависимостями в коде, ведь можно просто скачать к себе в проект нужную библиотеку? ОК, как только построят машину времени, я отправлю вас на 15 лет назад, где вы сможете в полной мере блеснуть своими талантами, а пока можете прибегнуть к криоконсервации, ведь вам всё равно будет нечем заняться в ближайшие годы.
Вы — немного DBA
Вы знаете, что на MySQL мир реляционных баз данных не заканчивается. Вы хотя бы раз в жизни выбирали сервер БД исходя из бизнес-требований к будущему приложению (и остановились на Postgres, не так ли?). Вы отчетливо понимаете, что в общем случае каждый JOIN — это вложенный цикл, прекрасно знаете, что правильные индексы и некривые запросы дадут для производительности гораздо больше, чем шардинг и балансировка нагрузки, не считаете NoSQL панацеей и смеетесь над идеей применять MongoDB в качестве основного хранилища реляционных по своей природе данных. А еще вы без фанатизма используете ORM тогда, когда это нужно, «голые» запросы, когда это оправдано и не боитесь переносить логику во внешние ключи, триггеры и процедуры.
Да?
Возьмите с полки 20 баллов, вы готовы к будущему. Остальным — всё тот же выбор. Не задерживаем очередь, выбираем — вымирать или развиваться? Следующий!
Подведём итоги
200 баллов
Обновите своё резюме. Сегодня же. Десятки компаний в стране уже осознали, что инвестировать в хороших разработчиков — выгодно. Вы готовы к будущему.
От 100 до 200 баллов
От вымирания можно спастись, мигрировав на
остров Врангеля. Однако конец всё равно будет печален. Лучше найдите в себе силы для саморазвития, пока не поздно.
Менее 100 баллов
Много вкусного мяса! «Мням-мням-мням» — слышите, как щелкают челюсти ваших конкурентов? Сожрут-с, однако.
P.S. Не воспринимайте тест всерьёз, всё-таки
пятница суббота !