Rimantas Liubertas rašė: >> Apie tai: >> http://blog.tabini.ca/2009/04/30/the-myth-of-the-myth-of-self-commenting-code/ > > > Nelabai supratau, ką šituo nori parodyti. Tas įrašas labiau pagrindžia > mano poziciją, nei tavo. Tas įrašas kalba susieja abi pozicijas kartu. Abiejoms pozicijoms būdinga tai, kad komentarų *reikia*. > >> Šiuo atveju statistika yra daug arčiau kūno, nes ji atspindi >> objektyvią realybę. > > Kokiu būdu? Tokiu būdu, kad 80% amerikiečių iš tikrųjų turi po vieną krūtį ir sėklidę, o projektuose susikaupia (ne pagal kažkokį biurokratinį planą „10% komentarų“, o savaime) toks skaičius komentarų. Jis -- ganėtinai objektyvus. >> tačiau, kai jo nėra, nors reikia (prireikė) ar gali prireikti > > Bijočiau komentarų, kurių nereikia, bet _gali_ prireikti. WTF? Na, paprasta. Šiandien prireikė (buvo naudingi) 20 komentarų iš modulio/failo A. Rytoj 15 iš modulio/failo B. Tai, kad modulis C yra plikas, tikrai nereiškia, kad aš būsiu patenkintas, kai reikės jį peržiūrėti/taisyti/nagrinėti. Kitaip tariant, komentarai (aiškinant bendruosius dalykus ir patį kodą) yra naudingi visur kur jie yra tikslingi, nes niekada nežinai kada jų gali prireikti, todėl juos reikia rašyti jau rašant patį kodą ir principas (kuo mažiau, tuo daugiau naudingų čia, mano galva, tikrai negalioja). Tokių (komentuotinų) vietų kokybiškame, palaikomame kode realybėje (įvairių kokybiškų projektų statistika) prisikaupia -- ir įvairios metrikos vertinančios kodo kokybę diktuoja -- ne mažiau nei ~10% „tūrio“. Jei jų yra mažiau, o *ypač* _turint_omenyje_ pavienio programuotojo kodą (kuris, mano galva, bus beveik *neabejotinai* prastesnės kokybės, nei pavyzdinių, tvarkingų opensource projektų, tad ir kur kas labiau komentuotinas, aiškintinas), tai tikrai verta susirūpinti. Ne, ne ta prasme, kad aklai užauginti trūkstamą skirtumą, tačiau pradžioje bent jau atkreipti dėmesį į mano galva egzistuojančią problema, kad/kada (vis) pjaustai kodo bloką smegenyse norėdamas išsiaiškinti trivialius/paprastus dalykus, kuriuos tas (nors ir self-documenting) kodas daro. Iš praktikos teigiu, kad realybėje tai yra imlus ir painus darbas; kur kas imlesnis ir painesnis. ~5% komentarų (ypač, kai kodo eilučių jau daugiau, nei, tarkime 10000), manau, jau yra _nepatenkinamai_mažai_, todėl nepavydžiu, kai/jei reikia tokį kodą nuolat lopyti, o ypač, jei progamuotojų yra ne vienas. > Kodėl manai, kad LABAI DAUG? > Tarkim visos eilutės komentuojamos, bet komentuojamos stiliumi: > > //add a and b and store result in tmp > tmp = a + b > > Gausi komentarų ir kodo santykį 1:1, o naudos? Tokių komentarų neturėjau omenyje (iš dalies dėl to ir tą link'ą pateikiau)... > > Jau geriau jokio komentaro, nei prastas komentaras, ar dar baisiau — > klaidinantis. > Vėlgi, pasikartosiu: aš neneigiu komentarų reikalingumo, bet > prieštarauju, kad apie jų ar kodo kokybę galima spręsti pagal kažkokią > statistiką. > Na nutars PM, kad kode turi būti mažų mažiausiai 10% komentarų, na > prirašys programuotojai tuos 10% aukščiau nurodytu stilium ir ką? > > O šiaip tai geriausiai IMHO apie tai parašęs (ir daugiausia įtakos > mano požiūriui turėjo) yra McConell'is: > Code Complete, Chapter 32, Self-Documenting Code. Turbūt ksaitei ir ką/kaip jis rekomenduoja komentuoti. Pagal tai ką jis rekomenduoja komentuoti, aš vargiai įsivaizduoju 5% komentarų Pascal'io kode, kai kodo eilučių >10000. Vargiai įsivaizduoju ir 10%...