«темная лошадка»
в мире frontend-фрэймворков
Андрей Михайлов
@lolmaus
goo.gl/SWNzUZ
Андрей
Михайлов
@lolmaus
http://lolma.us
goo.gl/SWNzUZ
Text
Ember — современный frontend-фрэймворк для разработки амбициозных вэб-приложений
BuiltWithEmber.io
Apple
Ember избавляет от рутины,
позволяя вам сосредоточитсья на бизнес-логике
Developer joy!
Код приложений на Ember:
Пример аддона: ember-cli-deploy
Автоматизирует публикацию вашего приложения, расширяется с помощью вспомогательных аддонов
Deploy targets:
Добавь свою!
Открытое
Дружелюбное
Как с точки зрения производительности приложения, так и удобства программиста
Благодаря собственной объектной модели, каждая единица данных напрямую связана со своим DOM-элементом.
Обновления DOM происходят напрямую, без потребности пересчитывать много данных
Computed properties делают ваш код проще и надежней
Тесты!
Ember Data -- стандартный слой модели
Односторонний или двусторонний data binding
У Ember собственный run loop
Ember Inspector -- средство отладки в Chrome и Firefox
Первоклассный роутер
FastBoot — серверный рендеринг
Планы на будущее
Вам шашечки или ехать?
Всё!
goo.gl/HHxfB2
1. Для доступа к свойствам приходится использовать хелперы get и set
Нельзя написать:
const myService = this.get('myService')
myService.set('myProperty', 'value')
myService.parse()
Приходится писать:
this.myService.myProperty = 'value'
this.myService.parse()
2. Как следствие, в мире Ember не принято использовать TypeScript,
что справедливо расстраивает
часть передовых JS-разработчиков.
3. Трудности с отладкой из-за того, что Ember имеет собственный run loop.
Stack trace ошибки порой не указывает на ваш код.
4. Традиционный шаблонизатор
с синаксисом Handlebars.
Если нужно сгенерировать динамическую, заранее не определенную DOM-структуру, то:
5. Традиционная объектная модель:
в Store лежат мутабельные инстансы моделей.
Нынче это не модно.
6. И вообще Ember немодный, он использует проверенные временем инструменты, например, Broccoli.
Это затрудняет участие в жарких спорах вроде «WebPack 2 или Rollup».
7. Как следствие, Ember до сих пор опирается на такие морально устаревшие инструменты как:
8. Ember не опирается на плечи гигантов вроде Facebook и Google,
что объясняет меньшую популярность по сравнению с React и Angular.
9. Нет горячей замены кода.
При разработке каждое сохранение вызывает перезагрузку страницы.
(Но есть горячая замена стилей.)
10. Большой размер дистрибутива.
Размер vendor.js быстро переваливает за мегабайт (350 КиБ в gzip).
11. Нет аналога React Native.
Мобильные приложения на Ember используют WebView.
12. В Ember приходится думать! :(
Многие задачи не решить «в лоб»,
быстро накидав страницу кода.
Приходится листать документацию, искать, какой метод следует переопределить.
Теперь точно всё!