Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Kernighan dėsnis

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Kernighan dėsnis arba Kernigano dėsnis - tai toksai dėsnis, kurį kadaise įvardino Brian Kernighan, vienas iš C kalbos ir UNIX sistemos kūrėjų.

Kernighan dėsnio esmė - kad kodo debuginimas užima dvigubai daugiau laiko, negu kodo parašymas. T.y., kitais žodžiais, vietoje to, kad sudebuginti kažkokį tai kodą, jį parašyti tvarkingai ir be bugų iš naujo užtruks du kartus trumpiau.

Brian Kernighan šitą dėsnį rado empiriškai, tačiau kai paskelbė, didelių prieštaravimų programuotojų ir realią patirtį turinčių projektų vadovų tarpe nesusilaukė, nes daugelis senų prityrusių programuotojų ir patys buvo pastebėję, kad taip yra.

Kaip rodo vėlesnių laikų empiriniai tyrimai, daryti su programuotojais, Kernighan įvardintas dviejų kartų skirtumas yra stiprus nedavertinimas - praktikoje labiau tikėtina, kad debuginimas užims 3-5 ar netgi dar daugiau kartų ilgiau laiko, negu naujas kodo parašymas.

Netiesiogiai Kernigano dėsnis tapo idėjiniu UNIX sistemų pagrindu: visos sistemos dalys turi būti rašomos kaip minimalūs, kuo savarankiškiau veikiančios programos ar moduliai, kur kiekvienas būtų tiek paprastas, kad jį būtų lengvai galima išdebuginti ar pakeisti kitu moduliu. Dėl šio principo pažeidimų vėlesniais laikais kilo didžiulis pasipriešinimas ir skandalai, kai daugelis Linux distribucijų buvo pervestos į valdymą per Systemd, kuris šiuos principus pažeidžia iš pašaknų.

Naujesniais vertinimais, dėl Kernigano dėsnio visiškai neveikia Vibe coding metodai, nes nors kodas generuojamas greitai, jo parašyti tvarkingai ir gerai neįmanoma, todėl lieka tik debuginti, o debuginimas užima tiek daug resursų, kad galų gale efektyvumas gaunasi žemesnis, nei programuojant tradiciniais būdais.