Видео доклады с конференции PHP Frameworks Day 2013
Видео обзор PHP фреймворков Symfony 2 (Роман Лапин), Yii 2 (Александр Макаров), Phalcon (Александр Торош), TulaCo (Даниил Кожемяко), Bluz (Антон Шевчук), Silex (Владимира Дубина). Сразу оговорюсь, что тема доклада по Symfony 2 - "Как превратить проект в боль", в котором докладчик повествует о частых Bad Practicies и дает полезные рекомендации. Так что обзора Symfony, как такового нет. Любопытно, что также не было докладов по Zend Framework и Laravel, хотя о них несколько раз упоминали в докладах о других фреймворках.
Впечатление
В целом от докладов осталось положительное впечатление и я почерпнул немного полезной информации. Но!
Было намного интересней, если бы докладчики повествовали о фреймворках в контексте реализации более сложного функционала, чем CRUD. Ведь все знают что простой список записей и форма редактирования пишутся довольно просто и на чистом PHP. Если выбирать фреймворк, исходя только из этих потребностей - то мне вообще пофиг какой фреймворк использовать! /если честно - я возьму фреймворк у которого есть CRUD генератор, и пусть он работает за меня, а я буду плевать в потолок :)/ Ну, или выбор будет крайне субъективным и принятое решение не будет как-нибудь аргументировано. Но мы то точно знаем что от маленько-среднего и до крупного проекта - простые CRUD страницы могут быть только в справочниках админки. Что мы делаем все остальное время, когда справочники в админке уже нагенерили?
Все остальное время мы: планируем архитектуру при изменении требований со стороны заказчика, рефакторим, пишем запросы с джойнами и под запросами, костылим трансформеры для преобразования 1:M
среза записей в JSON с вложенными сущностями, переписываем CRUD
'ы и делаем вложенные формы (это из симфони) чтобы вывести данные из связанных таблиц, педалим функционал сохранения и валидации не типичных форм, ищем доп. библиотеки (package
для компосера) и интегрируем их в проект, ааа.. как же - нет такой библиотеки? а эту нужно форкнуть чтобы кастомизировать для нашей доменной модели? Та-ак, а куда же положить этот класс валидации.. а где хранить менеджеры, а вот этот Event Listener
де разместить? ..может в app/
, их ведь не много будет.. ага, ну да)! Файл с роутингом вырос до 5000 строк или разбросан на сто-пиццот файлов? Валидаторы разбросаны по всему проекту потому, что этот проект сменил не одного разработчика? А этот «бла-бла-бла» - классный фреймворк!.. Что? Дополнение методов/свойств модели.. Не, а нафига оно мне?!
Уфф.. немного увлекся, но лишь малая часть проблем, с которыми сталкивался я и мои коллеги. Источник всех бед, ИМХО, связан с "эффектом разбитых окон". Но фреймворк может предоставлять не только нужный набор инструментов, но также задать необходимый гибкий каркас будущего приложения - структуру и расположение классов, которые могут понадобиться в дальнейшем. Если этого не делает фреймворк (привет Laravel), тогда архитектура полностью ложиться на плечи разработчиков. И тут, либо мы имеем достаточно набитых шишек, либо время от времени нам нужно обсуждать архитектурные моменты и писать внутренние конвенции, либо - делаем быстро и через ~ год-два выбрасываем и переписываем наш код. Вы вряд ли будете спорить, если я скажу что таких примеров предостаточно.
Видео докладов
Скажем «спасибо» человеку, который выкладывал видео на ютюб (нет ни темы доклада, ни названия видео в плейлисте)! Привожу содержание плейлиста и желаю хорошего просмотра)
- Symfony 2. Как превратить проект в боль (Роман Лапин);
- Yii 2 (Александр Макаров);
- Phalcon (Александр Торош). ИМХО, немного предвзято;
- TulaCo (Даниил Кожемяко);
- Bluz (Антон Шевчук);
- Silex (Владимир Дубина). Скучно.. я не досмотрел.
Всем спасибо. Замечания, предложения и здоровая критика в комментариях приветствуются)
#video (видео)