Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Որոշ ժամանակ առաջ իմ և լավ ընկերոջս միջև տեղի ունեցավ զրույց, որում հնչում էին հետևյալ արտահայտությունները.

— Ծրագրավորողների թիվը անընդհատ կաճի, քանի որ կոդի քանակն աճում է, և ավելի ու ավելի շատ ծրագրավորողներ անընդհատ պահանջվում են աջակցել դրան:
— Բայց կոդը հին է, դրա մի մասն այլևս չի աջակցվում: Նույնիսկ հնարավոր է, որ ինչ-որ հավասարակշռություն լինի։

Հիշելով դրանք մի քանի օր անց, ես մտածեցի, թե արդյոք կոդի պահպանումը, որը ժամանակի ընթացքում ավելի ու ավելի շատ ռեսուրսներ է պահանջում, կարող է ի վերջո կաթվածահար անել նոր ֆունկցիոնալության զարգացումը, թե՞ դա կպահանջի ծրագրավորողների թվի անսահմանափակ ավելացում: Մաթեմատիկական վերլուծությունը և դիֆերենցիալ հավասարումները օգնեցին որակապես գնահատել աջակցության չափի կախվածությունը զարգացումից և գտնել հարցերի պատասխանները:

Հարց առաջին. Կարո՞ղ է աջակցել զարգացման բոլոր ռեսուրսները «ուտել»:

Դիտարկենք ծրագրավորողների թիմը, որի մասնակիցների թիվը մշտական ​​է: Նրանց աշխատանքային ժամանակի մասնաբաժինը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: (Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:) ծախսվում է նոր կոդի մշակման վրա, իսկ մնացած ժամանակը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: գնում է աջակցելու. Մոդելի ենթադրությունների շրջանակում մենք ենթադրում ենք, որ գործունեության առաջին տեսակն ուղղված է կոդի ծավալի ավելացմանը, իսկ երկրորդը՝ այն փոխելուն (սխալների ուղղումը) և էական ազդեցություն չի ունենում կոդի ծավալի վրա։

Նշենք Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: մինչև այդ ժամանակաշրջանը գրված կոդի ամբողջ ծավալը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:. Ենթադրենք, որ կոդը գրելու արագությունը համաչափ է Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, ստանում ենք.

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Բնական է ենթադրել, որ օրենսգրքի պահպանման համար աշխատանքային ծախսերը համաչափ են դրա ծավալին.

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

կամ

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Որտեղ

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Մենք ստանում ենք դիֆերենցիալ հավասարում, որը կարող է հեշտությամբ ինտեգրվել: Եթե ​​սկզբնական պահին կոդի գումարը զրո է, ապա

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Ի Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: գործառույթը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:Իսկ Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:. Իսկ դա նշանակում է ժամանակի ընթացքում նոր ֆունկցիոնալության զարգացման աստիճանական կրճատում մինչև զրոյի և բոլոր ռեսուրսների փոխանցումը աջակցությանը:

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

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

а Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: Դիֆերենցիալ հավասարման լուծում է հետամնաց արգումենտով [1]:

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Նման հավասարման լուծումը եզակիորեն որոշվում է՝ նշելով արժեքները Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: «Ժամանակի սկզբից առաջ» Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:. Քանի որ օրենսգիրքը դեռևս գրված չէր ժամանակի սկզբնական պահից, մեր դեպքում Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: ի Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:.

Դիտարկենք մի քանի օրինակ։ Մենք ժամանակը չափելու ենք տարիներով, իսկ կոդի քանակը՝ հազարավոր տողերով: Այնուհետև համար Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: Տասնյակների կարգի արժեքները ընդունելի են, մենք կվերցնենք 50 և 100: Այսինքն, մեկ տարի հետո մշակողների թիմը կգրի համապատասխանաբար հիսուն և հարյուր հազար տող կոդ: Համար Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: ընդունելի արժեքները կարող են լինել. Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:. Սա նշանակում է, որ մշակողների թիմը կարող է աջակցել իր գրած կոդի քանակին մեկ տարվա ընթացքում՝ լինի դա քառորդ, կես կամ լրիվ դրույքով: Որպես կոդի միջին ժամկետ՝ մենք սահմանելու ենք հետևյալ արժեքները՝ 1, 2 և 4 տարի։ Հավասարումը լուծելով թվային եղանակով՝ ստանում ենք ֆունկցիայի վարքագծի օրինակներ Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: որոշ պարամետրերի համակցությունների համար Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:.
Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:
Գործառույթի վարքագիծը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: քանի որ ծածկագիրը ծերանում է, այն փոխվել է: Ֆունկցիան այլևս միապաղաղ չէ, բայց տատանումները ժամանակի ընթացքում «հանգստանում» են, և միտում կա. Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: որոշակի հաստատուն արժեքի: Գրաֆիկները ցույց են տալիս. այնքան ավելին Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: и Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, այսինքն՝ որքան դանդաղ է ծերանում ծածկագիրը, որքան արագ է նոր կոդի մշակումը և որքան ցածր է կոդի որակը, այնքան քիչ ռեսուրսներ կմնան նոր ֆունկցիոնալության մշակման համար։ Ցանկություն կար գոնե մեկ օրինակ բերել, որում Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: «կծկվել» զրոյի մոտ: Բայց դա պահանջում էր զարգացման շատ վատ որակի ցուցանիշների և երկար ժամանակ չծերացող կոդի ընտրություն։ Նույնիսկ ներքևի ձախ գրաֆիկում զգալի քանակությամբ ռեսուրսներ են մնում նոր ֆունկցիոնալության համար: Հետևաբար, առաջին հարցի ճիշտ պատասխանն ավելի շուտ սա է. տեսականորեն՝ այո, հնարավոր է. գործնականում - հազիվ թե:

Հարցեր, որոնց հնարավոր չէ պատասխանել.

  1. Ճի՞շտ է դա Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: ձգտում է որոշակի սահմանի ժամը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: բոլորի համար Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:? Եթե ​​ոչ բոլորի համար, ապա որո՞նք:
  2. Եթե ​​սահման կա, ինչի՞ց է կախված դրա արժեքը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:?

Հարց երկրորդ. Կոդերի պահպանումը կարո՞ղ է առաջացնել ծրագրավորողների թվի անսահմանափակ աճ:

Նշենք Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: նոր կոդի մշակման մեջ ներգրավված ծրագրավորողների թիվը։ Ինչպես վերևում, Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: — մինչև ժամանակի որոշակի կետ գրված կոդի քանակը Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:. Հետո

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Կոդերի աջակցությունը զբաղված պահեք Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար: ծրագրավորողներ. Հաշվի առնելով ծերացման կոդը՝

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Որտեղ

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

Եթե Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:, Հետո

Քանի՞ ծրագրավորող է անհրաժեշտ նախկինում գրված կոդը պահպանելու համար:

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

Ամփոփում

Դիտարկված մոդելները «փափուկ» մաթեմատիկական մոդելներ են [2]: Նրանք շատ պարզ են. Այնուամենայնիվ, մոդելավորման արդյունքների կախվածությունը պարամետրերի արժեքներից համապատասխանում է իրական համակարգերի համար ակնկալվողին, սա խոսում է մոդելների համարժեքության և բարձրորակ գնահատումներ ստանալու համար բավարար ճշգրտության օգտին:

Հիշատակում

1. Էլսգոլց Լ.Է., Նորկին Ս.Բ. Շեղվող փաստարկով դիֆերենցիալ հավասարումների տեսության ներածություն. Մոսկվա. «Գիտություն» հրատարակչություն. 1971 թ.
2. Առնոլդ Վ.Ի. «Դժվար» և «փափուկ» մաթեմատիկական մոդելներ. Մոսկվա. Հրատարակչություն MCNMO. 2004 թ.

Source: www.habr.com

Добавить комментарий