JS Frameworks в перспективе проекта и бизнеса
Yuriy Dadichin
Levi9
Почему я на сцене
Чем важным/стоящим можно поделиться?
- Пересказывать документацию - пошло
- Я не разработчик ни Angular, Angular2, REACT(Flux|Redux) или хотя-бы Ember2 даже не Ember 1.х на худой конец
-
Есть только опыт и мысли
О весьма типичном опыте и расскажу
Адмирал Ясен Буй???
Типичный ~ Паттерны
- У всех на виду просто не озвучены
- Почти как GoF, только глобальней
- глобальней чем MVC, MVVM e.t.c.
- не совсем технические
- но паттерны
Chapter 1
Product
(тип как у Тарантино в 8-ке)
Как-то раз в Германии стартуя новый проект в 2014(Март) году
Обсуждая Tech scope c Willi
Willi поставил требования
- Аще быстро должно работать
- Пожизненная поддержка выбранного FW vendor'ом
- минимальная нагрузка на сервер(они на РНР все рендерели)
- На века должно быть сделано
Я возразил мол:
"Не парься все равно через 3-4 года наново переписывать"
Спайк
$ vs Backbone vs Angular vs Ember
для
100500 форм по 15+ полей и по 1000+ записей таблицы
Angular - избыточный, так как таблицы без биндинга, формы требовали в общей сумме 7 инпут-директив, высокий порог входа для РНРников
Ember - те же контр-аргументы, что и к Angular + не диктовал строгой структуры приложения, реализуя биндинги очень смело правил DOM
$ - заманчиво :) но предидущая версия продукта уже такая
Backbone
- прост для РНР
- очень прост для тех кто знает $
- лёгкий
- очень быстрый если у тебя на странице ничего не происходит как оно и бывает с формами и таблицами по умолчанию
- лабуда услышанная ранее на конфах
Это было не лучшее решение
С технической точки зрения всё ОК
- формы валидируются
- таблицы пейджатся
- юнит-тесты зелёные
- модули - стойняшки
- руты/сабруты
- осталось штопать 100500 форм/таблиц...
Штопать 100500 форм/таблиц, здорово командой
Начался найм
Внезапно
После 15 интервью стало ясно:
- любители JS слабо знают JS core
- никто не хочет работать даже за хорошие деньги, только "развиваться" - быть актуальным на рынке
- только техно-мейнстрим, никакая техническая аргументация и идея проекта не спасают
Проект затянулся - нехватка рук/голов
+2.5 Exp.
Chapter 2
Business guys
C этими вообще просто
Им все равно что под капотом
Достаточно
-
покрывает ТЗ
-
товарный вид
-
надежда безболезненного апдейта до cледующей версии Angular -> Angular2
-
формальное техническое обоснование Вашего выбора
+2.5 Exp.
Chapter 3
Choice
Как угадать завтрашний мейнстрим?
Vendor
-
не всегда(Polymer, Dart)
-
не все(Mozilla, Yandex)
-
но всегда порядок с доками и супортом
Сообщество
-
определяет мейнстрим
-
но есть задержка, может зависеть vendor'а
Конференции
-
определяет мейнстрим
-
есть задержка, может зависеть vendor'а
-
хорошие решения gulp/grunt
Просто взял(а) и полюбил(а)
Интерактив
Angular 1.x
Angular 2
Ember 2.x
(New applications should begin using Ember 2.0 today)