React.js թե՞ Angular 5

Ծրագրավորման մեջ, ինչպես առօրյա կյանքում, կան անվերջ քննարկվող թեմաներ, որոնց դեպքում չկա մեկ հստակ պատասխան։ Օրինակ՝ ո՞րն է երթևեկությունն անվտանգ դարձնելու ամենաճիշտ եղանակը․ ավելի բարձր տուգանքներ սահմանե՞լ, տեսախցիկներ դնե՞լ, թե՞ ավելի լավ ճանապարհներ ապահովել։ Տարբեր պատասխանների դեպքում մենք ունենում ենք տարբեր արդյունքներ և տարբեր լուծումներ։

Նմանատիպ բոլոր քննարկումների դեպքում պետք է հաշվի առնել, թե ինչ խնդիր ենք լուծում, ո՞րն է մեր նպատակը։ Ի՞նչ տեսակի վեբ հավելված ենք մենք մշակում, ի՞նչ ծավալի տվյալների հետ գործ ունենք։

Հաշվի առնելով այն, որ ներկայումս վեբ ծրագրավորման ոլորտում մեծ պահանջարկ ունեն react.js-ը և Angular 5-ը, փորձենք հասկանալ յուրաքանչյուրի առավելություններն ու թերությունները։

Եթե փորձենք հակիրճ ձևակերպել, ապա կարող ենք ասել, որ react․js-ը կարելի է ընտրել, եթե մշակում ենք մեծ վեբ հավելվածներ, որտեղ մեծ քանակությամբ տվյալներ միաժամանակ փոփոխվում են, քանի որ այն արագ է թարմացնում պատկերը՝ ի համեմատություն Angular 5-ի։


Եթե դիտարկենք react.js-ի կոնկրետ առավելությունները, ապա կարելի է նշել հետևյալը՝

  • Վիրտուալ DOM, որում հնարավոր է գտնել HTML-ի այն հատվածները, որոնք թարմացման կարիք ունեն՝ կախված փոփոխված տվյալներից և իրական DOM-ում փոխում է միայն այդ հատվածները։ Հետևաբար եթե react-ի կոմպոնենտի մեջ երևացող տվյալները չեն փոխվել, ապա այդ կոմպոնենտը re-render չի լինում։
  • Downward data binding, որը նշանակում է, որ տվյալների այս հոսքի դեպքում դուստր/child/ տարրը չի ազդում ծնող/parent/ տարրի վրա։
  • Բարձր ճկունություն և responsiveness-ի բարձր մակարդակ։
  • 100% բաց գրադարան, որը թարմացվում և բարելավվում է ամեն օր։
  • Ահավոր թեթև, քանի որ user-side/օգտատիրոջ կողմի տվյալները հեշտությամբ միաժամանակ ներկայացվում են սերվերի կողմի վրա։
  • Տարբեր տարբերակների միջև հեշտ անցում, քանի որ ֆեյսբուքը տրամադրում է codemods՝ այս գործընթացը հնարավորինս ավտոմատացնելու համար։

React․js-ը մի տեսակ շատ իդեալական ստացվեց, ու որպեսզի արդար գտնվենք, նշենք նաև մի քանի թերություններ՝

  • Պաշտոնական փաստաթղթավորման բացակայություն, քանի որ այն զարգանում է անվերահսկելի արագությամբ, իրականում ամբողջ փաստաթղթավորումը քաոսային բնույթ է կրում, որովհետև միաժամանակ շատ ծրագրավորողներ են այն թարմացնում՝ չունենալով որևէ համակարգված մոտեցում։

Angular 5-ը JavaScript-ի MVVM սուպերհերոս framework-ներից մեկն է և որպես իսկական հերոս այս ոլորտում՝ ունի բազմաթիվ տեխնիկական առավելություններ, մասնավորապես՝

  • Նոր հատկություններ, ինչպիսիք են՝ ավելի ընդլայնված RXJS, ավելի լավ կոմպիլիացիա (ավելի քիչ քան 3 վայրկյան), նոր HttpClient
  • Մանրամասն փաստաթղթավորում, որը թույլ է տալիս ծրագրավորողին հեշտությամբ գտնել տեղեկություն
  • Երկկողմանի տվյալների data binding, որի դեպքում հնարավոր է միայն մեկ behavior, ինչն էլ իր հերթին նվազեցնում է հնարավոր սխալների ռիսկը։

Angular 5-ը՝ որպես իսկական ոսկե մեդալ, ունի նաև երկրորդ վատ կողմը՝

  • Բարդ սինտաքս։ Angular 5-ի դեպքում մի փոքր հեշտացել է, քանի որ օգտագործվում է TypeScript 2.4, որն համեմատության մեջ ավելի հեշտ է սովորել։

Ո՞րը սովորել

Այս ամենից հետո հարց է առաջանում, եթե ես երկուսն էլ չգիտեմ, որը սովորեմ։ Եթե նայենք վեբ ծրագրավորողների աշխատաշուկայում տիրող պահանջարկը, ապա 60,000 թափուր աշխատատեղի դեպքում առյուծի բաժինը՝ 78 տոկոսը վերաբերում է react.js-ին, և միայն 21%-ը angular 5-ին։ Հետաքրքիր է տեսնել նաև որ ներկայումս ոլորտում նաև կիրառություն ունի նոր framework՝ vue.js, որին բաժին է ընկնում մոտավորապես 1%-ը։ Իրավիճակը գրեթե նույնն է Հայաստանյան շուկայում։ Vue.js-ը նոր է մուտք գործում, և դեռևս չկան լավ մասնագետներ, դրան զուգահետ չկան նաև թվով շատ թափուր աշխատատեղեր։

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