Kontentke ótiw

Texnikalıq qarız

Wikipedia — erkin enciklopediya

Programmalıq támiynattı islep shıǵıw hám basqa da informaciyalıq texnologiyalar tarawlarında, texnikalıq qarız (sonday-aq dizayn qarızı[1] yamasa kod qarızı dep te ataladı) – bul tiykarlıraq sheshim ornına tezirek sheshimdi tańlawdıń nátiyjesinde keleshekte qosımsha jumıstıń payda bolıwınıń boljanǵan bahası.[2] Texnikalıq qarız qısqa múddette rawajlanıwdı tezlestiriwi múmkin bolsa da, sheshilmey qalǵan jaǵdayda keleshektegi shıǵınlar hám quramalılıqtı arttırıwı múmkin.[3]

Aqshalay qarızǵa uqsas, texnikalıq qarız waqıt ótiwi menen «procent» jıynap, keleshektegi ózgerislerdi qıyınlastırıp hám qımbatlastırıwı múmkin. Bul qarızdı durıs basqarıw programmalıq támiynattıń sapasın hám uzaq múddetli turaqlılıǵın saqlaw ushın áhmiyetli. Ayırım jaǵdaylarda, texnikalıq qarızdı óz moynına alıw koncepciyanıń dálili yamasa tez shıǵarılım sıyaqlı tez aradaǵı maqsetlerge erisiw ushın strategiyalıq tańlaw bolıwı múmkin. Biraq, qarızdı áhmiyetli dep esaplaw hám onı sheshiwge itibar bermew texnikalıq xızmet kórsetiw múmkinshiliginiń tómenlewine, islep shıǵıw shıǵınlarınıń artıwına hám óndiris sistemalarına qáwip tuwdırıwına alıp keliwi múmkin.[4][5]

Texnikalıq qarız keleshektegi beyimlesiw hám texnikalıq xızmet kórsetiw múmkinshiligi esabınan qısqa múddetli optimallastırıwǵa alıp keliwi múmkin bolǵan hár qıylı dizayn hám ámelge asırıw sheshimlerin óz ishine aladı. Ol «keleshektegi ózgerislerdi qımbatlastıratuǵın yamasa múmkin emes etetuǵın dizayn yamasa ámelge asırıw konstrukciyalarınıń jıynaǵı» dep anıqlanǵan, tiykarınan texnikalıq xızmet kórsetiw múmkinshiligi hám rawajlanıw uqıplılıǵı sıyaqlı ishki sistema sapalarına tásir etedi.[6]

Koncepciyanıń kelip shıǵıwı

«Texnikalıq qarız» koncepciyasın birinshi ret 1992-jılı Uord Kanningem usınǵan.[7] «Metaphors We Live By» kitabın oqıǵannan soń, Uord óziniń basshısına olar islep atırǵan finanslıq ónimdi qayta islew zárúrligin túsindiriw ushın bul «qarız metaforasın» oylap tapqan.[8][9] Ol bılay dep jazǵan:

«Birinshi ret kodtı shıǵarıw qarızǵa kiriwge uqsaydı. Az ǵana qarız, eger ol tez arada qayta jazıw arqalı qaytarılsa, rawajlanıwdı tezlestiredi... Qáwip qarız qaytarılmaǵan jaǵdayda payda boladı. Tolıq durıs emes kodqa jumsalǵan hár bir minut sol qarızdıń procenti bolıp esaplanadı. Pútkil injenerlik shólkemler birlestirilmegen ámelge asırıwdıń, obektke baǵdarlanǵan yamasa basqa túrdegi, qarız júgi astında tolıq toqtap qalıwı múmkin»[10] – Uord Kanningem.

Soǵan uqsas koncepciyalar burın da bolǵan. 1980-jılı Menni Leman programmalıq támiynattıń tómenlew tábiyatın súwretlew ushın «arxitekturalıq metaforanı» paydalanıp, uqsas nızamdı járiyalaǵan. Mennidiń Nızamı bılay deydi:

«Rawajlanıp atırǵan programma úziliksiz ózgertilgen sayın, onıń quramalılıǵı, tómenlegen strukturanı sáwlelendirip, onı saqlaw yamasa kemeytiw boyınsha jumıs islenbese artıp baradı»[11] – Meir Menni Leman.

Programmalıq támiynat arxitekturasınıń puqaralıq injeneriya menen 1960-jıllardan baslap salıstırılıp kelingenin túsiniw áhmiyetli.[12]

Sebepleri

Texnikalıq qarızdıń jiyi ushırasatuǵın sebepleri:
  • Biznestiń tezirek shıǵarıwǵa basım kórsetiwi
  • Sońǵı minutta specifikaciya ózgerislerin yamasa jetkiliksiz hújjetlestirilgen yamasa testlengen ózgerislerdi ámelge asırıw,
  • Bilim yamasa kónlikpelerdegi kemshilikler, bular processti túsiniwdiń jetispewshiligi, jetkiliksiz bilim, hálsiz texnologiyalıq basshılıq yamasa jetkiliksiz ustazlıq yamasa bilim almasıw ámeliyatı túrinde kóriniwi múmkin.[13]
  • Islep shıǵıw processindegi máseleler, mısalı:
    • optimallıq emes sheshimler
    • jetkiliksiz talaplar (process nátiyjesizliginen)
    • parallel tarmaqlardaǵı qarama-qarsı talaplar
    • keyinge qaldırılǵan qayta islew, yamasa
    • keyinge qaldırılǵan joqarıdan tómenge qaratılǵan úlesler.[14]
  • Eń jaqsı ámeliyatlarǵa sáykes kelmewshilik, mısalı:
    • jetkiliksiz programmalıq támiynat hújjetleri
    • hálsiz birge islesiw ámeliyatları,
    • juwapkershiliktiń joqlıǵı,
    • sırttan islengen programmalıq támiynattı qayta jazıw
    • kod sapasına jetkiliksiz dıqqat
    • bir-birine qattı baylanısqan komponentler
    • test toplamınıń joqlıǵı, yamasa
    • standartlarǵa muwapıqlastırıwdıń ámelge aspawı (sonıń ishinde industriya standart freymvorkların esapqa almaw).[15]

Aqıbetleri

Dawamlı texnikalıq xızmet kórsetiw shıǵınların arttırıw arqalı, texnikalıq qarız shıǵarıw kestelerin boljawdı qıyınlastıradı. «Procent tólemleri» tamamlanbaǵan jumıs hám joqarı qaratılǵan joybardaǵı ózgerisler sebepli artıp baratuǵın integraciya shıǵınlarınan kelip shıǵadı. Quramalılıqtıń hám pitpegen jumıstıń kóleminiń artıwı miynetti anıq bahalawdı barǵan sayın qıyınlastıradı, bul keshigiwlerge, múddettiń ótip ketiwine hám injenerlik komandalarǵa túsetuǵın stresske alıp keledi, bul bolsa máseleni kúsheytip, kadrlardıń almasıwınıń joqarılawına alıp keliwi múmkin.[16] Texnikalıq qarızdı óndiriske alıp barıw xızmet kórsetiw dárejesi haqqındaǵı kelisimlerdiń buzılıwı sebepli sistemanıń islemey qalıwı, finanslıq joǵaltıwlar hám potencial huqıqıy máseleler qáwpin arttıradı. Keleshektegi qayta islew qáwipli hám qımbat bolıp baradı, óndiris kodına ózgerisler kirgiziw úzilislerdiń payda bolıw itimalın arttıradı.

Texnikalıq qarızdı sheshpew ónimdarlıqtıń tómenlewine hám funkciyalardıń jetkerip beriliwiniń ásteleniwine alıp keliwi múmkin. Texnikalıq qarızdıń jıynaqlı tásirleri úlken jaqsılanıwlardı qıyınlastıratuǵın barǵan sayın názik sistemalarǵa alıp keledi. Áste-aqırın ózgerislerdiń ústemligi, áhmiyetli qayta islewlerdiń keshigiwi menen birge, bir qálipte emes dizaynǵa iye stresske túsken sistemalarǵa alıp keliwi múmkin, bul paydalanıwshılardıń tómenlegen ónimdarlıq hám sheklengen funkcionallıqtan azap shegiwine alıp keledi, al baǵdarlamashılar sapanı saqlap qalıw ushın gúresiwge májbúr boladı.[17]

Jobalastırıw

Kenni Rubin texnikalıq qarızdı basqarıwǵa járdem beriw ushın tómendegi kategoriyalardı paydalanadı:[18]

  • Tosınnan ushırasqan texnikalıq qarız — rawajlandırıw komandası ónim ústinde jumıs alıp barıwdıń ádettegi barısında ashılǵanǵa shekem onıń bar ekenin bilmegen qarız. Mısalı, komanda ónimge jańa funkciya qosıp atırıp, kóp jıllar aldın álleqashan ketip qalǵan birew tárepinen kodqa waqıtsha sheshim kirgizilgenin ańlap qaladı.
  • Belgili texnikalıq qarız — islep shıǵıw komandasına belgili bolǵan hám kóp usıllardıń biri járdeminde kórinetuǵın etip islengen qarız.
  • Maqsetli texnikalıq qarız — belgili bolǵan hám islep shıǵıw komandası tárepinen xızmet kórsetiw ushın maqsetli qarız.

Sheklewler

Texnikalıq qarız koncepciyası tez sheshim házirgi shıǵınlardı keleshektegi joqarı shıǵınlar esabınan únemleydi dep boljaydı. Kóbinese durıs bolsa da, bul tiykar hár waqıtta da durıs bola bermeytuǵın boljawlarǵa súyenedi, mısalı, ónimniń keyinge qaldırılǵan jumıs áhmiyetli bolǵanday uzaq jasawı kerekligi,[19] yamasa keleshektegi waqıyalar yamasa rawajlanıwlar tez hám «uzaq múddetli» dizaynlardı eski etip qoyıwı múmkinligi, yamasa jańa qurallar hám usıllar keleshektegi qayta islew shıǵınların kemeytip, házirgi qarız boljawlarına qarsı shıǵıwı múmkinligi.[20]

Keleshektiń belgisizligin esapqa alǵanda, búgin texnikalıq qarız bolıp kóringen nárse aqırında únemlewdiń mısalı bolıp shıǵıwı múmkin. Bunnan tısqarı, texnikalıq qarızdıń dástúrli esaplawları tek islep shıǵıw waqtına dıqqat awdarıwǵa beyim bolıp, qarız kodtıń oqıwǵa jaramlılıǵına tásir etkende oqıtıw hám jumısqa qabıllaw,[21] qarızdı basqarıw yamasa sheshiw ushın kerek bolǵan licenziyalaw, qurallar hám infrastruktura,[22] hám keshikken funkciyalar yamasa joǵaltılǵan bazar múmkinshilikleri menen baylanıslı qoldan shıǵarılǵan payda sıyaqlı keńirek shıǵınlardı esapqa almaydı.

Bul faktorlardı esapqa almastan, texnikalıq qarızdı bahalaw quramalı tańlawlardı ápiwayılastırıp jiberiw qáwpin tuwdırıp, optimallıq emes sheshimlerge alıp keledi.

Derekler

  1. Refactoring for Software Design Smells. 
  2. «Definition of the term "Technical Debt" (plus, some background information and an "explanation")». Techopedia. Qaraldı: 11-avgust 2016-jıl.
  3. Managing Technical Debt. 
  4. Jeffries. «Technical Debt – Bad metaphor or worst metaphor?». 11-noyabr 2015-jılda túp nusqadan arxivlendi. Qaraldı: 10-noyabr 2015-jıl.
  5. Knesek. «Averting a 'Technical Debt' Crisis». Qaraldı: 7-aprel 2016-jıl.
  6. Managing technical debt in software engineering (Dagstuhl seminar 16162). https://drops.dagstuhl.de/opus/volltexte/2016/6693/pdf/dagrep_v006_i004_p110_s16162.pdf#page=3. 
  7. «Technical Debt» (en-US). Techopedia (13-iyun 2024-jıl). Qaraldı: 6-fevral 2025-jıl.
  8. Debt Metaphor.
  9. «Ward Explains Debt Metaphor». wiki.c2.com. — „The explanation I gave to my boss, and this was financial software, was a financial analogy I called "the debt metaphor". And that said that if we failed to make our program align with what we then understood to be the proper way to think about our financial objects, then we were gonna continually stumble over that disagreement and that would slow us down which was like paying interest on a loan.“. Qaraldı: 6-fevral 2025-jıl.
  10. Ward Cunningham. «The WyCash Portfolio Management System» (26-mart 1992-jıl). Qaraldı: 26-sentyabr 2008-jıl.
  11. Lehman, MM (1996). "Laws of Software Evolution Revisited". EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology: 108–124. ISBN 9783540617716. http://dl.acm.org/citation.cfm?id=681473. Retrieved 19 November 2014. 
  12. NATO SCIENCE COMMITTEE. «SOFTWARE ENGINEERING». School of Computing at the University of Newcastle (yanvar 1969). — „»… software designers are in a similar position to architects and civil engineers, particularly those concerned with the design of large heterogeneous constructions, such as towns and industrial plants. It therefore seems natural that we should turn to these subjects for ideas about how to attack the design problem.“. Qaraldı: 7-fevral 2025-jıl.
  13. Managing Software Debt: Building for Inevitable Change (Adobe Reader). 
  14. Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. 
  15. Refactoring for Software Design Smells: Managing Technical Debt. 
  16. Ali, Junade. Mastering PHP Design Patterns | PACKT Books. 
  17. Kerievsky, Joshua. Refactoring to Patterns. 
  18. Rubin, Kenneth (2013), Essential Scrum. A Practical Guide to the Most Popular Agile Process (Англичанша), 155-bet, ISBN 978-0-13-704329-3 {{citation}}: Unknown parameter |publisher= ignored (járdem)
  19. Fowler. «Technical Debt». martinfowler.com.
  20. Fowler. «Technical Debt Quadrant». martinfowler.com.
  21. «Software Maintenance Costs: How to Estimate and Optimize». ScienceSoft.
  22. «Estimating Total Cost of Ownership (TCO)». Galorath (11-fevral 2022-jıl).