Ember. Най-добрият ви залог.

Ако обмисляте какъв инструмент да използвате, за да ви помогне да изградите следващото си приложение, трябва да разгледате Ember.js. Изграждането на приложение за фронтенд е изключително сложно и обхваща различни проблеми. Това е приключение, което не искате да предприемате сами и искате да сте подготвени за всеки сценарий, който се появява. Ембър има гърба ти и аз ще хвърля малко светлина защо трябва да го обмислиш за следващия си проект.

Библиотеките не са рамка.

Библиотеките са инструменти. Те ви дават възможност да направите конкретно нещо. Помислете за четка за боя, тя върши само една работа и една работа. Рамките обхващат множество инструменти. В Ембер тези инструменти са подготвени от общност, за да бъдат най-добрите решения на някои от най-сложните и често срещани проблеми в развитието на фронта.

Ембер е добре куриран набор от инструменти

Проблемът, който виждам, е, че общността на фронталите като цяло обърка двете доста. Например, Glimmer.js, Vue.js и React.js са инструменти за слойни изгледи - те ви помагат да управлявате елементите за изобразяване на страница. Съществуват обаче инструменти, които се справят с други проблеми, като React-Router и router.js за поддръжка за маршрутизация, както и създаване-реагиране-приложение и ember-cli за инструментална екипировка.

Рамките обхващат тези инструменти, за да можете да започнете да изграждате приложението си. Първата ми рамка беше Rails, отличен пример за рамка, съставена от няколко отлични библиотеки. Проблемът е, че резервната рамка не се превежда психически на фронта, защото в края на краищата интерфейсът е само потребителския интерфейс - нали?

Не. Разработката на Frontend обхваща поддръжка, инструменти, внедряване, тестване на уеб приложения и други. Тези отделни части са подобрени от много библиотеки, но наличието на рамка в джоба ви е от решаващо значение - дава ви възможност да доставяте софтуер по-бързо, като сведете до минимум умората от решения.

Доставяне на софтуер.

Гарантирането, че страхотният софтуер ще бъде доставен, е моята основна отговорност. Като софтуерен инженер изграждам нещата. Тези неща са изправени пред клиента и всичко, което попречи на тази цел, е разсейване.

Някои могат да кажат, че създаването на рамка е отговорност на софтуерен инженер. И това е. Ние обаче трябва също да балансираме цената на домакинските задължения спрямо стойността на потребителя.

Екипите, които обичам да работя с най-голяма грижа за софтуера за доставка. Те признават, че има деликатен баланс и отчетлива разлика между необходимостта да се решават често срещани проблеми на развитието с нуждите на клиента.

Ембер прави това извън кутията. Създадена е общност, която работи заедно за решаване на често срещани проблеми, като същевременно предоставя функциите, от които се нуждаете най-много във вашето приложение. Ако няма онова, от което се нуждаете, то обширната екосистема на аддон най-определено има решение за вас. Ако в крайна сметка това не работи, сигурен съм, че ще намерите други, които биха били готови да ви помогнат.

Предимства за избора на Ембър.

По-прост живот.

Тъй като избрах Ember, не се притеснявам за инструментариум, поддръжка на уеб приложения, спазване на сигурността и други. Защо така? Тъй като общността се състои от експерти в тези области, които са посветили живота си да помагат на вас, мен и всички останали.

Тестването в Ембер е перфектен пример за това как животът става по-лесен. Единица, интеграция и пълно за тестване за приемане е част от рамката. Трябва само да изберете кой тестов бегач (например qunit [2], mocha и т.н. ...), който искате да използвате. Всичко останало се събира и можете бързо да започнете да пишете и изпълнявате своите тестове.

Овластяването на инженерите да безболезнено да пишат тестове за приемане може да премахне изискването за отделен отдел за качество, особено за малки екипи и ограничени бюджети. И получавате всичко това безплатно.

Приятелска общност.

Общността вероятно е един от най-добрите аспекти при избора на Ембър. Тъй като разговорите са прозрачни и отворени за обществото, причините, поради които даден модел се реализира над друг или защо определена техника е по-добра - всички са документирани в мрежата [3]. Готови сме да прегледате, критикувате, избягвате или прилагате.

Също така имайте предвид, че Ембър не си отива. Основата, която общността Ембер е изградила, е изградена от коалиция от индивиди и компании. Всички в общността идват от различен произход, с различни проблеми и много мнения. Но в това се състои основната сила на рамката - в здравословното обсъждане, внедряване и доставка на тествани решения.

Документация.

Библиотеката е изключително добре документирана [4]. От изходния код, ръководствата или разговорите с отпуснати канали - можете да намерите отговора на вашия въпрос. И още по-добре - това е взето насериозно. Документацията е обобщена, разговорите, базирани в общността на Github, са задълбочени и основният екип е приложил указания, които помагат за прилагането на тази стандартна процедура в обширната система за добавяне.

Чести критики на Ембер.

Не е яко.

Е, така е - има куп функции в рамката, за която се обзалагам, че бихте искали да използвате. Например, изходните карти работят извън полето, което означава, че можете да използвате инструментите за разработчици на Chrome, за да изградите широко приложението си.

Любимостта на стабилността може да не е бърза, ако започвате и може да ви притесни, че Ембър не ви позволява да нарушавате нещата. Правихме това и не беше толкова забавно.

Добрата новина е, че гласът ви може да бъде чут. Ember има организиран RFC процес за обсъждане на основните промени в рамката. Можете да научите за промените, преди да настъпят, да дадете вашите два цента или да създадете свой собствен RFC за обратна връзка.

Кривата на обучение е стръмна.

Ember се състои от различни важни парчета, които помагат за улесняване на процеса на разработване на приложения. Например маршрутизацията, внедряването и автоматизираното тестване са изпечени. Това означава, че не само ще трябва да научите за препоръчителните модели на дизайн на Ember - но ще трябва да научите и за други аспекти, за да доставите добър работен софтуер.

Това прави кривата на обучение малко стръмна, защото има повече от просто научаване за съставяне на компоненти за визуалния слой. Аргументът за стръмната крива на ученето на Ембер беше използван срещу него, но бих оспорил това с факта, че в крайна сметка ще трябва да научите тези други аспекти на развитие, тъй като вашите нужди растат отвъд изгледния слой.

Обърнете внимание, че това привлече вниманието на основния екип и има голямо движение за опростяване на нещата, за да се гарантира, че бариерата за влизане е опростена. Например, преминаването към JavaScript класове, премахването на необходимостта от this.get и this.set и други са предложени за премахване на най-големите източници на объркване за разработчиците на JavaScript.

Родният не е първичен гражданин.

Ember е рамка, обвързана с архитектурата на Single Page Application (SPA). Ползите, които получавате от SPA са предимствата на Ember. Тъй като SPA не е концепция за родните приложения, Ember е слабо подходящ за родните.

Имайте предвид, че Ембър върви напред с прогресивните уеб приложения. Така че, ако това е опция, която бихте искали да помислите, вижте Изграждане на прогресивно уеб приложение с Ember от mixonic.

Защо трябва да изберете Ембър.

Ember се използва в стартиращия свят и на ниво предприятие. Има различни приложения, които са доказали, че са устойчиви на времето. Използва се в много индустрии и доказа, че мащабира бързо и ефективно. Ember е помогнала на предприятията да оценят стойността и да стабилизират екипите за развитие.

От гледна точка на софтуерното инженерство, стабилизирането на екип струва повече от всичко друго, върху което съм работил. Когато можете да работите в екип и да споделяте един и същ език, без почти никакво объркване в техниките, екипът расте и става по-ценен от реалния продукт.

От продуктова гледна точка можете да видите бърз напредък. Всъщност, ако избраният от вас инструмент ви дава възможност да повтаряте бързо функции и да внедрявате обратна връзка за малко или много време - това ми се струва като правилният инструмент за работата.

И в крайна сметка от бизнес гледна точка, колкото по-рано мога да добавя стойност към продукта си, толкова по-добре.

Ако искате вашият екип да бъде по-продуктивен и удовлетворен, докато доставя стойност, тогава трябва да помислите за избора на Ember. Ако все още се колебаете, не се колебайте да се свържете с мен в Twitter на @alvincrespo, аз съм повече от щастлив да ви помогна да измислите най-добрия инструмент за работата.

Благодаря.

Благодаря на всички, които ми помогнаха да напиша този пост. Вашето време и усилия се оценяват много и се надявам думите ми тук да отразяват правилно вашия преглед.

Бележки.

[1] create-react-app (CRA) е леко базиран на същата философия като ember-cli. CRA предоставя начален опит в създаването на приложение, но след като вашите нужди надхвърлят целите на този проект - вие сте сами. От друга страна, ember-cli предоставя екосистема на Addon, която ви дава възможност да се закачите в клипа, за да персонализирате вашите компилации.

[2] ember-qunit е тест-бегач по подразбиране, който не изисква предварително конфигуриране

[3] Примери за прозрачни разговори:

  • https://github.com/emberjs/rfcs/pull/176
  • https://github.com/emberjs/rfcs/pull/240

[4] Примери за документация:

  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-runtime/lib/mixins/observable.js#L96
  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-routing/lib/system/route.js#L1458