
Kiekvienas save ir kolegas gerbiantis programuotojas žino, kad kodą reikia komentuoti. Visų pirma, tam, kad jį galėtų suprasti bet koks kitas prisėdęs programuotojas, o dar svarbiau tai, kad po pusės metų savo parašytą kodą galėtum suprasti ir pats. Nes dažnai būna taip, kad atsiverti prieš metus parašytą kodą ir „Emmm… čia aš rašiau? O ką šitas reiškia, o kodėl aš taip parašiau?…“ Bet ne viskas taip gražu su tais komentarais, papasakosiu apie tris komentarų „mitus“, su kuriais susidūriau per gyvenimą.
1. Parašyti komentarą nieko nekainuoja
Daug kas sako kažką panašaus į „Tai negi tau sunku pridėti porą eilučių paaiškinamojo teksto“. Iš esmės, tai tiesa, bet ne šimtu procentu. Juk kad parašytum komentarą, reikia atsitraukti nuo programavimo darbų, o jei projektas yra labai degantis ir būtina jį užbaigti šiandien-ryt-poryt, tai jau ne komentarai galvoje, tada kiekviena minutė svarbi. Vat tokiais momentais ir atsiranda komentarų rašymo kaštai – eikvojamas brangus laikas. Be abejo, viskas priklauso nuo projekto: jei dirba didesnė komanda ir yra tikimybė, kad į jūsų kodą dažnai kas nors žvilgtels, tada gal ir verta sugaišti papildomų minučių net ir degant darbams.
2. Komentarai padaro kodą lengviau suprantamą ir lengviau skaitomą
Tai yra bene labiausiai paplitęs mitas. Nors ir jame yra tiesos. Kai tu žiūri į programos kodą su komentaru ir be komentarų, tai be abejo pirmu atveju galima suprasti daugiau. Tačiau yra ir kita medalio pusė. Pats KODAS turi būti suprantamas ir skaitomas: kintamųjų ir funkcijų vardai, atitraukimai nuo krašto, kodo rašymo stilius ir t.t. Iš viso to ir susideda bendras kodo suprantamumas. Kitais žodžiais, jei pats kodas parašytas tvarkingai – jam dažniausiai nereikia papildomų tekstinių komentarų. O jei programuotojas priprato programuoti stiliumi „ai, bile veiktų ir gerai“, tai tada jau kartais ir tekstiniai komentarai mažai ką padės, vis tiek kiti programuotojai į jo kodą žiūrės su žodžiais WTF.
3. Reikia komentuoti kiekvieną funkciją, metodą, klasę
Čia mitas, kažkiek išplaukiantis iš praeito punkto. Bendru atveju – taip, reikėtų prie kiekvienos funkcijos parašyti, kam ji skirta, ką atlieka, kokius parametrus priima ir ką gražina. Tačiau, mano galva, toks principas galioja tik sudėtingesniems metodams, kurių neįmanoma intuityviai suprasti iš parašyto kodo. Nes dažnai kode tekdavo pamatyti kažką panašaus:
// Funkcija grąžina dviejų skaičių sumą
function Sudeti($x, $y) {
return $x + $y;
}
Na čia, be abejo, supaprastinau variantą, bet esmė – kad neverta eikvoti laiko komentuojant ir taip aiškius dalykus.
Tai vat tiek pamąstymų trumpai apie komentarus. Gali susidaryti įspūdis, kad aš agituoju iš viso nekomentuoti savo kodo, tačiau priešingai – komentarai yra labai naudingi. Tačiau kaip sakoma, viskam turi būti savo ribos, ir gerbiu tuos programuotojus, kurie sugeba rasti tą ploną liniją tarp nekomentavimo ir per didelio komentarų skaičiaus.






March 10, 2010 6:53 pm
Jeigu parašyti kodą buvo sunku, tai sunku turi būti ir skaityti, todėl komentarai nereikalingi
March 12, 2010 3:26 pm
Geras įrašas, aš tai galvoju, jei darai object-oriented programas, tai tada tikrai pats kodas, objektų ir funkcijų pavadinimai turi pasakyti kas čia vyksta. Ir turėtų būti taip, kad komentuoti reiktų tik tas pačias paprasčiausias funkcijas, kur „sudeda du skaičius“.
Dar gi geras principas, kurį kažkur perskaičiau, kad joks metodas neturėtų būti ilgesnis nei 20-30 eilučių, čia kartu su komentarais ir laikant omeny, kad tvarkingai „{“ dedame po control statement’u:
if (sąlyga)
{
c++;
}
Kai pradedi tokiu vadovautis, išties programos struktūra aiškesnė pasidaro.
April 15, 2010 5:05 pm
Komentaras del 2 mito: is tiesu kartais persistengiama su komentaru gausa, ypac tai isryskeja open wep kode ar siaip open source koduose. Kartais modulio programinis kodas yra 5 eilutes, is vis texto faile – koke 50 eiluciu. Ir tada gaunasi idomi uzduotis – atrasti pati koda.