fbpx

React, Vue, թե՞ Angular

Երբևէ լսե՞լ եք այս տեխնոլոգիաների մասին։ Իսկ գիտե՞ք դրանց առավելություններն ու թերությունները։ Յուրաքանչյուր front end ծրագրավորողի, JavaScript սովորելուց հետո խորհուրդ է տրվում ուումնասիրել նաև JavaScript-ի հիման վրա կիրառվող գոնե մի ֆրեյմվորք կամ գրադարան՝ լեզվի հնարավորությունների մասին ավելի ամբողջական պատկերացում ունենալու, ինչպես նաև ավելի պահանջված մասնագետ լինելու համար։ Դե ինչ, վերցրե՛ք թուղթ և գրիչ, նկարե՛ք դիագրամ և կարդալու ընթացքում նշե՛ք, թե ո՛րն է ձեզ ավելի համապատասխան։

JavaScript-ը սկրիպտային կամ ծրագրավորման լեզու է, որի միջոցով իրականացվում են տարատեսակ բարդ ֆունկցիաներ վեբ հավելվածներում։ Գոյություն ունեն JavaScript–ի հիման վրա ստեղծված բազմաթիվ տեխնոլոգիաներ՝ սկսած գրադարաններից, ֆրեյմվորքերից, վերջացրած մինչև ամբողջական ու բազմաֆունկցիոնալ հարթակներից։ Սկսնակների համար երբեմն դժվար է հասկանալը, թե հատկապես ո՛ր տեխնոլոգիան է պետք ընտրել հաջողակ ու պահանջված մասնագետ դառնալու համար։ Որևէ տեխնոլոգիայի լավ տիրապետելով՝ դուք ավելի հեշտությամբ կարող եք ընկալել ու կրառել մյուս տեխնոլոգիաները, որովհետև ծրագրավորման գաղափարներն ու սկզբունքները գրեթե նույնն են՝ անկախ լեզվի ու տեխնոլոգիայի ընտրությունից։ Այնպես որ «հաջողակ» ասված բառը ավելի լավ է հանենք մեր մտքից, քանի որ ժամանակի հետ ավելանում են նոր տեխնոլոգիաներ, փոփոխվում են արդեն եղածները, որոշները նույնիսկ գործածությունից դուրս են մղվում՝ չդիմանալով մրցակցությանը։ Իսկ մեզ մնում է միշտ բաց լինել փոփոխությունների համար ու անընդհատ հետևել թրենդներին։

Անցնենք javaScript-ի ամենահայտնի գրադարաններից երեքին՝ React, Vue, Angular։ Իսկ ո՞րն է դրանցից լավագույն ընտրությունը։

2018 թվականի աշխարհում աշխատաշուկայի թրենդները ցուցադրում են, որ աշխատատեղերի քանակը, որտեղ պահանջվում են Angular-ի կամ React-ի մասնագետներ, ավելի մեծ է, մինչդեռ Vue-ի մասնագետների պահանջարկն ընդամենը 20% է։ Չնայած այս ամենին, հաշվի առնելով Vue-ի հայտնիությունը վերջին 3 տարիներում, քիչ ժամանակ անց այն հնարավոր է դառնա ավելի հանրահայտ և օգտագործվի ավելի շատ պրոյեկտներում, քան մյուսները։

Եկեք ծանոթանանք այս երեք գրադարանների առավելություններին՝ հետագայում ճիշտ ընտրություն կատարելու համար․

Facebook-ի կողմից մշակված React-ի նախնական տարբերակը թողարկվել է 2013 թվականին։ Facebook-ը բավականին հաճախ է կիրառում է React-ը իր նախագծերում և արտադրանքներում։ React-ի ամենավերջին տարբերակը 16.X-ն է՝ թողարկված 2018 թվականի նոյեմբերին։ Ըստ վիճակագրական տվյալների, React-ը այժմ համարվում է ամենահայտնի ու ամենակիրառված front end գրադարանն աշխարհում։ Սակայն դա դեռ չի նշանակում, որ այն իր նմանների մեջ լավագույնն է, քանի որ տեխնոլոգիայի լավ կամ վատ լինելը որոշվում է նաև կոնկրետ պրոյեկտի ու վերջինիս պահանջներից ելնելով, ուստի շատ հատկանիշեր պետք է հաշվի առնվեն որևէ մեկն ընտրելուց առաջ։ Փաստն այն է, որ այժմ React-ի պահանջարկն ամենից մեծն է աշխարհում, քանի որ 60․000 աշխատանքային հարթակներում արված հայտարարություններից 78%-ը պահանջում է հենց այս տեխնոլոգիային տիրապետող մասնագետներ, 21%-ը՝ Angular, 0.8%-ը՝ Vue.js:  

Ծանոթանանք React -ի առավելություններին

  • Պարզ դիզայն։ React-ը հեշտ է յուրացվում և կիրառվում՝ շնորհիվ իր պարզ ձևավորման, որն օգտագործում է  JSX ձևաչափը:
  • Աշխատում է շատ արագ՝ վիրտուալ DOM-ի իրականացման և արտապատկերման (rendering) տարբեր օպտիմիզացիաների շնորհիվ։
  • Սերվերային կողմի արտապատկերում։ Աջակցում է սերվերային կողմի արտապատկերմանը՝ (SSR-server-side-rendering) դարձնելով այն  հզոր գործիք՝ բովանդակության վրա հիմնված հավելվածների համար։
  • Միակողմանի կապակցում․ Տվյալների կապակցումը միակողմանի է, որը նշանակում է, որ կողմնակի անցանկալի հետևանքներն ավելի քիչ են (Side effects)։ 
  • Վերաօգտագործվող կոդեր․ React-ը կիրառում է ֆունկցիոնալ ծրագրավորման (Functional Programming – FP) գաղափարները՝ ստեղծելով հեշտ փորձարկվող և արագորեն վերաօգտագործվող բաղադրամասեր, ինչը ոչ միայն թույլ է տալիս խուսափել կոդի կրկնությունից, այլև խնայում է շատ ժամանակ և ջանքեր։

Թեև React-ը զարգանում է շատ արագ, սակայն այն ունի իր ոչ այդքան դրական կողմերը ևս։ Զարգացման հետ մեկտեղ այն առաջացնում է հաստատուն փոփոխություններ, որոնք երբեմն կարող են անհանգստություն պատճառել ծրագրավորողներին, քանի որ փոփոխություններն անընդհատ թարմանում են և ծրագրավորողները ստիպված են լինում հարմարվելու դրանց, ինչպես նաև, որոշ դեպքերում՝ փոփոխելու առկա կոդերը, նոր տարբերակին համապատասխան լինելու համար։

Նշված եռյակից ամենաերիտասարդը Vue.js-ն է, որը ստեղծվել է 2014 թվականին։ Ամենավերջին տարբերակը 2.6-ն է՝ թողարկված 2019 թվականի փետրվարին։ 

Vue.js-ի առավելությունները.

  • Հզորացված HTML. Սա նշանակում է, որ Vue.js-ն ունի շատ նմանություններ Angular-ի հետ և այն կարող է օգնել օպտիմալացնել HTML-ի բլոկները՝ բաժանելով այն կոմպոնենտների։ 
  • Մանրամասն փաստաթղթավորում (Documentation)։  Vue.js- ն ունի շատ մանրակրկիտ մշակված փաստաթղթավորում, որի շնորհիվ ծրագրավորողները շատ հեշտությամբ կարողանում են ինտեգրվել Vue-ի միջավայրին և, ծախսելով քիչ ժամանակ, ստեղծել ֆունկցիոնալ ծրագրեր՝ կիրառելով իրենց միայն HTML- ի և JavaScript- ի հիմնական գիտելիքները:
  • Հարմարվողականություն: Vue.js-ից անցումը դեպի այլ գրադարաններ շատ արագ է տեղի ունենում՝ Angular- ի և React- ի նման դիզայն և կառուցվածք ունենալու շնորհիվ։  
  • Զարմանալի ինտեգրում: Vue.js- ը կարող է օգտագործվել ինչպես մեկ էջանոց ծրագրեր կառուցելու, այնպես էլ ծրագրերի ավելի բարդ վեբ ինտերֆեյսերի համար: Ավելի փոքր ինտերակտիվ մասերը կարելի է հեշտությամբ ներառել առկա ենթակառուցվածքների մեջ, առանց ամբողջ համակարգի վրա բացասական ազդեցության:
  • Խոշոր մասշտաբներ: Vue.js- ը կարող է օգնել մշակել բավականին մեծ վերաօգտագործվող ձևանմուշներ, որոնք կարող են աշխատել շատ արագ՝ իրենց պարզ կառուցվածքի շնորհիվ։
  • Փոքր չափ: Vue.js- ը կարող է կշռել շուրջ 20KB ՝ պահպանելով իր արագությունն ու ճկունությունը, ինչը թույլ է տալիս հասնել շատ ավելի լավ արդյունքների ՝ համեմատած այլ գրադարանների հետ:

Իսկ որո՞նք են թերությունները։ Vue-ն ունի ռեսուրսների պակաս: Vue- ը React-ի կամ Angular-ի հետ համեմատած դեռևս բավականին փոքր մասնաբաժին ունի, ինչը նշանակում է, որ այս տեխնոլոգիայի համար գիտելիքների փոխանակումը դեռ սկզբնական փուլում է:

Google- ի կողմից մշակված Angular-ը առաջին անգամ թողարկվեց 2010-ին: Ամենավերջին տարբերակը Angular 9-ն է, որը թողարկվել է 2020 թվականի փետրվարին։ 

Angular-ի առավելությունները

  • Ժամանակի խնայում․ Angular-ը խնայում է այն ժամանակը, որը ծրագրավորողները ծախսում են JavaScript գրելու վրա, որը արագացնում է միապաղաղ առաջադրանքների կատարումը և օգնում կենտրոնանալու ֆունկցիոնալության և դիզայնի վրա։   
  • Վերաօգտագործում․ Կոմպոնենտի վրա հիմված կառուցվածքի շնորհիվ Angular-ը խթանում է հավելվածներում կոմպոնենտների վերաօգտագործումը։ Դուք կարող եք ստեղծել UI (User Interface- Օգտատերի ինտերֆեյս), միաժամանակ ապահովելով նաև ծրագրավորողների զարգացման գործընթացը։  
  • Մանրամասն փաստաթղթավորում․ թույլ է տալիս ստանալ իր մասին ամբողջ անհրաժեշտ ինֆորմացիան սեփական փաստաթղթավորման համակարգից։
  • Angular-ի օգնությամբ կարելի է ստեղծել ոչ միայն վեբ, այլև բջջային և Desktop հավելվածներ։
  • Բարելավված ընթեռնելիությունը․ կոդավորման հարցում հետևողականությունը ապահովում է նոր ծրագրավորողների արդյունավետ աշխատանքը շարունակական ծրագրերի ընթացքում։

Angular-ի հիմնական թերությունն այն է, որ վերջինիս յուրացումը պահանջում է որոշակի ժամանակ՝ մոդուլների, կոդավորման լեզուների ինտեգրման և հարմարեցման բարդ ցանցի պատճառով։ 

Դե ինչ, դուք արդեն գիտեք այս երեք հզոր գործիքների առավելություններն ու թերությունները։ Նյութն ուսումնասիրելուց հետո ընտրությունը մնում է ձեզ։  Հիշե՛ք, որ գոյություն չունի լավագույնը, այն որոշվում է առավելապես տվյալ խնդրի կամ պրոյեկտի պահանջներից, ինչպես նաև տվյալ ժամանակում նրա ակտուալությունից ելնելով։