Со временем, в процессе обучения, у каждого наступает такой момент, когда ты перестаешь расширять интерфейс и реализовывать родительский класс, а упоминание названия какого-либо фреймворка не вызывает у тебя вопрос "как ты там сказал? а что это?". Скорее всего ты уже даже скачал этот самый фреймворк и запилил на нем трехстраничный сайт, где, без шуток, даже регистрация работает! По завершении, в качестве фаталити, собственноручно и без подглядывания в мануал запушил это все на гитхаб и теперь почиваешь на лаврах. Вопрос "как" для задач, которые на данном этапе ты считаешь актуальными, не такой частый гость для тебя.
В этой заметке я хочу рассказать о проблемах, с которыми я столкнулся на данном этапе обучения и как Хекслет начинает помогать мне в их решении. Почему начинает, а не уже помог? Потому-что речь пойдет о только недавно запущенном нововведении на Хекслете, именуемом "Проекты". Если коротко, то это работа над (внезапно) небольшим проектом под руководством опытных разработчиков в течение одной-двух недель. У нас ушло две недели, а писали мы консольное приложение.
Зачем. В качестве кульминации я попытаюсь объяснить что я подразумеваю под гранью между "как" и "зачем". Допустим, вам нужно написать код, который будет решать следующую задачу: на входе принимать "что-то", делать с этим "что-то" "чего-то" и возвращать "что-то другое". Ни для кого не секрет, что решить эту задачу можно множеством способов и вопрос тут не в том, будете вы реализовывать это в объектно-ориентированном или функциональном стилях. Проблема скрыта глубже и выражается в вещах, о существовании которых вы возможно даже не знаете, либо где-то слышали мельком и не придали этому значения, решив, как и я, что это какие-то "высшие материи". О чем я говорю? Например лишние состояния или сайд эффекты, да и просто неудачная архитектура приложения или апи. Впадаешь в небольшой ступор, когда на вполне рабочий код тебе говорят "Плохо, зачем такое апи неудачное сделал" или "Тут вот это зачем, это же сайд эффект". О чем вы вообще, парни? Работает ведь все..
Бонусы. Помимо откровений о тайнах вселенной есть еще несколько серьезных плюсов, которые несет с собой работа над хекслетовским проектом.
- Разработка ведется с использованием системы контроля версий, а изменения выкладываются на удаленный репозиторий. Так что если у тебя какие-то вопросы по использованию гита или просто недостаток реальной работы с ним, пробелы ты скорее всего восполнишь, а недостаток устранишь.
- Весь код покрывается тестами. Да, по задумке ты уже должен пройти профессию где есть курс по тестам, но начал ли ты их использовать? Например я-нет. Участие в проекте поможет тебе преодолеть барьер между "ну я пробовал тесты писать, один раз правда" и их реальным применением в работе. Если обычными тестами тебя не удивить, тогда возможно сервисом непрерывной интеграции подключенным к твоему репозиторию?
- Если твои знания о композере и packagist, как и мои, ограничиваются на "это пакетный менеджер и сайт с какими-то фичами, с ним связанными" думаю тебе будет интересно написать свой композер-пакет и использовать в нем фичи с этого самого packagist.
- Консольное приложение интегрируется с сайтом. Где такую обучалку найдешь?
- В качестве приятности так же укажу просто интересное задание. Сам себе такое точно не придумаешь. Лично у меня мысль дальше блога или магазина вообще не уходила.
В общем всем закончившим профессию советую поучаствовать в каком-нибудь из проектов, насколько я понял хекслетаны не собираются ограничиваться только одним. На мой взгляд это отличная прокачка.