Հոդվածներ

Ի՞նչ է ծայրահեղ ծրագրավորումը (XP), ի՞նչ արժեքների վրա է այն հիմնված, սկզբունքների և պրակտիկայի վրա

Դուք ծանոթ եք ծրագրավորմանը, բայց Extreme Programming-ը (կարճ՝ XP) դեռևս մի փոքր առեղծված է ձեզ համար:

Թույլ մի տվեք, որ անունը ձեզ շեղի, դուք վտանգում եք կորցնել օգտակար տեղեկատվություն:

Այս հոդվածում մենք կանդրադառնանք այն ամենին, ինչ դուք պետք է իմանաք Extreme Programming-ի մասին, որպեսզի կարողանաք օգտագործել այն ձեր օգտին:

Ի՞նչ է ծայրահեղ ծրագրավորումը (XP):

Ծայրահեղ ծրագրավորումը ծրագրային ապահովման մշակման մեթոդաբանություն է, որը մաս է կազմում այն ​​բանի, որը հավաքականորեն հայտնի է որպես արագաշարժ մեթոդոլոգիաներ: XP-ն կառուցված է արժեքների, սկզբունքների և պրակտիկայի վրա, և դրա նպատակն է թույլ տալ փոքր և միջին թիմերին արտադրել բարձրորակ ծրագրակազմ և հարմարվել անընդհատ փոփոխվող և զարգացող պահանջներին:

XP-ին տարբերվող այլ արագաշարժ մեթոդոլոգիաներից այն է, որ XP-ն ընդգծում է ծրագրային ապահովման մշակման տեխնիկական ասպեկտները: Ծայրահեղ ծրագրավորումը ճշգրիտ է այն մասին, թե ինչպես են աշխատում ինժեներները, քանի որ հետևյալ ինժեներական պրակտիկաները թույլ են տալիս թիմերին ապահովել բարձրորակ ծածկագիր կայուն տեմպերով:

Ծայրահեղ ծրագրավորումը, մի խոսքով, ծայրահեղության հասցված լավ պրակտիկա է: Քանի որ զույգ ծրագրավորումը լավ է, եկեք դա անենք անընդհատ: Քանի որ նախօրոք փորձարկումը լավ է, մենք փորձարկում ենք նախքան արտադրության ծածկագիրը նույնիսկ գրելը:

Ինչպե՞ս է աշխատում ծայրահեղ ծրագրավորումը (XP):

XP-ն, ի տարբերություն այլ մեթոդաբանությունների, հիմնված է արժեքների և սկզբունքների վրա, որոնք կարևոր և համապատասխան են ինժեներական պրակտիկայի առումով:

Արժեքները նպատակ են տալիս թիմերին: Նրանք հանդես են գալիս որպես «հյուսիսային աստղ»՝ ձեր որոշումները բարձր մակարդակով առաջնորդելու համար: Այնուամենայնիվ, արժեքները վերացական են և չափազանց մշուշոտ հատուկ ուղեցույցի համար: Օրինակ՝ ասելով, որ դուք գնահատում եք հաղորդակցությունը, կարող է հանգեցնել շատ տարբեր արդյունքների:

Պրակտիկան ինչ-որ իմաստով արժեքների հակառակն է: Նրանք կոնկրետ են և գետնին, defiսահմանելով անելիքների առանձնահատկությունները: Պրակտիկան օգնում է թիմերին հաշվետու լինել արժեքների համար: Օրինակ, տեղեկատվական աշխատանքային տարածքների պրակտիկան նպաստում է թափանցիկ և պարզ հաղորդակցությանը:

Սկզբունքները տիրույթին հատուկ ուղեցույցներ են, որոնք կամրջում են պրակտիկայի և արժեքների միջև առկա բացը:

Extreme Programming XP-ի արժեքները

XP արժեքներ՝ հաղորդակցություն, պարզություն, հետադարձ կապ, քաջություն և հարգանք: Դիտարկենք դրանցից յուրաքանչյուրին ավելի մանրամասն:

Ծայրահեղ ծրագրավորման արժեքներ և սկզբունքներ

մշակումը BlogInnovazione.այն պատկերից alexsoft.com

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

ՊարզությունՊարզությունը ասում է, որ դուք միշտ ձգտում եք անել ամենապարզ բանը, որն աշխատում է: Այն հաճախ սխալ է հասկացվում և ընդունվում որպես ամենապարզ բան, կետ՝ անտեսելով «որ աշխատում է» մասը։

Կարևոր է նաև հիշել, որ պարզությունը խիստ համատեքստային է: Այն, ինչ պարզ է մի թիմի համար, բարդ է մյուսի համար և ամբողջովին կախված է յուրաքանչյուր թիմի հմտություններից, փորձից և գիտելիքներից:

հետադարձ կապԱվելի ավանդական, կասկադային ծրագրային ապահովման մշակման մեթոդոլոգիաներում հետադարձ կապը հաճախ «չափազանց քիչ է, շատ ուշ»:

XP-ն, այնուամենայնիվ, ընդունում է փոփոխությունները, և XP թիմերը ձգտում են ժամանակին և մշտական ​​արձագանքների: Եթե ​​դասընթացի շտկում է անհրաժեշտ, XPers-ը ցանկանում է իմանալ որքան հնարավոր է շուտ:

Ծայրահեղ ծրագրավորման ցիկլ

մշակումը BlogInnovazione.այն պատկերից alexsoft.com

Հետադարձ կապը գալիս է բազմաթիվ ձևերի և չափերի: Երբ դուք համագործակցում եք ծրագրավորման հետ, ձեր գործընկերոջ մեկնաբանությունները կարևոր արձագանք են: Այդպիսին են թիմի մյուս անդամների կարծիքները գաղափարի վերաբերյալ, ներառյալ հաճախորդը, ով իդեալականորեն թիմի անդամ է:

Թեստերը արժեքավոր հետադարձ կապի ևս մեկ աղբյուր են, որը դուրս է թեստի արդյունքներից: Թեստեր գրելը հեշտ է, թե դժվար, հետադարձ կապը նույնպես: Եթե ​​դժվարանում եք թեստեր գրել, ձեր նախագիծը, հավանաբար, չափազանց բարդ է: Լսեք արձագանքները և պարզեցրեք ձեր դիզայնը:

Ինչ-որ բան, որը հնչում է որպես հիանալի գաղափար, կարող է գործնականում այնքան էլ լավ չաշխատել: Հետևաբար, պատրաստի կոդը նույնպես հետադարձ կապի աղբյուր է, ինչպես նաև բաշխված արտադրանքը:

Ի վերջո, հիշեք, որ արձագանքները չափազանց շատ են: Եթե ​​թիմն ավելի շատ արձագանք է առաջացնում, քան կարող է կառավարել, կարևոր հետադարձ կապը կարող է ընկնել ռադարից: Այսպիսով, անհրաժեշտ է դանդաղեցնել և պարզել, թե ինչն է առաջացնում ավելորդ արձագանքը և ուղղել այն:

ՔաջությունՔենթ Բեկ defiխիզախությունը ի հայտ է գալիս որպես «արդյունավետ գործողություն վախի դիմաց»: Որպես ծրագրային ապահովման ինժեներ, դուք վախենալու շատ բան ունեք և, հետևաբար, քաջություն դրսևորելու շատ հնարավորություններ:

Ճշմարտությունն ասելու համար քաջություն է պետք, հատկապես՝ տհաճները, օրինակ՝ ազնիվ գնահատականները։ Հետադարձ կապ տալն ու ստանալը նույնպես քաջություն է պահանջում: Եվ խիզախություն է պահանջվում՝ խուսափելու ծախսերի խորտակված մոլորության մեջ ընկնելու և անհաջող լուծումից հրաժարվելու համար, որը զգալի ներդրումներ է ստացել:

ՀարգանքXP-ի հիմնական նախադրյալն այն է, որ յուրաքանչյուրը հոգ է տանում իր աշխատանքի մասին: Ոչ մի տեխնիկական գերազանցություն չի կարող փրկել նախագիծը, եթե չկա խնամք և հարգանք:

Յուրաքանչյուր մարդ արժանի է արժանապատվության և հարգանքի, և դա ներառում է, իհարկե, ծրագրային ապահովման մշակման նախագծում ներգրավված մարդիկ: Երբ դուք և ձեր թիմի անդամները հարգում և հոգ տանում եք միմյանց, հաճախորդի, նախագծի և նրա ապագա օգտագործողների համար, բոլորը շահում են

Ծայրահեղ ծրագրավորման սկզբունքները XP

Սկզբունքները ավելի կոնկրետ ուղեցույց են տալիս, քան արժեքները: Դրանք ուղեցույցներ են, որոնք լուսավորում են արժեքները և դարձնում դրանք ավելի հստակ և ավելի քիչ երկիմաստ:

մշակումը BlogInnovazione.այն պատկերից alexsoft.com

Օրինակ՝ ելնելով միայն խիզախության արժեքից՝ դուք կարող եք եզրակացնել, որ նպատակահարմար է անմիջապես փոխել ձեր գրաֆիկը։ Այնուամենայնիվ, Baby Steps սկզբունքը մեզ ասում է, որ մեծ փոփոխությունները ռիսկային են: Այսպիսով, փոխարենը նախապատվություն տվեք փոքրերին:

ՈւմանիտաՄարդիկ ստեղծում են ծրագրակազմ մարդկանց համար, հաճախ անտեսված փաստ: Բայց հաշվի առնելով մարդու հիմնական կարիքները, ուժեղ և թույլ կողմերը՝ ստեղծում են ապրանքներ, որոնք մարդիկ ցանկանում են օգտագործել: Եվ աշխատանքային միջավայրը, որը ձեզ հնարավորություն է ընձեռում կատարելագործման և աճի, պատկանելության և տարրական ապահովության զգացում, այն վայրն է, որտեղ դուք ավելի հեշտությամբ եք հաշվի առնում ուրիշների կարիքները:

ՏնտեսությունXP-ում թիմերը միշտ ուշադրություն են դարձնում ծրագրային ապահովման մշակման տնտեսական իրողություններին, մշտապես գնահատում են տնտեսական ռիսկերը և նախագծի կարիքները:

Օրինակ, նրանք կիրականացնեն օգտատերերի պատմությունները՝ հիմնվելով իրենց բիզնեսի արժեքի վրա, այլ ոչ թե տեխնիկական խնդիրների վրա:

Փոխադարձ շահXP-ից հետո դուք խուսափում եք լուծումներից, որոնք շահում են մի կողմին՝ մյուսի հաշվին: Օրինակ, ընդլայնված բնութագրերը կարող են օգնել մեկ ուրիշին հասկանալ այն, բայց դա շեղում է ձեզ այն իրականացնելուց և հետաձգում այն ​​ձեր օգտատերերի համար:

Փոխշահավետ լուծում է ընդունելության ավտոմատացված թեստերի օգտագործումը: Ստացեք ակնթարթային արձագանք ձեր կատարման վերաբերյալ, ձեր գործընկերները ստանում են ճշգրիտ բնութագրեր կոդի մեջ, և օգտատերերն առաջինը ստանում են իրենց հնարավորությունները: Բացի այդ, դուք բոլորդ կունենաք անվտանգության ցանց ռեգրեսիայի դեմ:

Նպաստ (Փոխշահավետ)Եթե ​​տվյալ լուծումն աշխատում է մեկ մակարդակում, այն կարող է աշխատել նաև ավելի բարձր կամ ավելի ցածր մակարդակի վրա: Օրինակ, վաղաժամ և մշտական ​​արձագանք ստանալը վտանգված է XP-ում տարբեր աստիճանի:

  • ծրագրավորողների մակարդակում ծրագրավորողները հետադարձ կապ են ստանում իրենց աշխատանքից՝ օգտագործելով առաջին թեստի մոտեցումը.
  • թիմային մակարդակում շարունակական ինտեգրման խողովակաշարը օրական մի քանի անգամ ինտեգրվում, կառուցում և փորձարկում է ծածկագիրը.
  • Կազմակերպչական առումով շաբաթական և եռամսյակային ցիկլերը թիմերին թույլ են տալիս ստանալ հետադարձ կապ և անհրաժեշտության դեպքում բարելավել իրենց աշխատանքը:

ԲարելավումԲարելավման սկզբունքի համաձայն՝ թիմերը ձգտում են կատարելության ոչ թե սկզբնական ներդրման ժամանակ, այլ իրականացնելու, որը բավական լավ է, այնուհետև շարունակաբար սովորել և կատարելագործել այն իրական օգտատերերի արձագանքներով:

ԲազմազանությունԴուք և ձեր գործընկերները օգտվում եք տարբեր տեսակետներից, հմտություններից և վերաբերմունքից: Նման բազմազանությունը հաճախ հանգեցնում է կոնֆլիկտի, բայց դա նորմալ է:

Կոնֆլիկտներն ու անհամաձայնությունները հնարավորություններ են ավելի լավ գաղափարների առաջացման համար, երբ բոլորը խաղում են խիզախության և հարգանքի արժեքներով: Հակառակ տեսակետներ արտահայտելու համարձակություն, դրանք քաղաքացիական և էմպատիկ կերպով արտահայտելու հարգանք: Եվ այս ամենը արդյունավետ հաղորդակցման վարժություն է:

ԱրտացոլումՄեծ թիմերը մտածում են իրենց աշխատանքի մասին և վերլուծում, թե ինչպես լինել ավելի լավը: XP-ն դրա համար շատ հնարավորություններ է առաջարկում: Ոչ միայն իր շաբաթական և եռամսյակային ցիկլերում, այլև յուրաքանչյուր պրակտիկայում այն ​​նպաստում է:

Տրամաբանական վերլուծությունից բացի կարևոր է հաշվի առնել նաև զգացմունքները: Ձեր աղիքները կարող են ձեզ տեղեկացնել նախքան որևէ բանի մասին պատճառաբանելը: Եվ այսպես, նա կարող է խոսել ոչ տեխնիկական մարդկանց հետ, նրանք կարող են հարցեր տալ, որոնք բացում են բոլորովին նոր հնարավորություններ:

ՖլուսսոԾրագրային ապահովման մշակման ավանդական մեթոդոլոգիաներն ունեն հստակ փուլեր, որոնք երկար են տևում և հետադարձ կապի և դասընթացի ուղղման քիչ հնարավորություն ունեն: Փոխարենը, XP-ում ծրագրային ապահովման մշակումը տեղի է ունենում անընդհատ տեղի ունեցող գործողություններում, արժեքի հետևողական «հոսքի» մեջ:

ՀնարավորությունԾրագրային ապահովման մշակման մեջ խնդիրներն անխուսափելի են: Այնուամենայնիվ, յուրաքանչյուր խնդիր բարելավման հնարավորություն է։ Սովորեք նայել դրանց այս ձևով, և շատ ավելի հավանական է, որ կգտնեք կրեատիվ և նպատակաուղղված լուծումներ, որոնք նույնպես կկանխեն դրանց կրկնությունը:

ԱվելորդությունԱվելորդության սկզբունքն ասում է, որ եթե տվյալ խնդիրը կրիտիկական է, դուք պետք է կիրառեք բազմաթիվ մարտավարություններ դրան հակազդելու համար:

Վերցրեք թերությունները: Չկա որևէ մեկ մարտավարություն, որը կարող է կանխել բոլոր թերությունները, որպեսզի փախչեն արտադրությունից:

Այսպիսով, XP-ի լուծումը որակի մի շարք միջոցառումներ հավաքելն է: Զույգերի ծրագրավորում, փորձարկում, շարունակական ինտեգրում: Յուրաքանչյուրը մեկ պաշտպանական գիծ, ​​միասին գրեթե անթափանց պատ:

ՁախողումԱնհաջողությունը վատնում չէ, երբ այն վերածվում է գիտելիքի: Գործողություններ անելը և արագ սովորելը, թե ինչն է անհաջող, շատ ավելի արդյունավետ է, քան անգործությունը, որն առաջացել է անվճռականության հետևանքով բազմաթիվ տարբերակներից ընտրելիս:

ՈրակՄարդիկ հաճախ մտածում են, որ որակի և արագության միջև երկընտրանք կա:

Դա հակառակն է. որակը բարելավելու մղումն այն է, ինչը ստիպում է ձեզ ավելի արագ գնալ:

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Օրինակ՝ վերաֆակտորինգը՝ կոդի կառուցվածքի փոփոխություն՝ առանց դրա վարքագիծը փոխելու, պրակտիկա է, որը հեշտացնում է կոդը հասկանալն ու փոխելը: Արդյունքում, դուք ավելի քիչ հավանական է, որ կներկայացնեք կոդի թերությունները, ինչը թույլ է տալիս նախ ավելի մեծ արժեք ներկայացնել՝ չշտկելով սխալները:

Փոքրիկ քայլերՄեծ փոփոխությունները ռիսկային են: XP-ն նվազեցնում է այդ ռիսկը՝ փոփոխություններ կատարելով փոքր քայլերով, յուրաքանչյուր մակարդակում:

Ծրագրավորողները կոդ են գրում փոքր քայլերով՝ օգտագործելով թեստային մշակում: Նրանք օրական մի քանի անգամ ինտեգրում են իրենց կոդը հիմնական ցանցին, ոչ թե ընդամենը մի քանի շաբաթը կամ նույնիսկ ամիսը մեկ: Նախագիծն ինքնին տեղի է ունենում ոչ թե երկարատև, այլ կարճ ցիկլերով:

Պատասխանատվությունն ընդունված էXP-ում պատասխանատվությունը պետք է ընդունվի, երբեք չհանձնարարվի:

Պատասխանատվությունը պետք է ուղեկցի այն իրավասությանը, որը որոշումներ կայացնի այն մասին, թե ինչի համար եք պատասխանատու: Ճիշտ է նաև հակառակը. Դուք չեք ցանկանում, որ մարդիկ որոշումներ կայացնեն, եթե նրանք ստիպված չլինեն ապրել դրանց հետևանքների հետ:

Նմանություններ և տարբերություններ ավանդական և ոչ արագաշարժ մեթոդների հետ

Ծայրահեղ ծրագրավորումը, լինելով արագաշարժ մեթոդոլոգիա, կարելի է ընդունել և սկսել այն ընդունել՝ առանց կոշտ պլանների հետևելու: Սա ավելի շուտ կրկնվող դիզայն է, քան մեծ նախնական նախագիծ:

XP-ն էականորեն տարբերվում է ավանդական մեթոդոլոգիաներից, այսինքն՝ կասկադից՝ խուսափելով երկարատև փուլերից:

  • Պլանավորման փուլի փոխարեն, XP-ում դուք պլանավորում եք յուրաքանչյուր զարգացման ցիկլի սկզբում, որը սովորաբար տևում է ընդամենը մեկ շաբաթ:
  • Դրվագները փորձարկելու փոխարեն, փորձարկեք ձեր հավելվածը որքան հնարավոր է շուտ, այսինքն՝ մինչ փաստացի կոդը ներդրվելը:
  • Գործառույթները երկարատև իրականացման փուլերում առանձին-առանձին տարածելու և այնուհետև ձեր ներդրումները հիմնական ցանցին միացնելու համար պայքարելու փոխարեն, դուք աշխատում եք փոքր մասերում և հնարավորինս հաճախ ինտեգրում դրանք:

Ինչպե՞ս է XP-ն տարբերվում այլ արագաշարժ մեթոդոլոգիաներից:

Էքստրեմալ ծրագրավորումն իր բնույթով շատ ընդհանրություններ ունի այլ արագաշարժ մեթոդոլոգիաների հետ, բայց նաև եզակի է դրանց մեջ:

Զարգացման այլ մեթոդոլոգիաների մեծ մասը շատ բան չի ասում, եթե որևէ բան կա, այն մասին, թե ինչպես կարելի է ավարտին հասցնել աշխատանքը: XP-ն, մյուս կողմից, շատ կարծիքի է, երբ խոսքը վերաբերում է դրան և մեծ ուշադրություն է դարձնում ծրագրային ապահովման ինժեներական պրակտիկայի վրա:

Ծայրահեղ ծրագրավորում ընդդեմ Scrum

Scrum-ը շրջանակ է, որն օգնում է թիմերին հարմարվողական եղանակով մշակել բարդ նախագծեր: Scrum-ը չի թելադրում, թե ինչպես են մշակողները կատարում իրենց աշխատանքը: XP-ն, ինչպես նշվեց, մեծ ուշադրություն է դարձնում լավ ծրագրավորման փորձին:

Scrum շրջանակ

մշակումը BlogInnovazione.en Պատկեր ցանցային լուծումներ

Բացի այդ, XP-ն ակնհայտորեն ծրագրավորման մասին է: Scrum-ը, մյուս կողմից, կարող է կիրառվել ցանկացած նախագծի վրա, որն օգտվում է կրկնվող մոտեցումից:

XP-ն ընդունում է իր բաղադրիչների փոփոխությունները: Թիմերը լիազորված են և նույնիսկ խրախուսվում են փոփոխել պրակտիկան՝ ելնելով իրենց հատուկ կարիքներից: Scrum ուղեցույցը, մյուս կողմից, հաստատակամ է, որ «Չնայած Scrum-ի միայն մասերը կարող են իրականացվել, արդյունքը Scrum չէ»:

Բացի այդ, Scrum-ը շրջանակ է, որը պետք է լրացվի մեթոդաբանություններով և պրակտիկաներով՝ աշխատանքն ավարտելու համար:

Սա նշանակում է, որ էքստրեմալ ծրագրավորման և Scrum-ում աշխատելը խիստ խորհուրդ է տրվում:

Դերեր և պարտականություններ

Ըստ Քենթ Բեքի՝ հասուն XP թիմը չպետք է կոշտ դերեր նշանակի, բայց գիտակցի, որ դերերը կարող են օգտակար լինել նորաստեղծ թիմերի համար, մինչև նրանք սկսեն դանդաղեցնել կամ դժվարացնել համագործակցությունը:

Դիտարկենք մի քանի հիմնական դերեր.

  • ClientԻդեալում, հաճախորդը պետք է լինի տեղում՝ պատասխանելու հարցերին, առաջնահերթություն տալու օգտատերերի պահանջներին կամ աջակցում է ընդունման փորձարկումներին: Երբ դա հնարավոր չէ, այս դերը կարող է զբաղեցնել հաճախորդի ներկայացուցիչը:
  • ԾրագրավորողներXP թիմում ծրագրավորողները գնահատում են առաջադրանքները կատարելու, ավտոմատ թեստեր գրելու և պատմություններ իրականացնելու համար պահանջվող ջանքերը:
  • ՄարզիչՊարտադիր չէ մարզիչ ունենալ, և առանց ունենալու հնարավոր է հասնել նպատակին։ Այնուամենայնիվ, ունենալով XP-ի փորձ ունեցող մեկին, որը կմարզի թիմը, կարող է երաշխավորել, որ թիմի անդամները հետևեն գործելակերպին, դրանք վերածեն սովորությունների և չվերադառնան հին ձևերին:
  • Բուքսիր- Հետագծողը հետևում է թիմի առաջընթացի չափանիշներին և խոսում է թիմի յուրաքանչյուր անդամի հետ՝ խնդիրները բացահայտելու և լուծումներ գտնելու համար: Հետագծողը հաշվարկում է չափումներ, որոնք ցույց են տալիս, թե որքան լավ է թիմը աշխատում, օրինակ՝ արագության և այրման գրաֆիկները, կամ թիմն օգտագործում է թվային scrum կամ kanban տախտակ, որն ավտոմատ կերպով հաշվարկում է դրանք:

Մեթոդներ և տեխնիկա

Սրանք XP-ում ընդունված պրակտիկաներն են: Դրանք բաժանված են երեք հիմնական խմբի՝ ծրագրային ապահովման ճարտարագիտություն, աշխատավայր և նախագծերի կառավարում:

Ծրագրային ապահովման ճարտարագիտություն

Զույգերի ծրագրավորումXP-ում դուք կոդ եք գրում զույգերով՝ նստած մեքենայի վրա: Դուք և ձեր զույգը զրուցում եք միմյանց հետ, երբ վերլուծում եք, իրականացնում և փորձարկում այն ​​գործառույթը, որի վրա աշխատում եք: Զույգ ծրագրավորումը հատկապես լավ է ավելի քիչ սխալներով կոդ արտադրելու համար՝ միաժամանակ լինելով գրավիչ, զվարճալի և հոգնեցուցիչ:

Տասը րոպեի սահմանափակումՊահանջվում է Թույլ է տալիս 10 րոպե կառուցել ամբողջ նախագիծը, ներառյալ բոլոր ավտոմատացված թեստերը, առավելագույնը տասը րոպեում: Այս սահմանը թեստավորումը պարզեցված և արդյունավետ պահելու համար է:

Թեստեր ծրագրավորումից առաջԻրականացնել գործառույթներ՝ օգտագործելով թեստային առաջին մոտեցումը, որը նաև կոչվում է թեստի վրա հիմնված զարգացում (TDD). TDD-ն բաղկացած է մշակումից՝ օգտագործելով պարզ կրկնվող ընթացակարգ.

  • թեստը ձախողվելուց հետո գրել կոդը;
  • այնուհետև գրեք արտադրության կոդը՝ թեստն անցնելու համար.
  • անհրաժեշտության դեպքում վերամշակեք ձեր արտադրության կոդը՝ այն ավելի մաքուր և հասկանալի դարձնելու համար:

TDD-ն բերում է մի քանի առավելություններ.

Նախ, հետադարձ կապ. Եթե ​​դժվար է թեստ գրել, ապա դիզայնը, որը փնտրում եք կամ ժառանգել եք, հավանաբար չափազանց բարդ է, և դուք պետք է այն պարզեցնեք:

Երկրորդ, TDD-ն թույլ է տալիս ծրագրավորողներին վստահել իրենց գրած ծածկագրին և ստեղծում է գեղեցիկ շրջադարձային ռիթմ, որտեղ հաջորդ քայլը միշտ պարզ է:

Վերջին, բայց ոչ պակաս կարևորը, TDD-ի օգտագործումն ի սկզբանե ապահովում է ծածկագրի 100% ծածկույթ: Փորձարկման փաթեթն այնուհետև իսկապես դառնում է անվտանգության ցանց ապագա փոփոխությունների համար՝ խրախուսելով ծածկագրի վերամշակումը և որակի առաքինի շրջանակ ստեղծելը:

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

Շարունակական ինտեգրում. Որքան հնարավոր է շուտ և որքան հնարավոր է հաճախ ինտեգրվելը կտրուկ նվազեցնում է ինտեգրման արժեքը, քանի որ այն նվազեցնում է միաձուլումների և տրամաբանական հակամարտությունների առաջացման հավանականությունը: Այն նաև բացահայտում է բնապահպանական և կախվածության խնդիրները:

Ընդհանուր ծածկագիր (կոլեկտիվ սեփականություն)XP-ն խթանում է ընդհանուր ծածկագիրը կամ կոլեկտիվ սեփականությունը. յուրաքանչյուր մշակող պատասխանատու է բոլոր կոդի համար: Այն խրախուսում է տեղեկատվության փոխանակումը, նվազեցնում է թիմային ավտոբուսի գործոնը և բարձրացնում յուրաքանչյուր մոդուլի ընդհանուր որակը, եթե հաշվի առնենք բազմազանության սկզբունքը:

Single CodeBaseՄեկ կոդերի բազան հայտնի է նաև որպես «բեռնախցիկի վրա հիմնված զարգացում»: Դա նշանակում է, որ ճշմարտության միայն մեկ աղբյուր կա. Այսպիսով, երկար ժամանակ մեկուսացված զարգանալու փոխարեն, ձեր ներդրումները միաձուլեք մեկ հոսքի մեջ վաղ և հաճախ: Գործառույթների դրոշները օգնում են սահմանափակել ձեր գործառույթների օգտագործումը մինչև դրանք ավարտվեն:

Ամենօրյա բաշխումԱրտադրության մեջ օրական առնվազն մեկ անգամ տեղակայումը շարունակական ինտեգրման տրամաբանական հետևանք է. Փաստորեն, այսօր շատ թիմեր էլ ավելի հեռուն են գնում և կիրառում շարունակական իրականացում: Այսինքն, երբ ինչ-որ մեկը միանում է հիմնական ցանցին, հավելվածը տեղակայվում է արտադրության մեջ:

Կոդ և թեստերԱյս պրակտիկան նշանակում է, որ սկզբնական կոդը, ներառյալ թեստերը, ծրագրային նախագծի միակ մշտական ​​արտեֆակտն է: Այլ տեսակի արտեֆակտների, այդ թվում՝ փաստաթղթերի արտադրության մեջ ներգրավվելը հաճախ վատնում է, քանի որ այն իրական արժեք չի ստեղծում հաճախորդի համար:

Եթե ​​Ձեզ անհրաժեշտ են այլ արտեֆակտներ կամ փաստաթղթեր, ջանքեր գործադրեք դրանք ստեղծելու արտադրության կոդից և թեստերից:

Արմատային պատճառի վերլուծությունԱմեն անգամ, երբ թերությունը գնում է արտադրության, պարզապես մի շտկեք թերությունը: Համոզվեք, որ սկզբում պարզել եք, թե ինչն է դա առաջացրել, ինչու դուք և ձեր թիմակիցները չկարողացաք կանխել սահելը: Այնուհետև քայլեր ձեռնարկեք, որպեսզի համոզվեք, որ դա այլևս չի կրկնվի:

Աշխատանքային միջավայր

Նստեք միասինXP-ում թիմերը նախընտրում են միասին աշխատել բաց տարածքում: Այս պրակտիկան խթանում է հաղորդակցությունը և թիմին պատկանելու զգացումը:

Ամբողջ թիմըՅուրաքանչյուր ոք, ով անհրաժեշտ է նախագծի հաջողության համար, XP թիմի մասն է: Սա խիստ համատեքստային է` տարբեր յուրաքանչյուր թիմի համար, և դինամիկ, այն կարող է փոխվել թիմի ներսում:

Տեղեկատվական աշխատանքային տարածքներՏեղեկատվական աշխատանքային տարածքը օգտագործում է թիմի ֆիզիկական տարածքը՝ ցուցադրելու տեղեկատվություն, որը թույլ է տալիս յուրաքանչյուրին մի հայացքով իմանալ ծրագրի առաջընթացը: Ինչպես է դա արվում, կարող է տարբեր լինել՝ սկսած ֆիզիկական նշումներից և գրաֆիկներից մինչև սքրինշոթներ, որոնք ցույց են տալիս Kanban-ի տախտակները և ծրագրի կառավարման ծրագրաշարի վահանակները:

Լիցքավորված աշխատանքXP-ում դուք աշխատում եք միայն այնքան ժամանակ, քանի դեռ կարող եք էներգետիկ աշխատանք կատարել: Աշխատանքային ժամերը պետք է սահմանափակվեն շաբաթական 40-ով, առավելագույնը:

Ծրագրի կառավարում

analisi- Գրեք օգտվողի պահանջները այնպիսի ձևաչափով, որը հայտնի է որպես օգտագործողի վերլուծություն: Օգտագործողի վերլուծությունը ունի կարճ, նկարագրական անվանում և նաև կարճ նկարագրություն, թե ինչ պետք է իրականացվի:

ԱնգործությունՑիկլ պլանավորելիս ավելացրեք փոքր առաջադրանքներ, որոնք թիմը կարող է հրաժարվել, եթե անհրաժեշտություն առաջանա: Ավելի շատ պատմություններ միշտ կարող են ավելացվել, եթե թիմը չափազանց շատ բան մատուցի:

Ցիկլեր (ամսական և շաբաթական)XP-ի զարգացումը տեղի է ունենում երկու հիմնական ցիկլով՝ շաբաթական և ամսական:

Հանդիպումներ, ցիկլեր, նախատեսված թողարկումներXP-ի մշակումն աշխատում է երկու հիմնական ցիկլով՝ շաբաթական և եռամսյակային: Սկզբում Քենթ Բեքը խորհուրդ տվեց երկշաբաթյա ցիկլ, բայց փոխեց այն իր գրքի երկրորդ հրատարակության մեջ:

Շաբաթական ցիկլՇաբաթական ցիկլը XP նախագծի «զարկերակն» է: Ցիկլը սկսվում է հանդիպումից, որի ժամանակ հաճախորդը ընտրում է, թե որ պատմություններն է ցանկանում ստեղծել շաբաթվա ընթացքում: Բացի այդ, թիմը վերանայում է իրենց աշխատանքը, ներառյալ անցյալ շաբաթվա առաջընթացը, և մտածում է իրենց գործընթացը բարելավելու ուղիների մասին:

Ամսական ցիկլԱմեն ամիս թիմն արտացոլում և բացահայտում է բարելավման հնարավորությունները իրենց գործընթացում: Հաճախորդը ընտրում է մեկ կամ մի քանի թեմաներ այդ ամսվա համար՝ այս թեմաների վերլուծությունների հետ մեկտեղ:

Ինչպե՞ս սկսել աշխատել էքստրեմալ ծրագրավորման հետ:
Տեխնիկական հմտությունները և XP-ի սովորությունները դժվար է սովորել: Որոշ պրակտիկա կարող է օտար թվալ ծրագրավորողների համար, որոնք սովոր չեն դրանց:

Ercole Palmeri

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Վերջին հոդվածները

Veeam-ն ունի ամենաընդգրկուն աջակցություն փրկագինին՝ պաշտպանությունից մինչև պատասխան և վերականգնում

Veeam-ի Coveware-ը կշարունակի տրամադրել կիբեր շորթման միջադեպերի արձագանքման ծառայություններ: Coveware-ը կառաջարկի դատաբժշկական և վերականգնման հնարավորություններ…

23 Ապրիլ 2024

Կանաչ և թվային հեղափոխություն. Ինչպես է կանխատեսելի սպասարկումը փոխակերպում նավթի և գազի արդյունաբերությունը

Կանխատեսելի սպասարկումը հեղափոխություն է անում նավթի և գազի ոլորտում՝ կայանի կառավարման նորարարական և ակտիվ մոտեցմամբ:…

22 Ապրիլ 2024

Մեծ Բրիտանիայի հակամենաշնորհային կարգավորիչը բարձրացնում է BigTech-ի ահազանգը GenAI-ի վերաբերյալ

Մեծ Բրիտանիայի CMA-ն նախազգուշացում է տարածել արհեստական ​​ինտելեկտի շուկայում Big Tech-ի վարքագծի վերաբերյալ: Այնտեղ…

18 Ապրիլ 2024

Casa Green. էներգետիկ հեղափոխություն կայուն ապագայի համար Իտալիայում

Շենքերի էներգաարդյունավետության բարձրացման նպատակով Եվրոպական միության կողմից ձևակերպված «Քեյս Գրին» հրամանագիրը իր օրենսդրական գործընթացն ավարտել է…

18 Ապրիլ 2024

Կարդացեք նորարարությունը ձեր լեզվով

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Հետեւեք մեզ