Эмбер.js
![]() | Эта статья содержит контент, написанный как реклама . ( февраль 2016 г. ) |
![]() | |
Оригинальный автор(ы) | Иегуда Кац |
---|---|
Разработчик(и) | Основная команда Эмбер |
Первоначальный выпуск | 8 декабря 2011 г |
Стабильная версия | 5.10.1 [1] ![]() |
Репозиторий | Репозиторий Ember.js |
Написано в | JavaScript |
Операционная система | Кросс-платформенный |
Тип | библиотека JavaScript |
Лицензия | МОЯ лицензия [2] |
Веб-сайт | мужчина |
Ember.js — это с открытым исходным кодом JavaScript веб-фреймворк , использующий шаблон «компонент-сервис» . Он предназначен для того, чтобы позволить разработчикам создавать масштабируемые одностраничные веб-приложения путем включения в структуру общих идиом , лучших практик и шаблонов из других шаблонов экосистемы одностраничных приложений. [3]
Ember используется на многих веб-сайтах, включая HashiCorp , DigitalOcean , Apple Music , Square, Inc. , Intercom , Discourse , Groupon , LinkedIn , Live Nation , Ghost , Nordstrom и Twitch . [4] [5] [6] также можно создавать настольные и мобильные приложения Хотя Ember в первую очередь считается инфраструктурой для Интернета, с помощью шаблона гибридного приложения . [7] [8] [9] Наиболее ярким примером настольного приложения Ember является Apple Music , функция настольного приложения iTunes . [10]
Торговая марка Ember принадлежит Tilde Inc. [11]
История
[ редактировать ]В декабре 2011 года платформа SproutCore 2.0 была переименована в Ember.js, чтобы избежать путаницы между платформой приложения и библиотекой виджетов SproutCore 1.0. [12] [13] Фреймворк был создан Иехудой Кацем, членом основных команд jQuery , Ruby on Rails и SproutCore .
Дизайн
[ редактировать ]![]() | В этом разделе содержатся формулировки, продвигающие тему посредством преувеличения малозначимых фактов . ( сентябрь 2020 г. ) |
По данным компании, Ember был разработан вокруг четырех ключевых идей:
- Веб-приложения
- Ember намеревается предоставить решение проблемы клиентских приложений. [ нужна ссылка ]
- Больше производительности
- Ember — это один из компонентов набора инструментов для обеспечения стека разработки. Ember CLI обеспечивает структуру приложения и конвейер сборки с надстройкой. [14] [15]
- Стабильность
- Ember стремится отдать приоритет обратной совместимости и позволить ее поддерживать, одновременно развивая структуру. [16]
- Будущие веб-стандарты
- Эмбер был сторонником стандартов JavaScript и Интернета, включая промисы, веб-компоненты и синтаксис ES6. [17] [18] Иегуда Кац, один из соучредителей Ember, является членом TC39, комитета, ответственного за будущие версии языка JavaScript. [19]
Как и Ruby on Rails, Ember следует соглашению о конфигурации (CoC) и принципу «не повторяйся» (DRY). [20] Его описывают как очень самоуверенную структуру, созданную как очень гибкую. [21]
Концепции
[ редактировать ]![]() | В этом разделе содержатся формулировки, продвигающие тему посредством преувеличения малозначимых фактов . ( сентябрь 2020 г. ) |
По данным компании, Ember состоит из пяти ключевых концепций: [22]
- Маршруты
- В Ember состояние приложения представлено URL-адресом. Каждый URL-адрес имеет соответствующий «объект маршрута», который управляет тем, что видно пользователю.
- Модели
- Каждый маршрут имеет связанную модель, содержащую данные, связанные с текущим состоянием приложения. [23] Хотя можно использовать window.fetch для загрузки объектов JSON с сервера и использования этих объектов в качестве моделей, большинство приложений используют для этого библиотеку моделей, такую как Ember Data.
- Шаблоны
- Шаблоны используются для создания HTML-кода приложения и пишутся на языке шаблонов HTMLBars . (HTMLBars — это вариант Handlebars , который создает элементы DOM, а не String.) [24]
- Компоненты
- Компонент — это пользовательский тег HTML. Его поведение реализовано с помощью JavaScript, а внешний вид определяется с помощью шаблонов HTMLBars. Компоненты «владеют» своими данными. Они также могут быть вложенными и могут взаимодействовать со своими родительскими компонентами посредством действий (событий). Другие библиотеки компонентов, такие как Polymer, также можно использовать с Ember. [25]
- Услуги
- Службы — это просто одноэлементные объекты, хранящие долгоживущие данные, такие как пользовательские сеансы. [26]
- Ember также обеспечивает внедрение зависимостей , декларативный односторонний поток данных, отслеживаемые свойства и автоматическое обновление шаблонов . [27]
Программное обеспечение Ember / Дополнения
[ редактировать ]Ember.js — это один из компонентов полного стека внешнего интерфейса, созданного и поддерживаемого основной командой Ember.
Человеческий интерфейс командной строки
[ редактировать ]Ember-CLI стремится использовать соглашения вместо конфигурации при создании инструментов. Утилита командной строки на основе брокколи , запускающая команду ember new <app-name>
генерирует новое приложение Ember со стеком по умолчанию. [28] Это обеспечивает:
- Стандартная структура файлов и каталогов
- Сервер разработки с живой перезагрузкой
- Платформа тестирования [29]
- Зависимости управляются через npm . [30]
- Поддержка синтаксиса ES6/ES7+ (с использованием Babel)
- Управление активами (включая объединение, минимизацию и управление версиями) [31]
Другие функции включают в себя:
- Blueprints — генераторы кода для создания моделей, контроллеров, компонентов и т. д., необходимых в приложении. Также можно создавать собственные чертежи. [32]
- Аддоны, которые предоставляют возможность расширить возможности Ember CLI. [33] Аддоны устанавливаются путем ввода
ember install <addon-name>
. В настоящее время доступно около двух тысяч дополнений (по состоянию на 2018 год). [34] включая дополнения для CoffeeScript , LESS , Sass , Compass и Mocha . [35]
Человеческие данные
[ редактировать ]Большинство приложений Ember используют Ember Data, библиотеку сохранения данных, предоставляющую многие возможности объектно-реляционного сопоставления (ORM). [36] Однако можно использовать Ember и без Ember Data. [37]
Ember Data сопоставляет модели на стороне клиента с данными на стороне сервера. Затем он может загружать и сохранять записи и их связи без какой-либо настройки через RESTful JSON API, который реализует спецификацию JSON API. [38] при условии соблюдения определенных соглашений. [39] Однако его также можно настраивать и работать с серверами с помощью адаптеров и дополнений. [40] JSON API имеет реализации серверных библиотек для PHP , Node.js , Ruby , Python , Go , .NET и Java . [41] подключение к серверу на основе Java- Spring . Также описано [42]
Первая стабильная версия Ember Data (обозначенная как 1.13 в соответствии с самим Ember) была выпущена 18 июня 2015 года. [43]
Эмбер инспектор
[ редактировать ]Ember Inspector — это расширение, доступное в настоящее время для веб-браузеров Mozilla Firefox и Google Chrome для отладки приложений Ember. [44] [45] Функции включают в себя возможность видеть, какие шаблоны, компоненты и представления отображаются в данный момент, просматривать свойства любого объекта Ember с помощью пользовательского интерфейса, который вычисляет привязки и вычисляемые свойства, а также получать доступ к объектам своего приложения с консоли. [46] Если используется Ember Data, можно также просмотреть записи, загруженные для каждой модели.
- Инспектор объектов позволяет просматривать и редактировать содержимое объектов и классов Ember во время выполнения.
- Дерево просмотра визуально отображает структуру визуализированного приложения Ember.
- Вкладка «Маршруты» позволяет определять и отслеживать состояние маршрутизатора и URL-адреса, используемые для представления маршрутов.
- На вкладке Данные показаны модели в приложении и записи, загруженные для каждой модели.
- На вкладке «Информация» отображаются версии зависимостей.
- Вкладка «Устаревшие» позволяет отслеживать стек предупреждений об устаревании, которые не вызывают исключений.
- Вкладка «Обещания» позволяет отслеживать код посредством асинхронных операций.
- Вкладка «Контейнер» используется для проверки того, какие объекты были загружены.
- Вкладка «Производительность рендеринга» предназначена для определения того, что замедляет работу приложения Ember.
Фастбут
[ редактировать ]Fastboot — это надстройка Ember CLI, созданная основной командой Ember, которая дает разработчикам Ember возможность запускать свои приложения Node.js. в Эта функция позволяет конечным пользователям сразу видеть HTML и CSS, при этом JavaScript загружается в фоновом режиме и берет на себя управление после полной загрузки. [47]
Жидкий огонь
[ редактировать ]Liquid Fire обеспечивает поддержку анимации для приложений Ember. [48] Функции включают в себя анимированные переходы между маршрутами и между моделями в пределах одного маршрута. Он предоставляет DSL для закрепления связей пространственных маршрутов, четко отделенных от деталей реализации уровня представления. Примером может быть анимация перехода экрана, чтобы казалось, что новый экран выдвигается из одного края браузера. [49]
Процесс выпуска
[ редактировать ]Полный список выпусков и подробный журнал изменений смотрите в блоге релизов.
Цикл выпуска
[ редактировать ]Ember придерживается шестинедельного цикла выпуска, вдохновленного быстрым циклом выпуска Google Chrome . [50]
Начиная с Ember 2.0, релизы связанных проектов, поддерживаемых основной командой, скоординированы и имеют общий номер версии с самим Ember. [51]
Обновление и обратная совместимость
[ редактировать ]Ember следует соглашению о семантическом управлении версиями . [52] В частности, критические изменения вносятся только в значительные номера версий, например 1.0, 2.0 и т. д. Хотя новые функции могут быть добавлены в отдельных выпусках (1.1, 1.2...), а функции устарели, критических изменений в общедоступных API нет. вводятся. В 2015 году также разрабатывались инструменты, которые помогут упростить процесс обновления. [53]
В дополнение к этому процессу было предпринято несколько шагов для устранения проблем, связанных с обновлением до версии 2.0:
- Все основные функции версии 2.0 были представлены заранее и распределены по нескольким выпускам, чтобы уменьшить многие проблемы, вызванные обновлениями.
- Большинство удаленных функций по-прежнему доступны через надстройки.
Этот процесс соответствует основному принципу Ember: «Стабильность без застоя» и резко контрастирует с планами обновления аналогичных проектов, таких как AngularJS . [54]
Будущее развитие
[ редактировать ]Статус проекта можно отслеживать по протоколам заседаний основной команды. [55] Однако основные изменения в Ember проходят через процесс запроса комментариев. [56] Это дает сообществу Ember возможность высказать свое мнение о новых предложениях. Известные RFC включают:
- Двигатели. Механизмы позволяют объединить несколько логических приложений в одно приложение с точки зрения пользователя. На данный момент выпущен как экспериментальное дополнение. [57] [58]
- Улучшения цикла выпуска. Среди прочего, он предлагает изменения в Ember CLI для поддержки «стройных сборок», которые удалят устаревшие и неиспользуемые функции. [59]
- Выходная фокусировка. Делаем Ember доступным по умолчанию. Этот RFC направлен на улучшение пользовательского опыта для людей, использующих программы чтения с экрана. [60]
Спонсорство
[ редактировать ]В отличие от других проектов, таких как AngularJS ( Google ) и React ( Facebook ), которые поддерживаются одной основной компанией, Ember.js имеет множество спонсоров и покровителей. К ним относятся пользователи платформы, такие как Yahoo! , LinkedIn и Bustle . [61] [62]
Ссылки
[ редактировать ]- ^ «Выпуск 5.10.1» . 13 июля 2024 г. Проверено 22 июля 2024 г.
- ^ "ember.js/ЛИЦЕНЗИЯ" . Гитхаб . Проверено 27 апреля 2017 г.
- ^ Агассипур, Александр; Чако, Шаджит (30 ноября 2012 г.). «Корпоративные приложения переходят на одностраничный дизайн» . ТехКранч .
- ^ «Создание с помощью Ember.js в Groupon» . Талант Бадди . Проверено 15 октября 2015 г.
- ^ «Дискурс, созданный с помощью Ember.js» . Гитхаб . Проверено 15 июля 2015 г.
- ^ «Интерком» .
- ^ «Ember: напиши один раз, беги повсюду» . Гитхаб . 5 июля 2015 г.
- ^ «Создавайте лучшие настольные приложения с помощью Ember» . СпикерДек . 5 июля 2015 г.
- ^ «Выступление Wicked Good Ember 2015: создавайте лучшие настольные приложения с помощью Ember, видео» . 5 июля 2015 г.
- ^ «Построено с Ember — Apple Music» . Встроенный сEmber . Проверено 21 июля 2016 г.
- ^ «Ember.js: Юридическая информация» . emberjs.com . Проверено 14 февраля 2019 г.
- ^ «SproutCore 2.0 становится Ember.js» . Х. 13 декабря 2011 г.
- ^ «Amber.js (ранее SproutCore 2.0) теперь называется Ember.js» . yehudakatz.com. 12 декабря 2011 г.
- ^ «Эмбер CLI» . Проверено 15 декабря 2018 г.
- ^ «Эмбер Аддоны» . Проверено 15 декабря 2018 г.
- ^ Асай, Мэтт (4 ноября 2014 г.). «Инновации быстро и медленно: EmberJS настаивает: «Нам не нужно ломать сеть» » . ЧитатьЗапись . Проверено 18 июня 2015 г.
- ^ «Обещания JavaScript» . Мозилла . Проверено 18 июня 2015 г.
- ^ «Веб-компоненты» . Веб-компоненты . Проверено 18 июня 2015 г.
- ^ «TC39: Участники» . TC39Вики . Проверено 18 июня 2015 г.
- ^ «Чему мы научились благодаря Ember.js за 2 месяца разработки нашего нового продукта» . Твердый . 16 декабря 2014 года . Проверено 3 ноября 2015 г.
- ^ «Основные причины, по которым отраслевые эксперты используют Ember.js, и как вы можете внедрить его самостоятельно» . Талант Бадди . Проверено 14 октября 2015 г.
- ^ Фрэнк Трейси. «5 основных концепций Ember 2.0, которые вам следует понять» . ЭмберИгнитер . Архивировано из оригинала 27 июля 2016 года . Проверено 31 августа 2015 г.
- ^ «Ember.js — Модели: Введение» . Эмберджс . Проверено 21 января 2014 г.
- ^ Джексон, Роберт. «HTMLБарс» . Гитхаб . Проверено 18 февраля 2015 г.
- ^ «Как добавить полимер в ваш проект Ember» . Программа WithErik . 27 марта 2015 года . Проверено 11 августа 2015 г.
- ^ «Учебное пособие по сервисам Ember» . Программа WithErik . 26 июля 2015 года . Проверено 27 июля 2015 г.
- ^ Банго, Рей (14 марта 2013 г.). «Знакомство с Ember.js» . Неттутс+.
- ^ «Эмбер CLI» . Проверено 15 декабря 2018 г.
- ^ «Тестирование Эмбера» . Проверено 15 декабря 2018 г.
- ^ «Ember CLI-управление зависимостями» . Проверено 15 декабря 2018 г.
- ^ «Компиляция ресурсов Ember CLI» . Проверено 15 декабря 2018 г.
- ^ «Чертежи Ember CLI» . Проверено 15 декабря 2018 г.
- ^ «Дополнения для написания CLI Ember» . Проверено 15 декабря 2018 г.
- ^ «Каталог Ember Addons» . emberobserver.com . Проверено 15 декабря 2018 г.
- ^ «Обзор Ember CLI» . Проверено 15 декабря 2018 г.
- ^ «README данных Ember» . Гитхаб . Проверено 4 декабря 2013 г.
- ^ «Эмбер без данных Эмбер» . Злая форель. 23 марта 2013 года . Проверено 2 января 2014 г.
- ^ «Спецификация API JSON» . Проверено 16 июня 2015 г.
- ^ «Модели Ember.js» . Эмберджс . Проверено 26 июня 2015 г.
- ^ «Эмберские данные наблюдателя» . ЭмберОбсервер . Проверено 16 июня 2015 г.
- ^ «Реализации JSON API» . JSON API . Проверено 26 июня 2015 г.
- ^ «Интеграция Ember.js с Spring Framework» . Весенний Эмбер . 20 августа 2014 года . Проверено 26 июня 2015 г.
- ^ «Выпуск Ember Data 1.13» . 18 июня 2015 г. Проверено 18 июня 2015 г.
- ^ «Дополнения Firefox — Ember Inspector» . Мозилла . Проверено 5 августа 2015 г.
- ^ «Интернет-магазин Chrome — Ember Inspector» . Интернет-магазин Chrome . Проверено 18 февраля 2014 г.
- ^ «Эмбер-инспектор» . Эмбер.js . Проверено 28 июня 2015 г.
- ^ «Внутри Fastboot. Подделка DOM в узле» . Эмберджс . 8 января 2015 года . Проверено 19 июня 2015 г.
- ^ «Liquid Fire: анимации и переходы для приложений Ember» . Гитхаб . Проверено 19 июня 2015 г.
- ^ «Анимации в Ember.js с использованием Liquid-Fire» . airpair.com. Архивировано из оригинала 8 ноября 2020 года . Проверено 10 июля 2015 г.
- ^ «Процесс выпуска нового Ember» . 6 сентября 2013 года . Проверено 19 июня 2015 г.
- ^ «Проект Ember в версии 2.0» . 16 июня 2015 г. Проверено 19 июня 2015 г.
- ^ «Замораживание API Ember» . 18 января 2013 года . Проверено 19 июня 2015 г.
- ^ «Аддон Эмбер Уотсон» . Проверено 19 июня 2015 г.
- ^ «Анонс Angular 2.0» . 29 октября 2014 года . Проверено 19 июня 2015 г.
- ^ «Протокол собрания основной команды Ember» . Эмберджс . Проверено 5 июля 2015 г.
- ^ «Процесс Ember RFC» . Эмберджс . Проверено 18 июня 2015 г.
- ^ «Угольные двигатели» . EmberAddons.com . Проверено 19 января 2016 г.
- ^ «Двигатели» . Эмберджс . Проверено 3 февраля 2015 г.
- ^ «Уточнение процесса выпуска RFC» . Эмберджс . Проверено 18 июня 2015 г. [ постоянная мертвая ссылка ]
- ^ «RFC по фокусировке на розетках» . Эмберджс . Архивировано из оригинала 24 сентября 2016 года . Проверено 18 июня 2015 г.
- ^ «Эмбер спонсирует» . Эмберджс . Проверено 18 июня 2015 г.
- ^ «Интервью с Майком Нортом, главным инженером-программистом Yahoo» . Эмбер выходные . Проверено 10 августа 2015 г.
Дальнейшее чтение
[ редактировать ]- Буйлес, Адольфо (2015). Эмбер-кли 101 . Линпаб. Регулярно обновляется.
- Эрди, Балинт (2015). «Рок-н-ролл с Ember.js» . Balinterdi.com . Регулярно обновляется.
- Уайт, Мэтью (2015). Создавайте смелые веб-приложения с помощью Ember 2 . ООО «Прагматические программисты». ISBN 978-1-68050-078-3 .