ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
Upcoming SlideShare
Loading in...5
×
 

ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)

on

  • 2,520 views

http://www.zfconf.ru/2012/talks/code-generation-and-scaffolding-in-zend-framework-2/

http://www.zfconf.ru/2012/talks/code-generation-and-scaffolding-in-zend-framework-2/

Statistics

Views

Total Views
2,520
Views on SlideShare
1,441
Embed Views
1,079

Actions

Likes
1
Downloads
19
Comments
0

2 Embeds 1,079

http://www.zfconf.ru 1077
http://translate.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги) ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги) Presentation Transcript

  • ZF2 Code Generation или почему лучше день потерять, а потом за 5мин. долететьSaturday, April 21, 2012
  • Об авторе Victor Farazdagi Phrozn - phrozn.info @farazdagi zftalk.dev - zfcasts.ru /farazdagi Phing Contributor ZF Evangelist & ContributorSaturday, April 21, 2012
  • Список литературы Skynet in ZF 2.0 Presentation by R. Schindler The Unbearable Stupidity of Modeling by P. Friese Ward’s Wiki aka PortlandPattern Repository, the World’s first wiki Code Generation in Action by J. Herrington DSLs by M. Fowler The Pragmatic Programmer by A. Hunt & D. Thomas MDA Explained by A. Kleppe, J. Warmer, W. BastSaturday, April 21, 2012
  • Структура доклада 1. Определение концепции кодогенерации 2. Обзор существующих инструментов 3. Перспективы развития в ZF2 4. Выводы (честная попытка их сделать)Saturday, April 21, 2012
  • ОБПSaturday, April 21, 2012
  • ОБП В ZF1 нет адекватного инструментарияSaturday, April 21, 2012
  • ОБП В ZF1 нет адекватного инструментария В ZF2 нет готового инструментарияSaturday, April 21, 2012
  • ОБП В ZF1 нет адекватного инструментария В ZF2 нет готового инструментарияSaturday, April 21, 2012
  • ОБП В ZF1 нет адекватного инструментария В ZF2 нет готового инструментария Адекватного инструментария нет вообщеSaturday, April 21, 2012
  • What?? Адекватного инструментария нет вообщеSaturday, April 21, 2012
  • What?? Адекватного инструментария нет вообщеSaturday, April 21, 2012
  • What?? Адекватного инструментария нет вообще Bitch, Pleeease * * Дадагой ддуг, Вы ошибаетес!Saturday, April 21, 2012
  • What?? Адекватного инструментария нет вообще Bitch, Pleeease * * Дадагой ддуг, Вы ошибаетес!Saturday, April 21, 2012
  • Что это за зверь такой - Кодогенерация?Saturday, April 21, 2012
  • Определение Кодогенерация - процесс преобразования высокоуровневого (более абстрактного) кода в низкоуровневый (менее абстрактный) код. Процесс генерации кода обычно автоматизируют путем написания инструмента (Code Generator) для такого преобразования. Абстрактное Менее абстрактное представление представлениеSaturday, April 21, 2012
  • Определение (прод.) Кодогенерация - написание программ, которые пишут другие программы. Исходный Code Выходной код код GeneratorSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы КодаSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typingSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing Продвинутая шаблонизацияSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing Продвинутая шаблонизация Для создания артефактовSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing Продвинутая шаблонизация Для создания артефактов Design SmellSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing DRY Продвинутая шаблонизация Для создания артефактов Design SmellSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing DRY Продвинутая шаблонизация Отлично работает с CI Для создания артефактов Design SmellSaturday, April 21, 2012
  • Виды Генераторов Кода Пассивные Активные Генераторы Кода Генераторы Кода Save typing DRY Продвинутая шаблонизация Отлично работает с CI Для создания артефактов Дешевая (ре)генерация Design SmellSaturday, April 21, 2012
  • Почему это важно?Saturday, April 21, 2012
  • Почему это важно? Время программера - главная ценностьSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность КреативностьSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачиSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Почему это важно? Время программера - главная ценность Креативность ? Рутинные задачи Скука КодогенерацияSaturday, April 21, 2012
  • Анатомия проектаSaturday, April 21, 2012
  • Анатомия проекта Каркас (ZF, Symfony, Yii)Saturday, April 21, 2012
  • Анатомия проекта Каркас (ZF, Symfony, Yii) Батарейки (Doctrine, Twig, Buzz etc)Saturday, April 21, 2012
  • Анатомия проекта Каркас (ZF, Symfony, Yii) Наш код Батарейки (Doctrine, Twig, Buzz etc)Saturday, April 21, 2012
  • Анатомия проекта Нетривиальный код Каркас (ZF, Symfony, Yii) Наш код Батарейки (Doctrine, Twig, Buzz etc)Saturday, April 21, 2012
  • Анатомия проекта Нетривиальный код Каркас (ZF, Symfony, Yii) Наш код Рутинный/скучный код Батарейки (Doctrine, Twig, Buzz etc)Saturday, April 21, 2012
  • Качество кода Generated code sucks!!!Saturday, April 21, 2012
  • Качество кода Generated code sucks!!! Дадагой ддуг....Saturday, April 21, 2012
  • Качество кода Generated code sucks!!! Ты сам пишешь генератор кода. Сгенерированный код будет настолько хорош, насколько хорош созданный тобой генератор.Saturday, April 21, 2012
  • Кодогенерация и DSL DSL DSL General Purpose DSL LanguageSaturday, April 21, 2012
  • DSLs + Code GenerationSaturday, April 21, 2012
  • Примеры Генерация сущностей Генерация форм из модели SASS, LESS (CSS compiling/transforming) JavaScript Generation Оптимизация, преобразование, скаффолдинг Генерация промежуточного DSL тысячи их...Saturday, April 21, 2012
  • Итак, что дает CG..Saturday, April 21, 2012
  • Итак, что дает CG.. Качество / QualitySaturday, April 21, 2012
  • Итак, что дает CG.. Согласованность / Consistency Качество / QualitySaturday, April 21, 2012
  • Итак, что дает CG.. Don’t Repeat Yourself (DRY) Согласованность / Consistency Качество / QualitySaturday, April 21, 2012
  • Итак, что дает CG.. Скорость разработки Don’t Repeat Yourself (DRY) Согласованность / Consistency Качество / QualitySaturday, April 21, 2012
  • Резюмируя.. Work HarderSaturday, April 21, 2012
  • Резюмируя.. Work HarderSaturday, April 21, 2012
  • Резюмируя.. Work Harder Work SmarterSaturday, April 21, 2012
  • Обзор инструментовSaturday, April 21, 2012
  • RoR 3 Очень качественная реализация Упор на пассивные генераторы Экономят кучу времени Отличная расширяемость Boilerplate codeSaturday, April 21, 2012
  • RoR 3 Очень качественная реализация Упор на пассивные генераторы Экономят кучу времени Отличная расширяемость Boilerplate code rails new rails generate rakeSaturday, April 21, 2012
  • Django У тебя есть инструменты для Другая философия простого решения задачи, но задачи (включая рутинные) ты будешь решать сам.Saturday, April 21, 2012
  • Django У тебя есть инструменты для Другая философия простого решения задачи, но задачи (включая рутинные) ты будешь решать сам. Admin AppSaturday, April 21, 2012
  • Django У тебя есть инструменты для Другая философия простого решения задачи, но задачи (включая рутинные) ты будешь решать сам. Admin App Model FormSaturday, April 21, 2012
  • Django У тебя есть инструменты для Другая философия простого решения задачи, но задачи (включая рутинные) ты будешь решать сам. Admin App Model Form Generic ViewsSaturday, April 21, 2012
  • Yii yiic shell generators Gii + giixSaturday, April 21, 2012
  • Yii yiic shell generators генерация модели CRUD/Scaffold Gii + giixSaturday, April 21, 2012
  • Yii yiic shell generators генерация модели CRUD/Scaffold Gii + giix supersedes yiic generators web-based code generationSaturday, April 21, 2012
  • Symfony2 app/consoleSaturday, April 21, 2012
  • Symfony2 Создан на базе (замечательного) компонента Console Легко создавать расширения app/console Отличная поддержка Doctrine2 CRUD, Entities, Entity, Form Assets (styles, scripts) managementSaturday, April 21, 2012
  • CakePHP cake bake Good interactive shells Bakes Models, View, Controllers, Fixtures, UTs Генерация схемы для быстрого cake schema (повторого) развертывания. cake i18n Генерация .pot файловSaturday, April 21, 2012
  • CodeIgniter2Saturday, April 21, 2012
  • Кодогенерация в ZF1Saturday, April 21, 2012
  • Zend_Tool_Framework Действительно целый фреймворк Providers Manifest & MetaData CLI Handling Loaders RegistrySaturday, April 21, 2012
  • Zend_Tool_Framework Действительно целый фреймворк Providers Manifest & MetaData CLI Handling Loaders Triumph of Registry over-engineering!Saturday, April 21, 2012
  • Zend_Tool_Project Куча провайдеров код которых будет использован Project Module Controller View DbTableSaturday, April 21, 2012
  • Zend_Tool_Project Куча провайдеров код которых будет использован Project Module Controller View DbTable Context Triumph of Stateful over-engineering!Saturday, April 21, 2012
  • Zend_Tool + zf.php Фасад к ZendToolProjectProvider Management taks: on/off layout, show version, db adapter etc Model, View, Controller, Action, Module, Form zf action-name provider-name Контекстная справка aka --help systemSaturday, April 21, 2012
  • Zend_CodeGenerator Генерация кода с использованием Refactored to ОО-интерфейсов. ZendCodeGenerator Планировался как general-purpose Good for what it is: generator (SIC!!) PHP code generationSaturday, April 21, 2012
  • Zend_Reflection Refactored to Расширяет PHP Reflection ZendCodeReflection Интроспеция файлов Анализ docblock-commentsSaturday, April 21, 2012
  • Кодогенерация в ZF2Saturday, April 21, 2012
  • Текущее состояниеSaturday, April 21, 2012
  • Текущее состояние ZendToolSaturday, April 21, 2012
  • Текущее состояние ZendToolSaturday, April 21, 2012
  • Текущее состояние ZendTool ZendToolFrameworkSystemProvider ZendToolProjectProviderSaturday, April 21, 2012
  • Текущее состояние ZendTool ZendToolFrameworkSystemProvider Zf2Tool module ZendToolProjectProviderSaturday, April 21, 2012
  • Текущее состояние ZendTool ZendToolFrameworkSystemProvider Zf2Tool module ZendToolProjectProvider ZendConsole ZendCodeSaturday, April 21, 2012
  • ZendConsole /Thinkscape/zf2/tree/feature/console /Thinkscape/zf2-console-sandboxSaturday, April 21, 2012
  • ZendConsole /Thinkscape/zf2/tree/feature/console /Thinkscape/zf2-console-sandbox Routing Requests AdaptersSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Zend_ReflectionSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Zend_ReflectionSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Reflection Zend_ReflectionSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Reflection Zend_Reflection ScannerSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Reflection Zend_Reflection Scanner AnnotationSaturday, April 21, 2012
  • ZendCode Zend_CodeGenerator Reflection Zend_Reflection Scanner Annotation GeneratorSaturday, April 21, 2012
  • zf2.php tool ??Saturday, April 21, 2012 ?
  • zf2.php tool ?? ? RFC - Tool 2.0Saturday, April 21, 2012
  • zf2.php tool ?? ? RFC - Tool 2.0 Будет активно обновлятьсяSaturday, April 21, 2012
  • zf2.php tool ?? ? RFC - Tool 2.0 Будет активно обновляться Tabled on last IRC meeting Thread in ML - go, write your opinion!!Saturday, April 21, 2012
  • zf2.php tool ?? ? RFC - Tool 2.0 Будет активно обновляться Tabled on last IRC meeting Ожидается дискуссия Thread in ML - go, write your opinion!!Saturday, April 21, 2012
  • zf2.php tool ?? ? RFC - Tool 2.0 Будет активно обновляться Tabled on last IRC meeting Ожидается дискуссия Thread in ML - go, write your opinion!! Часть модуля Zf2ToolSaturday, April 21, 2012
  • zf2.php tool ?? ? RFC - Tool 2.0 Будет активно обновляться Tabled on last IRC meeting Ожидается дискуссия Thread in ML - go, write your opinion!! Часть модуля Zf2Tool How to package?Saturday, April 21, 2012
  • Yada, yada (closing thoughts)Saturday, April 21, 2012
  • 3 things to take home..Saturday, April 21, 2012
  • 3 things to take home.. Give the proper respect to hand-codingSaturday, April 21, 2012
  • 3 things to take home.. Give the proper respect to hand-coding Don’t be afraid of automatic code generationSaturday, April 21, 2012
  • 3 things to take home.. Give the proper respect to hand-coding Don’t be afraid of automatic code generation Define and constantly improve your toolsetSaturday, April 21, 2012
  • И последнее: Contribute to ZF2 /zendframework/zf2 +100 Karma +100500 Skill +100 FUNSaturday, April 21, 2012
  • Thanks! @farazdagi /farazdagiSaturday, April 21, 2012