Ember. Sizning eng yaxshi garovingiz.

Agar siz keyingi ilovangizni yaratishda qanday vositadan foydalanishni o'ylayotgan bo'lsangiz, Ember.js dasturini ko'rib chiqishingiz kerak. Frontend dasturini yaratish juda murakkab va har xil masalalarni qamrab oladi. Bu sizni sarguzasht qilishni xohlamaydigan sarguzasht va siz har qanday stsenariyga tayyor bo'lishni xohlaysiz. Ember sizning orqangizda va men nima uchun buni keyingi loyihangiz uchun ko'rib chiqishingiz kerakligini tushuntirmoqchiman.

Kutubxonalar ramka emas.

Kutubxonalar bu vositadir. Ular sizga ma'lum bir narsani qilishga imkon beradi. Bo'yoq cho'tkasini ko'rib chiqing, u bitta ish va faqat bitta ishni bajaradi. Ramkalar bir nechta vositalarni o'z ichiga oladi. Emberda ushbu vositalar jamoat tomonidan ba'zi bir murakkab va keng tarqalgan muammolarni eng yaxshi echimi sifatida ishlab chiqilgan.

Ember - yaxshi tayyorlangan vositalar to'plami

Muammo shundaki, umuman oldingi jamoalar ikkalasini biroz chalkashtirib yuborishdi. Masalan, Glimmer.js, Vue.js va React.js ko'rish qatlami vositalari bo'lib, ular sizga sahifada renderlash elementlarini boshqarishga yordam beradi. Shu bilan birga, boshqa muammolarni hal qiladigan vositalar mavjud, masalan, React-Router va marshrutizatorni qo'llab-quvvatlash uchun router.js, shuningdek, vositalarni yaratish uchun reaksiya-app va ember-cli.

Ilovalarni qurishni boshlashingiz uchun ramkalar ushbu vositalarni o'z ichiga oladi. Mening birinchi ramkam Rails edi, ba'zi ajoyib kutubxonalardan tashkil topgan ramkaning ajoyib namunasi. Muammo shundaki, orqa tomonning ramkasi old tomonga aqliy jihatdan tarjima qilinmaydi, chunki barcha old qism faqat UI-da?

Yo'q. Frontendni rivojlantirish veb-api-ni qo'llab-quvvatlash, jihozlash, joylashtirish, sinovdan o'tkazish va boshqalarni o'z ichiga oladi. Ushbu individual qismlar ko'plab kutubxonalar tomonidan takomillashtirildi, ammo cho'ntagingizda ramka bo'lishi juda muhim - bu dasturiy charchoqni minimallashtirib, dasturni tezroq etkazib berishga imkon beradi.

Dasturni etkazib berish.

Ajoyib dasturiy ta'minot yuborilishini ta'minlash mening asosiy vazifamdir. Dastur muhandisi sifatida men narsalarni quraman. Bu narsalar mijozlarning e'tiboriga tushadi va maqsadga erishish uchun nimadir chalg'itadi.

Ba'zilar, ramka yaratish dasturiy ta'minot muhandisi zimmasiga yuklangan deb aytishadi. Va bu shunday. Shu bilan birga, biz uy ishlarining narxini foydalanuvchi nominaliga nisbatan balanslashimiz kerak.

Menga yoqadigan jamoalar, men yuk tashish dasturlari haqida juda ehtiyot bo'laman. Ular umumiy muvozanat va mijozning ehtiyojlari bilan umumiy rivojlanish muammolarini hal qilish zarurati o'rtasida aniq farq borligini tan olishadi.

Ember buni qutidan tashqarida qiladi. Bu umumiy muammolarni hal qilish uchun ilovada sizga kerak bo'lgan xususiyatlarni taqdim etish uchun birgalikda ishlaydigan birlashma. Agar u sizga kerakli narsaga ega bo'lmasa, keng ekstremon ekotizim, albatta siz uchun echim topishi mumkin. Agar oxir oqibat ishlamasa, sizga yordam berishga tayyor bo'lgan boshqa odamlarni topasiz.

Emberni tanlashning afzalliklari.

Oddiy hayot.

Men Ember-ni tanlaganimdan beri men vositalar, veb-ilovalarni qo'llab-quvvatlash, xavfsizlikka rioya qilish va boshqa narsalar haqida tashvishlanmayman. Nima sababdan? Jamiyat o'z hayotini sizga, menga va boshqalarga yordam berishga bag'ishlagan ushbu sohadagi mutaxassislardan iborat.

Emberda sinovlar hayotning qanday qilib osonlashgani haqida mukammal misoldir. Birlashma, integratsiya va to'liq qabul qilish testi bu doiraning bir qismidir. Siz qaysi sinov yuguruvchisini (masalan, qunit [2], mocha va hk) ishlatishni tanlashingiz kerak. Qolgan barcha narsalar birlashadi va siz tezda yozishni va testlarni bajarishni boshlashingiz mumkin.

Muhandislarga qabul sinovlarini og'riqsiz yozishga imkoniyat berish, ayniqsa kichik guruhlar va qattiq byudjetlar uchun alohida QA bo'limining talabini olib tashlashi mumkin. Va bularning barchasini bepul olasiz.

Do'stona hamjamiyat.

Jamiyat, ehtimol, Emberni tanlashning eng yaxshi tomonlaridan biridir. Suhbatlar oshkora va ochiq bo'lganligi sababli, nima uchun boshqa bir usul ustidan amalga oshirilganligi yoki nima uchun ma'lum bir texnikaning yaxshiroq ekanligi - barchasi Internetda hujjatlashtirilgan [3]. Sizni ko'rib chiqishga, tanqid qilishga, oldini olishga yoki amalga oshirishga tayyor.

Ember ketmayotganiga ham e'tibor bering. Ember hamjamiyati asos solgan poydevor shaxslar va kompaniyalarning koalitsiyasi tomonidan qurilgan. Jamiyatdagi har bir kishi turli xil kelib chiqishi, turli xil muammolar va turli fikrlar bilan ajralib turadi. Ammo ramkaning asosiy kuchi - sog'lom muhokama qilish, sinovdan o'tgan echimlarni amalga oshirish va etkazib berish.

Hujjatlar.

Kutubxona juda yaxshi hujjatlashtirilgan [4]. Manba kodi, qo'llanma yoki kanal suhbati orqali siz o'zingizning savolingizga javob topishingiz mumkin. Va bundan ham yaxshisi - jiddiy qabul qilinadi. Hujjatlar tahrir qilingan, Github-dagi jamoatchilik asosida suhbatlar puxta ishlab chiqilgan va asosiy guruh keng qamrovli addon tizimida ushbu standart protsedurani bajarishda yordam beradigan ko'rsatmalarni amalga oshirgan.

Emberning keng tarqalgan tanqidlari.

Salqin emas.

Xo'sh, bu - siz ulardan foydalanishni xohlashingizga ishonaman. Masalan, dastlabki xaritalar qutidan tashqarida ishlaydi - demak, siz ilovangizni keng ko'lamda yaratish uchun Chrome dasturlash vositalaridan foydalanishingiz mumkin.

Agar siz yangi boshlayotgan bo'lsangiz, yoqimli barqarorlik yoqimsiz bo'lishi mumkin va sizni Ember sizga narsalarni buzishga yo'l qo'ymasligi sizni bezovta qilishi mumkin. Biz bu ishni qilar edik va bu unchalik qiziqarli emas edi.

Yaxshi xabar shundaki, sizning ovozingiz eshitilishi mumkin. Ember doiradagi muhim o'zgarishlarni muhokama qilish uchun uyushgan RFC jarayoniga ega. O'zgarishlarni ular paydo bo'lishidan oldin bilib olishingiz, ikki tsentingizni berishingiz yoki fikr-mulohazalar uchun o'zingizning shaxsiy RFCingizni yaratishingiz mumkin.

O'rganish egri tik.

Amber dasturlarni ishlab chiqish jarayonini engillashtirishga yordam beradigan turli xil muhim qismlardan iborat. Masalan, marshrutizatsiyalash, tarqatish va avtomatlashtirilgan sinov ishlab chiqariladi. Demak, nafaqat Ember tomonidan tavsiya etilgan dizayn naqshlari bilan tanishishingiz kerak, balki yaxshi ishlaydigan dasturiy ta'minotni etkazib berishning boshqa jihatlari haqida ham bilib olishingiz kerak bo'ladi.

Bu o'rganish egri chizig'ini biroz keskinlashtiradi, chunki vizual qatlam uchun tarkibiy qismlarni yaratish haqida ko'proq bilish etarli emas. Emberning tik o'rganish chizig'i haqidagi argument unga qarshi ishlatilgan, ammo men sizning ehtiyojlaringiz ko'rish qatlamidan tashqariga qarab o'sib borishi bilan oxir oqibatda rivojlanishning boshqa jihatlarini o'rganishingiz kerak bo'ladi.

E'tibor bering, bu asosiy jamoaning e'tiborini tortdi va kirish to'sig'ini soddalashtirish uchun narsalarni soddalashtirish uchun katta harakat bor. Masalan, JavaScript darslariga o'tish, this.get va this.set va boshqa ehtiyojlarni olib tashlash, JavaScript ishlab chiquvchilari uchun eng katta chalkashlik manbalarini olib tashlash taklif qilingan.

Tug'ilgan joy fuqarosi emas.

Ember - Yagona Sahifalar ilovasi (SPA) arxitekturasiga bag'ishlangan ramka. SPA-dan olgan foydalaringiz Ember-ning afzalliklari. SPA bu mahalliy ilovalar uchun tushuncha emasligi sababli, Ember bu ona uchun mos emas.

Yodda tutingki, Ember progressiv veb-ilovalar bilan ishlashda katta yutuqlarga erishmoqda. Shunday qilib, agar siz ushbu variantni ko'rib chiqishni xohlasangiz, Mixonic tomonidan Ember bilan Progressive veb-dasturini yarating.

Nega siz Emberni tanlashingiz kerak.

Ember boshlang'ich dunyoda va korxona darajasida foydalanilmoqda. U erda turli xil dasturlar mavjud bo'lib, ular vaqt o'tishi bilan o'zlarining moslashuvchanligini isbotladilar. U ko'plab sohalarda qo'llaniladi va tez va samarali miqyosda isbotlangan. Ember biznesni rivojlantirishga va rivojlanish guruhlarini barqarorlashtirishga yordam berdi.

Dasturiy ta'minot muhandisligi nuqtai nazaridan, jamoani barqarorlashtirish men ishlagan barcha narsalardan muhimroqdir. Agar siz bir jamoada ishlasangiz va bir xil tilda gaplashsangiz, texnikani chalkashtirib yuborsangiz, jamoa o'sadi va haqiqiy mahsulotga qaraganda qimmatroq bo'ladi.

Mahsulot nuqtai nazaridan siz tez o'sishni ko'rishingiz mumkin. Aslida, agar siz tanlagan vosita sizga funktsiyalarni tezda takrorlash va qisqa vaqt ichida fikr-mulohazalarni bajarish qobiliyatini bersa, bu menga ish uchun eng to'g'ri vosita bo'lib tuyuladi.

Va pirovardida, biznes nuqtai nazaridan, men qanchalik tez mahsulotimga qiymat qo'sha olaman.

Agar siz jamoangiz qiymatni etkazib berishda yanada samarali va qoniqarli bo'lishini istasangiz, unda Emberni tanlash haqida o'ylab ko'rishingiz kerak. Agar siz hali ham ikkilansangiz, @alvincrespo-da Twitter-da menga murojaat qilishingiz mumkin, men sizga ish uchun eng yaxshi vositani aniqlashda yordam berishdan mamnunman.

Rahmat.

Ushbu postni yozishda yordam bergan barchaga rahmat. Sizning vaqtingiz va harakatlaringiz juda qadrlanadi va umid qilamanki, bu erda so'zlarim sizning sharhingizni to'g'ri aks ettiradi.

Izohlar.

[1] create-reaktiv-ilova (CRA) ozgina faylasufga asoslanadi. CRA ilova yaratishda boshlang'ich tajribani taqdim etadi, ammo sizning ehtiyojlaringiz ushbu loyihaning maqsadlaridan oshib ketganda - siz o'zingiz o'zingizsiz. Boshqa tomondan, ember-cli sizga o'zingizning qurishlaringizni sozlash uchun kliş-ga bog'lanish imkoniyatini beradigan addon ekotizimni ta'minlaydi.

[2] ember-qunit - bu oldingi hech qanday konfiguratsiyani talab qilmaydigan standart sinov yuguruvchisi

[3] Shaffof suhbatlarga misollar:

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

[4] Hujjatlar namunalari:

  • 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