Ember.js

редактировать
Ember.js
логотип Ember.js
Автор (ы) Иегуда Кац
Разработчик (и) Ember Core Team
Первоначальный выпуск8 декабря 2011 г.; 8 лет назад (2011-12-08)
Стабильный выпуск 3.22.0 / 5 октября 2020 г.; 25 дней назад (2020-10-05)
Предварительный выпуск 3.23.0-beta.0 / 5 октября 2020 г.; 25 дней назад (2020-10-05)
Репозиторий Репозиторий Ember.js
Написано наJavaScript
Операционная система Кросс-платформенная
Тип Библиотека JavaScript
Лицензия Лицензия MIT
Веб-сайтwww.emberjs.com
  • Портал бесплатного программного обеспечения с открытым исходным кодом

Ember.js - это с открытым исходным кодом JavaScript веб-фреймворк, использующий шаблон компонент-сервис . Он позволяет разработчикам создавать масштабируемые одностраничные веб-приложения путем включения в структуру общих идиом, передовых методов и шаблонов из других шаблонов экосистемы одностраничных приложений.

Ember используется на многих популярных веб-сайтах, включая Apple Music, Square, Inc., Discourse, Groupon, LinkedIn, Live Nation, Nordstrom, Twitch и Chipotle. Хотя в первую очередь это считается фреймворком для Интернета, в Ember также можно создавать настольные и мобильные приложения. Наиболее ярким примером настольного приложения Ember является Apple Music, функция настольного приложения iTunes. Торговая марка Ember принадлежит Tilde Inc.

Содержание

  • 1 Философия и дизайн
  • 2 Основные концепции
  • 3 Программный стек Ember
    • 3.1 Ember CLI
    • 3.2 Ember Data
    • 3.3 Ember Inspector
    • 3.4 Fastboot
    • 3.5 Liquid Fire
  • 4 Процесс выпуска
    • 4.1 Цикл выпуска
    • 4.2 Обновление и обратная совместимость
  • 5 Будущее развитие
  • 6 История
  • 7 Корпоративное спонсорство
  • 8 Ссылки
  • 9 Дополнительная литература
  • 10 Внешние ссылки

Философия и дизайн

С самого начала Ember был разработан вокруг нескольких ключевых идей:

Сосредоточьтесь на амбициозных веб-приложениях
Ember намеревается предоставить полное решение проблемы клиентского приложения. Это контрастирует со многими фреймворками JavaScript, которые начинают с предоставления решения для V в MVC (Модель – Представление – Контроллер ) и пытаются оттуда развиваться.
Более продуктивно из коробка
Ember - это один из компонентов набора инструментов, которые работают вместе, чтобы обеспечить полный стек разработки. Эти инструменты предназначены для немедленного повышения продуктивности разработчика. Например, Ember CLI предоставляет стандартную структуру приложения и конвейер сборки. Он также имеет подключаемую архитектуру и более 3500 надстроек для ее улучшения и расширения.
Стабильность без застоя
Это идея о том, что обратная совместимость важна и может поддерживаться, продолжая при этом инновации и развитие
Предвидение будущих веб-стандартов
Ember была одним из первых разработчиков и пионеров многих стандартов, касающихся JavaScript и Интернета, включая обещания, веб-компоненты и синтаксис ES6. Иегуда Кац, один из соучредителей Ember, является членом TC39, комитета, ответственного за будущие версии языка JavaScript.

Как и Ruby on Rails, Ember следует Соглашению, а не конфигурации (CoC) и принцип Don't Repeat Yourself (DRY). Он был описан как весьма самоуверенный фреймворк, созданный для обеспечения максимальной гибкости.

Основные концепции

Ember состоит из пяти ключевых концепций:

Routes
В Ember состояние приложения представлено URL-адресом. У каждого URL-адреса есть соответствующий объект маршрута, который управляет тем, что видно пользователю.
Модели
Каждый маршрут имеет связанную модель, содержащую данные, связанные с текущим состоянием приложения. Хотя можно использовать window.fetch для загрузки объектов JSON с сервера и использования этих объектов в качестве моделей, большинство приложений для этого используют библиотеку моделей, такую ​​как Ember Data.
Шаблоны
Шаблоны используются для создания HTML-кода приложения и написаны на языке шаблонов. (HTMLBars - это вариант Handlebars, который создает элементы DOM, а не String.)
Компоненты
Компонент - это настраиваемый тег HTML. Поведение реализуется с помощью JavaScript, а его внешний вид определяется с помощью шаблонов HTMLBars. Компоненты «владеют» своими данными. Они также могут быть вложенными и могут взаимодействовать со своими родительскими компонентами посредством действий (событий). Другие библиотеки компонентов, такие как Polymer, также могут использоваться с Ember.
Службы
Службы - это просто одноэлементные объекты для хранения долгоживущих данных, таких как пользовательские сеансы.

Ember также предоставляет внедрение зависимостей, декларативный односторонний поток данных, отслеживаемые свойства и автоматическое обновление шаблонов.

программный стек Ember

Ember.js является одним из компонентов полный фронтенд-стек, созданный и поддерживаемый основной командой Ember.

Ember CLI

Ember-cli стремится принести соглашение, а не конфигурацию в инструменты сборки. Утилита командной строки на основе выполнения команды ember new генерирует новое приложение Ember со стеком по умолчанию. Это обеспечивает:

  • стандартную структуру файлов и каталогов.
  • Сервер разработки с оперативной перезагрузкой. По умолчанию это будет автоматически перестраивать приложения постепенно при каждом изменении файлов, а затем перезагружать приложение на любых открытых вкладках браузера.
  • Полная среда тестирования.
  • Зависимости, управляемые через npm.
  • Поддержка синтаксиса ES6 / ES7 + (с использованием Babel).
  • Управление активами (включая объединение, минимизацию и управление версиями).

Другие функции включают:

  • Blueprints, которые являются генераторами кода для создания моделей, контроллеры, компоненты и т. д., необходимые в приложении. Также можно создавать собственные чертежи.
  • Аддоны, которые предоставляют возможность расширять возможности Ember CLI. Дополнения можно установить, набрав ember install . В настоящее время доступно более двух тысяч дополнений, включая дополнения для CoffeeScript, LESS, Sass, Compass и Mocha.

Ember Data

<116.>Большинство приложений Ember используют Ember Data, библиотеку сохраняемости данных, предоставляющую многие возможности объектно-реляционного отображения (ORM). Однако также можно использовать Ember без данных Ember.

Ember Data сопоставляет модели на стороне клиента с данными на стороне сервера. Затем он может загружать и сохранять записи и их отношения без какой-либо конфигурации через RESTful JSON API, который реализует спецификацию JSON API, при условии соблюдения определенных соглашений. Однако он также легко настраивается и может работать с любым сервером с помощью адаптеров и надстроек. JSON API имеет реализации серверной библиотеки для PHP, Node.js, Ruby, Python, Go, .NET и Java. Также задокументировано подключение к серверу на основе Java- Spring.

Первая стабильная версия Ember Data (помеченная 1.13 для согласования с самим Ember) была выпущена 18 июня 2015 года.

Ember Inspector

Ember Inspector - это расширение, доступное в настоящее время для веб-браузеров Mozilla Firefox и Google Chrome, которое, как утверждается, упрощает отладку приложений Ember. Возможности включают возможность видеть, какие шаблоны, компоненты и представления в настоящее время визуализируются, видеть свойства любого объекта Ember с пользовательским интерфейсом, который вычисляет привязки и вычисляемые свойства, и получать доступ к объектам своего приложения с консоли. Если используются данные Ember, можно также увидеть записи, загруженные для каждой модели.

  • Инспектор объектов позволяет просматривать и редактировать содержимое среды выполнения объектов и классов Ember.
  • Дерево просмотра визуально отображает структуру визуализированного приложения Ember.
  • Вкладка Routes позволяет определять и отслеживать состояние маршрутизатора и URL-адреса, используемые для представления маршрутов.
  • На вкладке «Данные» могут отображаться модели в приложении и записи, загруженные для каждой модели.
  • На вкладке «Информация» отображаются версии зависимостей.
  • Вкладка Deprecations позволяет получать трассировку стека предупреждений об устаревании, которые не вызывают исключения.
  • Вкладка Promises позволяет отслеживать код посредством асинхронных операций.
  • Вкладка «Контейнер» - это используется для проверки того, какие объекты были загружены.
  • Вкладка «Производительность рендеринга» предназначена для определения того, что замедляет работу приложения Ember.

Fastboot

Fastboot - это аддон Ember CLI, созданный Ember основная команда, которая дает разработчикам Ember возможность запускать свои приложения на Node.js. Эта функция позволяет конечным пользователям сразу же видеть HTML и CSS с загрузкой JavaScript в фоновом режиме и переходом к работе после его полной загрузки.

Liquid Fire

Liquid Fire обеспечивает поддержку анимации для Ember Приложения. Возможности включают анимированные переходы между маршрутами и между моделями в пределах одного маршрута. Он предоставляет DSL для построения отношений пространственных маршрутов, четко отделенных от деталей реализации на уровне представления. Простым примером может быть анимация перехода экрана, чтобы новый экран появлялся с одного края браузера.

Процесс выпуска

См. Блог о выпусках полный список релизов и подробный журнал изменений.

Цикл выпуска

Ember следует шестинедельному циклу выпуска, вдохновленному быстрым циклом выпуска Google Chrome. Каждые шесть недель выпускается новый выпуск, и в то же время публикуется бета-версия следующего выпуска. Обычно перед выходом следующего крупного релиза создается несколько бета-версий, примерно одна бета-версия в неделю.

Начиная с Ember 2.0, связанные проекты, поддерживаемые основной командой, имеют согласованные выпуски и имеют общий номер версии с самим Ember.

Обновление и обратная совместимость

Ember следует соглашение семантического управления версиями. В частности, это означает, что критические изменения вводятся только в основных номерах версий, таких как 1.0, 2.0 и т. Д. Хотя новые функции могут быть добавлены в отдельных выпусках (1.1, 1.2...), а функции устарели, никаких критических изменений в общедоступных API представлены, и обновление основной версии должно быть максимально простым. Инструменты также находятся в стадии разработки, чтобы упростить процесс обновления.

В дополнение к этому процессу был предпринят ряд шагов для смягчения проблем, связанных с обновлением до версии 2.0:

  • Фактически были представлены все основные функции 2.0 на раннем этапе и распределены по нескольким выпускам, чтобы уменьшить многие проблемы, вызванные крупными обновлениями.
  • Большинство функций, которые были удалены, по-прежнему доступны через аддоны.

Процесс следует основному Ember Принцип «Стабильность без застоя» резко контрастирует с планами обновления аналогичных проектов, таких как AngularJS.

Будущее развитие

Статус проекта можно отслеживать через протоколы собрания основной группы. Однако основные изменения в Ember проходят через процесс запроса комментариев. Это дает сообществу Ember возможность высказать свое мнение о новых предложениях. Известные RFC включают:

  • Engine. Механизмы позволяют объединять несколько логических приложений в одно приложение с точки зрения пользователя. В настоящее время выпущено как экспериментальное дополнение.
  • Улучшения цикла выпуска. Среди прочего, он предлагает изменения в Ember CLI для поддержки «стройных сборок», в которых будут удалены устаревшие и неиспользуемые функции.
  • Outlet Focusing. Делаем Ember доступным по умолчанию. Этот RFC направлен на улучшение взаимодействия с пользователями, использующими программы чтения с экрана.

История

В декабре 2011 года инфраструктура SproutCore 2.0 была переименована в Ember.js, чтобы избежать путаницы между каркас приложения и библиотека виджетов SproutCore 1.0. Фреймворк был создан Иегудой Кац, членом основных команд jQuery, Ruby on Rails и SproutCore. Как и многие другие проекты Каца, он отстаивает соглашение над конфигурацией.

Корпоративное спонсорство

В отличие от других проектов, таких как AngularJS (Google ) и React (Facebook ), которые имеют поддержку одной основной компании, Emberjs имеет множество спонсоров. К ним относятся Yahoo!, LinkedIn и Bustle, которые являются основными пользователями платформы.

Ссылки

Дополнительная литература

Внешние ссылки

Последняя правка сделана 2021-05-19 08:28:41
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте