Ноде.јс је можда добро успостављен, али немојте занемарити Дено, сличан оквир од истог програмера.
Ноде.јс је дуготрајни оквир који вам омогућава да пишете код на страни сервера у ЈаваСцрипт-у. Првобитно објављен 2009. године, оквир је доживео значајан раст и експлозију у употреби током последњих година.
Дено има разлике у стилу форматирања, синтакси увоза и управљању пакетима, али исти инжењер је направио ове конкурентске оквире на истом мотору.
Данас, Дено постоји довољно дуго да би заслужио место у низу многих програмера. Ако желите да покренете нови ЈаваСцрипт пројекат, можда ћете се запитати који је прави избор.
Ноде и Дено карактеристике
Скоро девет година након објављивања Ноде-а, његов програмер, Рајан Дал, најавио је нови пројекат: Дено. Тамо где је Ноде некада био једина опција за ЈаваСцрипт на страни сервера, Дено нам је дао алтернативу.
Ноде.јс и Дено су прилично слични на много начина. Већина разлика између ова два се јавља испод хаубе. Тамо где Ноде ради на В8 ЈаваСцрипт мотору, Дено ради преко прилагођеног мотора изграђеног у Русту са јаким фокусом на перформансе.
Већина главних разлика између ова два језика заснована је на томе које карактеристике подржава сваки језик. Модули, линтинг, куцани текст и управљање пакетима се доста различито рукују између њих.
Увоз модула: ЦоммонЈС вс. ЕС
Ноде.јс подразумевано користи ЦоммонЈС модуле са синтаксом рекуире(). Ноде вам омогућава да ово промените тако што ћете променити своје конфигурационе датотеке да користе ЕЦМАСцрипт модуле са синтаксом импорт() уместо тога ако то желе.
// Ово је важећи увоз ЦоммонЈС модула у Ноде.јс
вар _ = захтевају("лодасх");
// Ово је важећи увоз модула ЕЦМАСцрипт у Ноде.јс
увоз _ из'лодасх';
Постоји одређена ограничена интероперабилност између два типа учитавања ЕС модула са неким ЕЦМАСцрипт модулима који могу да се укључе коришћењем синтаксе рекуире(). Сваки тип увоза обрађује модуле мало другачије, али било који од њих ће радити у већини случајева.
Ово вам омогућава да изаберете жељену методологију за укључивање екстерних модула приликом креирања пројекта.
Дено има другачији приступ када је у питању укључивање екстерних модула у пројекат. Дено користи синтаксу инцлуде() за све модуле, међутим, за разлику од увоза Ноде, модули увезени у Дено могу доћи са било које локације. Ове локације могу чак укључити и удаљене мреже за испоруку садржаја (ЦДН).
// Ово је важећа изјава о увозу у Дено-у
увоз" https://deno.land/x/[email protected]/dist/lodash.js";
Ово вам омогућава да увозите зависности са било које локације, локалне или удаљене, нудећи далеко већу флексибилност. Ако више волите да радите са традиционалном синтаксом захтева из Ноде.јс, можете да напишете сопствену функцију захтева полифилл у Дено-у као заобилазно решење.
Подршка за ТипеСцрипт код
ТипеСцрипт бележи све већи раст популарности у последњих неколико година, без знакова успоравања у скорије време. Довођење динамике кода безбедног за тип у ЈаваСцрипт се показало као изузетно успешан подухват.
Данас је постављање новог ТипеСцрипт пројекта или конвертовање постојећег Ноде.јс пројекта у ТипеСцрипт једноставно, иако захтева доста времена.
Додавање подршке за ТипеСцрипт постало је довољно популарно да већина модерних оквира сада има неки облик подршке за ТипеСцрипт. Ангулар је предњачио, са подршком за ТипеСцрипт који је ван кутије. Данас чак Реацт има методе за подешавање подршке за ТипеСцрипт.
Дено је дизајниран са укљученом подршком за ТипеСцрипт како би побољшао вашу продуктивност. Уз готову подршку за ТипеСцрипт, Дено-у недостаје чак ни минимално подешавање које је потребно за Ноде.јс да би покренуо развој откуцаног ЈаваСцрипт кода.
Ако волите ТипеСцрипт, можете брзо и лако да почнете уз Дено-ову подршку, али можда вам недостају неке од стандардних библиотека Ноде.јс. Док Дено нуди брже подешавање, недостатак развијеног екосистема може да вас омета у процесу изградње.
Линтинг за генерисање кода за чишћење
Ноде.јс има широк избор линтера које можете изабрати. Постоји много добро развијених опција које можете брзо и лако инсталирати и конфигурисати. Слично као у случају ТипеСцрипт-а, међутим, мораћете да се мало потрудите да бисте започели са њиховим линтером по избору.
Дено је кренуо мало другачијим путем у форматирању кода, долазећи са сопственим уграђеним линтинг решењем за .јс, .тс и .мд датотеке. Покретање команде "дено фмт" аутоматски ће форматирати све датотеке у тренутном радном директоријуму.
Ако нисте љубитељ подразумеваног линтера, постоји опција да инсталирате и покренете систем форматирања по избору, баш као што бисте то урадили са Нодеом. Пребацивање система је једноставно јер Дено-ов линтер ради преко екстерне команде, а не као део подразумеваног цевовода за изградњу.
Ако размишљате да замените Дено-ов линтер за нови систем, требало би да будете свесни потенцијалних проблема са компатибилношћу и да их имате на уму. Већина ЈаваСцрипт линтера ће захтевати инсталацију Ноде-а да би се покренула, чак и ако то није систем на коме се покреће пројекат који се форматира.
Управљање пакетима
Ноде пакет менаџер (нпм) је веома познат међу савременим програмерима. Надовезујући се на успех сличних система као што су Питхон'с Пип и Руби'с РубиГемс, нпм је брзо стекао популарност.
Дуготрајне забринутости доводе до развоја конкурентских менаџера, као што су пНПм и Иарн. Постоје неке ситуације у којима чак можете изабрати да инсталирате и користите више менаџера пакета са Ноде.
Данас, ако одлучите да развијате у Ноде.јс, помало сте размажени избором када је у питању управљање пакетима. Ноде се може похвалити успјешним екосистемом са пуно опција за инсталирање пакета. Тренутно има преко 1,3 милиона у главном нпм регистру.
Нпм вам омогућава да објавите сопствене пакете, што води до запањујуће велике библиотеке.
Дено је имао потпуно другачији приступ управљању пакетима. Нити има, нити захтева систем за управљање пакетима. Уместо тога, Дено дозвољава директан увоз екстерних библиотека не само из система програмера, већ и са било које локације која прихвата ХТТП захтеве.
Ово вам омогућава да увезете библиотеке из Дено-овог спремишта или било ког ЦДН-а на мрежи, директно из њихове базе кодова.
Дено-ов званични регистар пакета није у потпуности развијен као Ноде-ов, захваљујући Нодеовом скоро деветогодишњем почетку. Могућност увоза библиотека са било ког места спречава вас да патите од последица екосистема који још није имао прилику да нарасте до пуне величине.
Учешће заједнице у Ноде и Дено
Првобитно објављен 2009. од стране Рајана Дала, Ноде је имао довољно времена да се заједница програмера укључи. Са доста раних корисника и значајном библиотеком пакета који су ускладиштени у његовом званичном репозиторију и који су вам на располагању, јавност је имала доста речи о расту Ноде.јс-а.
Сама платформа је потпуно отвореног кода, одржава је ОпенЈС фондација и многи сарадници.
Дено је објављен 2018. године, скоро 9 година након Ноде-а. Углавном га је развио Риан Дахл да би се позабавио забринутостима и жаљењима које је имао због имплементације Ноде-а. Данас је Дено такође отвореног кода под лиценцом МИТ-а.
Са доста сарадника и растућим сопственим репозиторијом, Дено је видео доста интересовања заједнице.
Забринутост учинка два оквира
За програмере који су заинтересовани за релативне разлике у перформансама између два оквира, постоји мала разлика између њих. Дено-ов прилагођени мотор написан у Руст-у прекрива основни оквир који је и даље В8 мотор. На крају крајева, и Дено и Ноде су упоредиви у скоро свим случајевима у погледу перформанси.
Чини се да је то случај без обзира да ли се резултујући код покреће на серверу или клијенту. Пошто приноси перформанси не утичу на одлуку, слободни сте да изаберете оквир у коме се осећате најугодније.
Рајан Дал, творац оба оквира, понудио је низ разлога за стварање Деноа. Иако је поменуо неколико фактора, од неуспеха да се обећања правилно уграде у многе АПИ-је до његовог изабраног система изградње, перформансе нису биле део процеса.
Ноде вс Дено: који је прави избор?
Испод хаубе, и Ноде.јс и Дено су изузетно слични оквири. Оба извршавају ЈаваСцрипт користећи В8 мотор са сличним перформансама и могућностима. Иако постоје неке разлике у синтакси, управљању пакетима и уграђеној подршци, ваш избор који ћете користити је у великој мери заснован на вашим жељама.
Ноде се може похвалити запањујуће великим екосистемом, али Дено вам омогућава да повучете своје зависности из било ког извора. На крају, мораћете да пажљиво погледате свој стил развоја и одредите која вам платформа више одговара.