Ember.js

Ember.js
Oryginalni autorzy Jehuda Katz
Deweloperzy Główny zespół Ember
Pierwsze wydanie 8 grudnia 2011 ; 11 lat temu ( 08.12.2011 )
Wersja stabilna
Edit this on Wikidata 4.10.0 / 12 stycznia 2023 ; 40 dni temu ( 12 stycznia 2023 )
Magazyn Repozytorium Ember.js
Napisane w JavaScript
System operacyjny Międzyplatformowe
Typ biblioteka JavaScriptu
Licencja Licencja MIT
Strona internetowa emberjs.com _

Ember.js to webowa platforma JavaScript o otwartym kodzie źródłowym , która wykorzystuje wzorzec komponent-usługa . Umożliwia programistom tworzenie skalowalnych , jednostronicowych aplikacji internetowych poprzez włączanie do struktury wspólnych idiomów , najlepszych praktyk i wzorców z innych wzorców ekosystemu aplikacji jednostronicowych.

Ember jest używany na wielu stronach internetowych, w tym HashiCorp , DigitalOcean , Apple Music , Square, Inc. , Intercom , Discourse , Groupon , LinkedIn , Live Nation , Ghost , Nordstrom i Twitch . Chociaż jest to przede wszystkim uważane za platformę internetową, możliwe jest również tworzenie aplikacji na komputery i urządzenia mobilne za pomocą Ember przy użyciu wzorca aplikacji hybrydowych . Najbardziej godnym uwagi przykładem aplikacji komputerowej Ember jest Apple Music , funkcja aplikacji komputerowej iTunes .

Znak towarowy Ember jest własnością Tilde Inc.

Historia

W grudniu 2011 r. Zmieniono nazwę frameworka SproutCore 2.0 na Ember.js, aby zmniejszyć zamieszanie między frameworkiem aplikacji a biblioteką widżetów SproutCore 1.0. Framework został stworzony przez Yehudę Katza, członka jQuery , Ruby on Rails i SproutCore .

Projekt

Według firmy, Ember został zaprojektowany wokół czterech kluczowych idei:

Aplikacje internetowe
Firma Ember ma na celu rozwiązanie problemu aplikacji po stronie klienta.
Większa produktywność
Ember jest jednym z elementów zestawu narzędzi zapewniających stos programistyczny. Ember CLI zapewnia strukturę aplikacji i potok kompilacji z dodatkami.
Stabilność
Jest to idea, zgodnie z którą kompatybilność wsteczna jest ważna i może być utrzymana przy jednoczesnym wprowadzaniu innowacji i ewolucji frameworka.
Przyszłe standardy sieciowe
Ember przyjął standardy związane z JavaScriptem i siecią, w tym obietnice, komponenty sieciowe i składnię ES6. Yehuda Katz, jeden ze współzałożycieli Ember, jest członkiem TC39, komitetu odpowiedzialnego za przyszłe wersje języka JavaScript.

Podobnie jak Ruby on Rails, Ember przestrzega konwencji ponad konfiguracją (CoC) oraz zasady nie powtarzaj się (DRY). Został opisany jako wysoce opiniotwórczy framework zbudowany tak, aby był bardzo elastyczny.

koncepcje

Według firmy Ember składa się z pięciu kluczowych koncepcji:

Trasy
W Ember stan aplikacji jest reprezentowany przez adres URL. Każdy adres URL ma odpowiedni „obiekt trasy”, który kontroluje to, co jest widoczne dla użytkownika.
Modele
Każda trasa ma powiązany model, zawierający dane związane z bieżącym stanem aplikacji. Podczas gdy można użyć window.fetch do ładowania JSON z serwera i używania tych obiektów jako modeli, większość aplikacji używa do tego celu biblioteki modeli, takiej jak Ember Data. Szablony
Szablony
są używane do tworzenia kodu HTML aplikacji i są pisane w języku szablonów HTMLBars. (HTMLBars to odmiana Handlebars , która tworzy elementy DOM zamiast łańcuchów).
Komponenty
Komponent to niestandardowy znacznik HTML. Zachowanie jest implementowane za pomocą JavaScript, a jego wygląd jest definiowany za pomocą szablonów HTMLBars. Komponenty „posiadają” swoje dane. Mogą być również zagnieżdżane i mogą komunikować się ze swoimi komponentami nadrzędnymi poprzez akcje (zdarzenia). Z Ember można również używać innych bibliotek komponentów, takich jak Polymer.
Usługi
to pojedyncze obiekty do przechowywania długowiecznych danych, takich jak sesje użytkowników.
Ember zapewnia również wstrzykiwanie zależności , deklaratywny jednokierunkowy przepływ danych, śledzone właściwości i automatyczne aktualizowanie szablonów .

Oprogramowanie Ember / dodatki

Ember.js jest jednym z komponentów kompletnego stosu front-endowego zbudowanego i wspieranego przez główny zespół Ember.

Ember CLI

Ember-cli ma na celu przeniesienie konwencji nad konfigurację do tworzenia narzędzi. Narzędzie wiersza poleceń oparte na brokułach, uruchamiające polecenie ember new <nazwa-aplikacji> generuje nową aplikację Ember z domyślnym stosem. Zapewnia to:

  • Standardowa struktura plików i katalogów
  • Serwer deweloperski z przeładowaniem na żywo
  • Ramy testowe
  • Zależności zarządzane przez npm .
  • Obsługa składni ES6/ES7+ (przy użyciu Babel)
  • Zarządzanie zasobami (w tym łączenie, minimalizowanie i wersjonowanie)

Inne funkcje obejmują:

  • Schematy, które są generatorami kodu do tworzenia modeli, kontrolerów, komponentów itd., które są potrzebne w aplikacji. Można również tworzyć niestandardowe plany.
  • Dodatki, które zapewniają możliwość rozszerzenia funkcji Ember CLI. Dodatki można zainstalować, wpisując ember install <nazwa-dodatku> . Obecnie dostępnych jest ponad dwa tysiące dodatków, w tym dodatki do CoffeeScript , LESS , Sass , Compass i Mocha .

Dane Embera

Większość aplikacji Ember korzysta z Ember Data, biblioteki trwałości danych, która zapewnia wiele funkcji mapowania obiektowo-relacyjnego (ORM). Jednak możliwe jest również użycie Ember bez Ember Data.

Ember Data odwzorowuje modele po stronie klienta na dane po stronie serwera. Następnie może ładować i zapisywać rekordy i ich relacje bez żadnej konfiguracji za pośrednictwem RESTful JSON , który implementuje specyfikację interfejsu API JSON, pod warunkiem przestrzegania określonych konwencji. Jednak jest również konfigurowalny i może współpracować z serwerami za pomocą adapterów i dodatków. JSON API ma implementacje bibliotek serwerów dla PHP , Node.js , Ruby , Python , Go , .NET i Java . Udokumentowane jest również łączenie z serwerem opartym na technologii Java- Spring .

Pierwsza stabilna wersja Ember Data (oznaczona jako 1.13 w celu dostosowania do samego Ember) została wydana 18 czerwca 2015 r.

Inspektor Emberu

Ember Inspector to obecnie dostępne rozszerzenie dla przeglądarek internetowych Mozilla Firefox i Google Chrome do debugowania aplikacji Ember. Funkcje obejmują możliwość sprawdzania, które szablony, komponenty i widoki są obecnie renderowane, przeglądania właściwości dowolnego obiektu Ember z interfejsem użytkownika, który oblicza powiązania i obliczane właściwości, oraz uzyskiwania dostępu do obiektów aplikacji z poziomu konsoli. Jeśli używany jest Ember Data, można również zobaczyć rekordy załadowane dla każdego modelu.

  • Inspektor obiektów umożliwia przeglądanie i edytowanie zawartości środowiska wykonawczego obiektów i klas Ember.
  • Drzewo widoków wizualnie przedstawia strukturę renderowanej aplikacji Ember.
  • Karta Trasy umożliwia określenie i śledzenie stanu routera oraz adresów URL używanych do reprezentowania tras.
  • Karta Dane pokazuje modele w aplikacji i rekordy załadowane dla każdego modelu.
  • Karta Informacje wyświetla wersje zależności.
  • Karta Przestarzałe umożliwia śledzenie stosu ostrzeżeń o wycofaniu, które nie wyzwalają wyjątków.
  • Karta Promises umożliwia śledzenie kodu za pomocą operacji asynchronicznych.
  • Zakładka Kontener służy do sprawdzenia, które obiekty zostały załadowane.
  • Karta Wydajność renderowania służy do określania, co spowalnia aplikację Ember.

Fastboot

główny zespół Ember, który daje programistom Ember możliwość uruchamiania ich aplikacji w Node.js. Ta funkcja pozwala użytkownikom końcowym natychmiast zobaczyć kod HTML i CSS, a JavaScript jest pobierany w tle i przejmuje kontrolę po pełnym załadowaniu.

Płynny ogień

Liquid Fire zapewnia obsługę animacji dla aplikacji Ember. Funkcje obejmują animowane przejścia między trasami i między modelami w ramach jednej trasy. Zapewnia DSL do utrwalania przestrzennych relacji tras, wyraźnie oddzielonych od szczegółów implementacji warstwy widoku. Przykładem może być animacja przejścia między ekranami, tak aby nowy ekran wyglądał na wysuwany z jednej krawędzi przeglądarki.

Proces wydania

Zobacz blog o wydaniach, aby zapoznać się z pełną listą wydań i szczegółowym dziennikiem zmian.

Cykl wydania

Ember podlega sześciotygodniowemu cyklowi wydawniczemu, zainspirowanemu szybkim cyklem wydawniczym przeglądarki Google Chrome .

Począwszy od Ember 2.0, powiązane projekty wspierane przez główny zespół mają koordynowane wydania i współdzielą numer wersji z samym Ember.

Aktualizacja i kompatybilność wsteczna

Ember jest zgodny z semantyczną konwencją wersjonowania . W szczególności przełomowe zmiany są wprowadzane tylko w znaczących numerach wersji, takich jak 1.0, 2.0 itd. Chociaż nowe funkcje można dodawać w wydaniach punktowych (1.1, 1.2...), a funkcje są przestarzałe, żadne istotne zmiany w publicznych interfejsach API nie są wprowadzony. W 2015 r. opracowywano również narzędzia, które miały usprawnić proces aktualizacji.

Oprócz tego procesu podjęto szereg kroków w celu złagodzenia problemów związanych z aktualizacją do wersji 2.0:

  • Wszystkie główne funkcje wersji 2.0 zostały w rzeczywistości wprowadzone wcześnie i rozłożone na kilka wydań, aby zredukować wiele problemów spowodowanych aktualizacjami.
  • Większość usuniętych funkcji jest nadal dostępna za pośrednictwem dodatków.

Proces jest zgodny z podstawową zasadą Ember, czyli stabilności bez stagnacji, i wyraźnie różni się od planów aktualizacji podobnych projektów, takich jak AngularJS .

Przyszły rozwój

Status projektu można śledzić za pomocą protokołów ze spotkań głównego zespołu. Jednak główne zmiany w Ember przechodzą przez proces prośby o komentarz. Daje to społeczności Ember szansę wyrażenia opinii na temat nowych propozycji. Godne uwagi dokumenty RFC obejmują:

  • Silniki. Silniki umożliwiają połączenie wielu aplikacji logicznych w jedną aplikację z perspektywy użytkownika. Obecnie wydany jako dodatek eksperymentalny.
  • Ulepszenia cyklu wydawniczego. Między innymi proponuje zmiany w Ember CLI w celu obsługi „smukłych kompilacji”, które usuną przestarzałe i nieużywane funkcje.
  • Skupienie wylotu. Domyślnie udostępnić Ember. Ten dokument RFC ma na celu poprawę komfortu użytkowania osób korzystających z czytników ekranu.

Sponsoring

W przeciwieństwie do innych projektów, takich jak AngularJS ( Google ) i React ( Facebook ), które mają wsparcie jednej głównej firmy, Ember.js ma wielu sponsorów i sponsorów. Należą do nich użytkownicy platformy, tacy jak Yahoo! , LinkedIn i Bustle .

Dalsza lektura

Linki zewnętrzne