Надо валить?!
- Разработчики мигрируют на
- Мигрируют потому что PHP отстой?!
PHP отстой, но не настолько!
- Отличный выбор для веб разработки.
- Живее всех живых.
- Язык программирования — всего лишь инструмент. Один из.
- С хорошим фреймворком косяки вылезают не так часто.
PHP хорош для бизнеса
- Ориентирован на веб.
- Много готового из коробки.
- Делает всё проще и легче.
- Просто найти и заменить разработчиков.
- Меньше риска.
- Меньше стоимость проекта.
Хорошо для бизнеса — хорошо для разработчика
PHP стремится к простоте и улучшается
- API хеширования паролей.
- Генераторы.
- Больше единообразия.
- Встроенный вебсервер.
- Лучше производительность.
- Лучше синтаксис.
- …
Сначала о хорошем
- Github стал фактически стандартом для хорошего PHP-кода.
- Хорошо распространился PSR-0.
- Есть как минимум несколько стабильных фреймворков,
готовых к коммерческому использованию. То есть
поддерживаемых и обратно совместимых.
А теперь о не очень хорошем…
«Enterprise»
- ZF 2 и Symfony 2 очень «enterprise».
- Ещё более, чем были ZF1 и Symfony 1.
Весь этот “enterprise” слишком сложен
Все проблемы программирования можно решить дополнительным слоем абстракции… кроме проблемы избыточной абстракции
David Wheeler
Отзывы о ZF2 и Symfony2
«ZF2 слишком «научный». По нему и его дизайну
можно кандидатскую написать. Не поймите меня неправильно, я
люблю стандарты, паттерны и т.д., но разработчики ZF2 слишком
сильно окунулись в «науку». Symfony2 в этом плане получше, но
недостаточно»
Зачем делать сложно,
если можно делать просто?
Сделать просто сложнее, чем сделать
сложно
Почему ZF2 такой?
- Zend — коммерческая компания.
ZF — дополняющий продукт к IDE,
Zend server и т.д.
- У ZF2 необходимое и достаточное качество.
Упрощать интерфейс и делать RAD —
трата времени (и денег) на то, что не
принесёт дополнительной прибыли. Скорее наоборот.
- 80% проектов/клиентов не очень-то интересны. Zend может
себе это позволить.
- Хотят получить разочаровавшиеся в J2EE компании.
- Консалтинг не нужен, если продукт недостаточно
сложен ;)
Что с Symfony 2?
- Пытаются быть «enterprise» (=сложными),
как и ZF2.
- Sensio labs — коммерческая компания.
Зарабатывает на саппорте и консалтинге.
- http://fabien.potencier.org/article/65/why-symfony
- Более практичны, чем ZF2.
- Всё-таки довольно сложны.
- Сознательно принесли в жертву RAD.
Что же плохого в «enterprise»?
- Напирают на паттерны. Их видно
в интерфейсе.
- Легче тестировать, но заметно сложнее писать
код, отлаживать и изучать.
- Почти невозможно отдать рутину менее
компетентным разработчикам предварительно не потратив
много времени на обучение.
- Высокий риск для того, кто заказывает
музыку.
Всё это похоже на прошлое Java…
- “Their main thesis to support that
complexity is… hold your breath… fasten your
seatbelts: if it were easier, more stupid people
would be using it!. Ta-da!!”
- “J2EE is no way simple. However the reality is simple:
for J2EE to survive — we have to make it simple to
build, deploy and manage”
В Java всё идёт к упрощению
- Play
- Apache Wicket
- И даже Spring
Enterprise — не только сложность
- Стабильный API.
- Хорошо оттестированный код.
- Обратно-совместимые регулярные релизы.
- Гарантия поддержки на последующие N лет.
- Хорошая документация.
- Коммерческая поддержка, тренинги.
- …
Практичные фреймворки
- Без дополнительных сложностей.
- Легко изучить.
- Меньше магии.
- Меньше конфигурации.
- Как можно более простой API.
Если есть ещё и всё хорошее от enterprise — идеал
практичный фреймворк
Мифы о фреймворках
- Если фреймворк переизобрёл колесо,
то он плохой.
- Если используется контейнер DI и
везде клёвые паттерны, то фреймворк
хороший.
- Если фреймворк сделал фичу первым,
то он лучше остальных.
- Слабо связанный фреймворк
всегда лучше.
- Если нет фичи X в фреймворке, то он
плохой.
Действительно важно
- Легко изучать.
- Легко отлаживать и
исправлять ошибки.
- Не мешает работать и использовать
сторонний код.
- Дружелюбное активное сообщество.
- Обратно совместим и
стабилен.
- Нет затыков при попытках настроить и
расширить.
- Фреймворк должен нравиться ;)
Prado, с 2004 → Yii 1.0, 2008 → Yii 1.1, 2010 → ;)
Что такое Yii?
- PHP5 MVC.
- Приятный API.
- DAO, AR, миграции.
- Построитель форм.
- Темы.
- Тестирование.
- Хорошая документация.
- Большое дружелюбное сообщество.
Что такое Yii?
- Кеширование.
- RBAC.
- Консоль.
- error handler, log.
- Gii.
- I18n(CLDR).
- Виджеты.
- BSD.
Всё ещё остаётся самым быстрым современным
PHP-фреймворком
кроме PECL и микрофреймворков
Становится ещё быстрее и менее требовательнее к памяти благодаря сообществу
- Сбалансированный
- Стабильный
- Гибкий
- Хорошо документирован
- Не мешает
В Yii нет ни одного
setMyCoolFactoryDependencyInjectionContainer()
Документация очень важна
- Документируем сразу как пишем код.
- Основная документация переводится на 16 языков.
- Не мешает работать и использовать сторонний код.
- phpdoc.
- Примеры.
- Отличные книги.
Yii может работать с компонентами Symfony 2 и ZF2.
Они ведь именно для этого, правда? ;)
Yii — практичный фреймворк
The end