Կատարողից դեպի ճարտարապետ
Նախկինում աշխատանքային ժամանակի զգալի մասը ծախսվում էր անմիջապես կոդ գրելու վրա։ Անհրաժեշտ էր ստեղծել կոմպոնենտներ, պատրաստել էջերի վերստակումը, գրել API, կարգավորել սերվերը, nginx-ը, Docker-ը և SSL-ը, գտնել սխալները և ուսումնասիրել փաստաթղթավորումը։
Այսօր այդ ռուտինային աշխատանքի մեծ մասը կարելի է փոխանցել AI-ագենտներին։
Ծրագրավորողը, սակայն, գործընթացից չի անհետանում։ Նա որոշում է, թե կոնկրետ ինչ պետք է կառուցվի, ինչպես այն պետք է աշխատի և ինչպես այն պետք է կառուցված լինի ներսից։
Ըստ էության, մշակումը ձեռքով կատարվող գործողությունների հաջորդականությունից վերածվում է ինտելեկտուալ գործիքների մի ամբողջ հավաքածուի կառավարման գործընթացի։
Ենթադրենք՝ ծրագրավորողն ունի նոր վեբ պրոդուկտի գաղափար և հստակ պատկերացում, թե տեխնիկապես ինչպես այն պետք է իրականացվի։
Առաջին փուլը կարող է լինել դիզայնը։ Փոխանակ Figma-ում յուրաքանչյուր էջը ձեռքով նկարելու՝ կարելի է ձևակերպել պահանջները և AI-ի օգնությամբ ստանալ ինտերֆեյսի նախնական կառուցվածք, կոմպոնենտներ, բլոկների դասավորության տարբերակներ և տեսողական կոնցեպտ։
Դրանից հետո ծրագրավորողը սահմանում է backend-ի ճարտարապետությունը՝ էությունները, դրանց միջև կապերը, տվյալների պահպանման եղանակները, ավտորիզացիան, բիզնես-տրամաբանությունը և API-ն։
Այնուհետև այդ ճարտարապետությունը կարելի է փոխանցել AI-ագենտին, օրինակ՝ Codex-ին կամ Claude Code-ին, որը կիրականացնի backend-ի զգալի մասը։
Հաջորդ փուլը frontend-ն է։ Ծրագրավորողը նախագծում է API-ն և հավելվածի ռոութինգը, սահմանում է ինտերֆեյսի վիճակը և կոմպոնենտների փոխգործակցության կանոնները, իսկ գործակալն արդեն իրականացնում է այդ համակարգը՝ պատրաստված դիզայնի հիման վրա։
Արդյունքում այն, ինչը նախկինում կարող էր տևել մեկ շաբաթից մինչև մեկ ամիս, որոշ նախագծերում իսկապես հնարավոր է հավաքել մեկ օրվա ընթացքում։
Սակայն այստեղ կա մի կարևոր վերապահում․ ավելի արագ ստեղծվում է ոչ թե հենց պրոդուկտը, այլ պրոդուկտի առաջին աշխատող տարբերակը։
Մշակումը դարձել է ավելի արագ, բայց ծրագրավորողին ներկայացվող պահանջները չեն վերացել
AI-ն հիանալի է կատարում կոնկրետ տեխնիկական առաջադրանքներ։ Սակայն արդյունքի որակն անմիջականորեն կախված է նրանից, թե որքան լավ է ձևակերպված առաջադրանքը։
Կարելի է գործակալին խնդրել ստեղծել օնլայն խանութ և ստանալ աշխատող օնլայն խանութ։
Բայց բոլորովին այլ հարց է, թե որքան լավ է այն նախագծված։ Փորձառու ծրագրավորողը պետք է պատասխանի այսպիսի հարցերի․
- Ինչպե՞ս է կառուցված տվյալների բազան։
- Որտե՞ղ է գտնվում բիզնես-տրամաբանությունը։
- Ինչպե՞ս է համակարգը աշխատելու բեռնվածության աճի դեպքում։
- Հնարավո՞ր կլինի նոր գործառույթներ ավելացնել՝ առանց հավելվածի կեսը վերագրելու։
- Ինչպե՞ս է կազմակերպված ավտորիզացիան։
- Ի՞նչ տեղի կունենա միաժամանակ ստացվող հարցումների դեպքում։
- Ինչպե՞ս են մշակվում սխալները։
- Ի՞նչ տեղի կունենա արտաքին ծառայության խափանման դեպքում։
- Որտե՞ղ են գտնվում անվտանգության հնարավոր խնդիրները։
Հենց այստեղ էլ կրկին անհրաժեշտ է փորձառու ծրագրավորողը։
AI-ն կարող է գրել հազարավոր տողեր կոդ, բայց այն հարցի պատասխանը, թե ինչ կոդ ընդհանրապես պետք է գոյություն ունենա, դեռևս տալիս է մարդը։
Այդ պատճառով ժամանակակից վեբ ծրագրավորողի ամենակարևոր հմտություններից մեկը դառնում է ճարտարապետության նախագծումը։
AI-ագենտը՝ որպես մշակման լիարժեք մասնակից
Կոդի հետ աշխատանքի գործընթացը հատկապես կտրուկ փոխվեց AI-ագենտների հայտնվելուց հետո։
Չաթում սովորական նեյրոցանցը հիմնականում պատասխանում է հարցերին կամ գեներացնում կոդի առանձին հատվածներ։ Գործակալը կարող է աշխատել անմիջապես նախագծի հետ՝ ուսումնասիրել ֆայլերի կառուցվածքը, փոփոխել կոդը, գործարկել հրամաններ, կատարել թեստեր, վերլուծել սխալները և ուղղել դրանք։
Սա արդեն շատ ավելի նման է վիրտուալ թիմակցի հետ աշխատանքին, քան ծրագրավորողի համար տեղեկատու գործիքի օգտագործմանը։
Ծրագրավորողը կարող է առաջադրել մոտավորապես այսպիսի խնդիր․
«Իրականացրու Google-ի միջոցով ավտորիզացիա։ Օգտագործիր նախագծի գոյություն ունեցող ճարտարապետությունը, ավելացրու անհրաժեշտ միգրացիաները, API endpoints-ները, middleware-ը, frontend կոմպոնենտները և թեստերը»։
Գործակալը ինքնուրույն կուսումնասիրի նախագիծը, կգտնի փոփոխությունների համար անհրաժեշտ տեղերը և կկատարի աշխատանքի մեծ մասը։
Միևնույն ժամանակ ծրագրավորողը պետք է հասկանա նախագծի ճարտարապետությունը և ստուգի արդյունքը։ Գործակալի կատարած փոփոխությունները չի կարելի պարզապես լռելյայն համարել ճիշտ։
AI-ն կարող է ստեղծել տեխնիկապես աշխատող իրականացում, որը ընդհանրապես չի համապատասխանում կոնկրետ նախագծի ճարտարապետությանը։
Դեպլոյն էլ է դառնում ավտոմատացված
Ընդամենը մի քանի տարի առաջ նախագիծը սերվերի վրա տեղադրելը կարող էր առանձին խնդիր լինել։
Պետք էր միանալ SSH-ով, ստուգել տեղադրված ծրագրակազմը, կարգավորել nginx-ը, ստեղծել վիրտուալ հոսթի կոնֆիգուրացիան, ստուգել DNS-ը, ընտրել հասանելի պորտերը, տեղադրել SSL սերտիֆիկատը, կարգավորել Docker-ը, environment variables-ը և գործարկել հավելվածը։
Այսօր այդ աշխատանքի զգալի մասը նույնպես կարելի է փոխանցել AI-ագենտին։
Գործակալը կարող է SSH-ով միանալ սերվերին, վերլուծել դրա վիճակը, որոշել առկա կոնֆիգուրացիան, ստուգել nginx-ի և Docker-ի առկայությունը, ուսումնասիրել զբաղված պորտերը, ստուգել դոմեյնը, կլոնավորել Git ռեպոզիտորիան, ստեղծել անհրաժեշտ կոնֆիգուրացիոն ֆայլերը, կարգավորել SSL-ը և գործարկել հավելվածը։
Դրանից հետո մարդուն մնում է միայն ստուգել արդյունքը և համոզվել, որ հավելվածն իսկապես աշխատում է նախատեսված ձևով։
Այսպիսով ավտոմատացվում է ոչ միայն կոդի գրելը, այլ նաև մշակման օպերացիոն մասը։
Փաստաթղթավորումը դառնում է ճարտարապետության մաս
Կա ևս մեկ կարևոր ասպեկտ, որը հատկապես արդիական է դառնում AI-ագենտների հետ աշխատելիս՝ նախագծի փաստաթղթավորումը։
Երբ ծրագրավորողը բացում է նոր նախագիծ, ժամանակի զգալի մասը ծախսվում է այն ուսումնասիրելու վրա։
Պետք է հասկանալ կատալոգների կառուցվածքը, ճարտարապետական որոշումները, API-ն, տվյալների բազան, կախվածությունները, կոդի հետ աշխատելու պայմանավորվածությունները և դեպլոյի գործընթացը։
Մարդու համար սա կարող է տևել մի քանի ժամ կամ օր։
AI-ի համար դա նաև նշանակում է մեծ քանակությամբ կոնտեքստ, որը պետք է փոխանցվի մոդելին յուրաքանչյուր նոր առաջադրանքի ժամանակ։
Այդ պատճառով մշակման ավարտից հետո օգտակար է խնդրել գործակալին փաստաթղթավորել նախագիծը։
Փաստաթղթավորման մեջ կարելի է նկարագրել ճարտարապետությունը, տվյալների բազայի կառուցվածքը, API-ն, հիմնական մոդուլները, նախագծի հետ աշխատելու կանոնները, դեպլոյի գործընթացը և այլ կարևոր որոշումներ։
Հաջորդ անգամ, երբ գործակալը պետք լինի, նրան այլևս պետք չի լինի զրոյից ուսումնասիրել ամբողջ նախագիծը։ Նա կկարողանա օգտագործել գոյություն ունեցող փաստաթղթավորումը որպես մեկնարկային կետ։
Ստացվում է նախագծի յուրատեսակ հիշողություն։
Ծրագրավորողի հիմնական խնդիրն է ճիշտ նախագծել համակարգը
Արդյունքում ծրագրավորողի արժեքը աստիճանաբար տեղափոխվում է առանձին տողերի կոդ գրելուց դեպի ավելի բարձր մակարդակ։
Ամենակարևորն է դառնում՝
- ինչ է կոնկրետ կառուցվում;
- ինչ ճարտարապետություն է ընտրվում;
- ինչպես են համակարգի բաղադրիչները փոխազդում միմյանց հետ;
- որքան հեշտ կլինի ընդլայնել նախագիծը;
- որ տեխնիկական որոշումները կարող են խնդիր դառնալ մեկ տարի անց;
- և որքանով է արդյունքը համապատասխանում սկզբնական գաղափարին։
AI-ն կարող է շատ արագ իրականացնել սխալ ճարտարապետություն։
Ավելին, որքան արագ է աշխատում գործակալը, այնքան արագ կարելի է հասնել սխալ արդյունքի։
Այդ պատճառով ժամանակակից մշակումը ծրագրավորողից պահանջում է ոչ պակաս, իսկ հաճախ նույնիսկ ավելի խորը հասկանալ ամբողջ համակարգը։
Ինչ է փոխվել գործնականում
Եթե պարզեցնենք, ապա մշակման ժամանակակից գործընթացը կարող է մոտավորապես այսպիսի տեսք ունենալ․
Գաղափար → ճարտարապետություն → դիզայն → իրականացում → թեստավորում → դեպլոյ → փաստաթղթավորում։
Գրեթե յուրաքանչյուր փուլում հնարավոր է օգտագործել AI։
Ծրագրավորողը ձևավորում է պահանջները և ընդունում որոշումները։
AI-ն օգնում է այդ որոշումները վերածել կոնկրետ արդյունքի։
Ծրագրավորողը ստուգում է արդյունքը, ուղղում ընթացքը և ընդունում հաջորդ ճարտարապետական որոշումները։
Այս իմաստով AI-ն դառնում է ոչ թե ծրագրավորողի փոխարինող, այլ նրա արտադրողականության բազմապատկիչ։
Մեկ մարդ ստանում է փոքր թիմի հնարավորությունները։
Ցանկանու՞մ եք տեսնել, թե ինչպես է այս մոտեցումն աշխատում գործնականում, նայեք այն ապրանքներին, որոնք մենք ստեղծում ենք AI-ի օգնությամբ։
Բայց այս ավտոմատացման սահմաններ կան
Կարևոր է հասկանալ, որ այս մոտեցումը հիմնականում աշխատում է այն դեպքում, երբ հենց ծրագրավորողն էլ հասկանում է, թե ինչ է կառուցում։
Եթե մարդը չգիտի, թե ինչպես պետք է աշխատի տվյալների բազան, ինչու է անհրաժեշտ կոնկրետ API, ինչպես է աշխատում ավտորիզացիան կամ ինչու հավելվածը պետք է կազմակերպված լինի հենց այդ ձևով, AI-ն չի կարող հուսալիորեն փոխհատուցել այդ գիտելիքների բացակայությունը։
Կարելի է ստիպել գործակալին կառուցել հավելված։
Շատ ավելի դժվար է նրան ստիպել ինքնուրույն ճիշտ արտադրանքային և ճարտարապետական որոշումներ կայացնել բոլոր ոչ ստանդարտ իրավիճակներում։
Այդ պատճառով ժամանակակից ծրագրավորողը աստիճանաբար դառնում է յուրօրինակ տեխնիկական ճարտարապետ, առաջադրանքներ ձևակերպող և ռևյուեր, որը AI-ագենտներին օգտագործում է որպես իրականացման գործիք։
Վեբ մշակումը դառնում է ավելի արագ
Ամենահետաքրքիր փոփոխությունն այն է, որ պրոդուկտի առաջին տարբերակի ստեղծման արժեքն ու ժամանակը զգալիորեն նվազում են։
Դեռ վերջերս գաղափարը ստուգելու համար կարող էին պահանջվել շաբաթներ։
Այսօր շատ դեպքերում հնարավոր է մի քանի օրվա, իսկ երբեմն էլ մեկ օրվա ընթացքում հավաքել աշխատող պրոտոտիպ, միացնել տվյալների բազան, իրականացնել API-ն, պատրաստել ինտերֆեյսը և ամբողջը տեղադրել սերվերի վրա։
Սա փոխում է հենց պրոդուկտների մշակման մոտեցումը։
Այժմ կարելի է ավելի արագ ստուգել գաղափարները, ավելի արագ գործարկել MVP-ները, ավելի արագ հրաժարվել անհաջող կոնցեպտներից և ավելի արագ անցնել հաջորդ տարբերակին։
Միևնույն ժամանակ մեծանում է ճարտարապետության համար պատասխանատվությունը։
Որովհետև կոդ գրելն ավելի հեշտ է դարձել։
Բայց ճիշտ համակարգ կառուցելը դեռևս դժվար է։
Եվ հենց սա, հավանաբար, դառնում է նոր դարաշրջանի վեբ ծրագրավորողի հիմնական հմտություններից մեկը։
Ցանկանու՞մ եք քննարկել, թե ինչպես ճիշտ նախագծել ձեր ապրանքը։ Կապվեք մեզ հետ․ կօգնենք մտածել ճարտարապետությունը և հասցնել նախագիծը production։
Եկեք ձեր գաղափարը վերածենք աշխատող ապրանքի
Տեսեք մեր սակագները կամ կապվեք ProLeadly թիմի հետ․ կօգնենք նախագծել ճարտարապետությունը և AI-ի օգնությամբ թողարկել ձեր վեբ-ապրանքը։