АдонисЈС - најбољи НодеЈС оквир за 2017. годину

Пре око шест месеци тражио сам алтернативу за СаилсЈС - МВЦ Фрамеворк за чвор. На жалост, Саилс је доста усисао у неким стварима - био је спор на ПОСТ захтевима, није подржавао многе Постгрес функције као што су трансакције и недостајало му је неколико других карактеристика (на пример, овде описаних). Али најгоре од свега је што у последње три године није добио ниједан већи упдате.

Тако смо почели да тражимо нешто на чему бисмо преселили наше нодеЈС пројекте. Испробали смо Коа.јс (али недостајало му је превише ствари), Метеор.јс (не треба нам заиста све-у-једно решење, само АПИ), Лоопбацк (превише магије) и још неколико.

Све док нисам налетео на АдонисЈС. Да будем искрен, иако оквир има 2.5к старта на гитхуб-у, то није било лако пронаћи. Али одмах сам се осетио заљубљеним у то. Покушаћу да објасним зашто.

Прос

1. Гледајући структуру мапе и логику која стоји иза ње, готово је идентичан супер популарном ПХП оквиру - Ларавел. А Ларавел има добру промишљену структуру која вам омогућава да ствари будете јасни. Дакле, ако сте икада радили са тим, брзо ћете научити Адониса.

2. Његов ОРМ је направљен на уму базе СКЛ - као што су Постгрес или МиСКЛ. Ствара ефикасне СКЛ упите и заснива се на идеји активног снимања. Његов програм за прављење упита је једноставан за учење и омогућава нам да брзо направимо једноставне упите. На пример:

цонст бицицлес = принос Бицицле.куери (). где је ин ('лоцатионИд', лоцатионИдс). са ('закључава'). ордерБи ('лабел', 'асц'). фетцх ()

Али чак и када су нам потребне компликованије ствари попут миграција, трансакција, придруживања, стезања или потпуно упита „матерњег СКЛ језика“ - све је ту и једноставно за употребу. Што се тиче љубитеља МонгоДБ - адонис то такође подржава.

3. Има корисно проширење за потврду. На пример, олакшава се писање правила, на пример:

цонст правила = {
  корисничко име: 'обавезно | јединствено: корисници',
  емаил: 'обавезно | емаил | јединствено: корисници',
  лозинка: 'обавезна | потврђена',
  група: 'постојиИн: група'
}
цонст валидатион = принос Валидатор.валидате (усерДата, Усер.рулес)
ако (валидатион.фаилс ()) баци нове грешке. Валидација (провера)

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

4. Само бонус! Лично ми се свиђа како Адонис користи и користи функције генератора. На пример:

// Класични начин шпагета
Усерс.алл ((грешка, корисници) => {
  усерс.бицицлес (). фетцх ((грешка, бицикли) => {
    рес.сенд ({корисници, бицикли})
  })
})
// Промисе начин
нека корисници = нулл
Усерс.алл ()
.тем (фетцхедУсерс => {
  усерс = фетцхедУсерс
  врати усерс.бицицлес (). фетцх ()
})
.тем (бицикли => {
  рес.сенд ({корисници, бицикли})
})
// Генераторски начин (ака АдонисЈС начин)
// Давање паузира заустављање извршења кода док функција асинхровања није завршена
цонст усерс = приноси Усерс.алл ()
цонст бицикли = добитак усерс.бицицлес (). фетцх ()
рес.сенд ({корисници, бицикли})

То код чини много јаснијим! Нема више затворених функција или обећања, већ је само једноставан код без табелације.

Цонс

  1. Нема подразумеваног подешавања теста. Писање кода без тестова - врло је наиван начин развоја :-) Зато смо морали да уложимо време у имплементацију сопственог тестног подешавања око Адониса. Ажурирано: званична конфигурација и водич за тестирање биће представљени у следећем Адонису 4.0
  2. Пошто нема много сарадника и корисника, понекад можете и да ухватите грешку у основним библиотекама. Неки од њих су сасвим очигледни :-)
  3. Иако су документи добри, заједница је и даље мала. На СтацкОверфлов-у нема много одговора и нема пуно туторијала (осим службеног)

Уместо закључка

У производњи користимо АдонисЈС последњих шест месеци. Стабилан је и брз. Ми то волимо!

Ако тражите модеран Ноде.јс оквир са ЕС6, Постгрес подршком и добром структуром - проверите Адонис.јс

П. С. Мој последњи пројекат - хттпс://пингдисцо.цом је 100% адонисјс, то је бесплатан алат за надгледање. Покушајте да отворите рачун (треба вам само једно поље да попуните) и уверите се колико је брз и гладак.

П. П. С. А ако вам треба помоћ или имате проблема са оквиром, не оклевајте да ми пошаљете поруку о Цодементору. Радим и туториалне сесије где могу да вам покажем основе и неколико сјајних хакова Адониса.