ugrás a tartalomhoz

Why programmers don't want to comment code

Török Gábor · 2007. Jan. 10. (Sze), 13.42
Rossz kifogások a kommentezés ellen
 
1

nem győzött meg...

Szántó Ádám · 2007. Jan. 11. (Cs), 21.36
Egy tanárom szokta a honlapon a második érvet emlegetni. Az ő tolmácsolása (talán itt nem mindenkinek lesz szimpatikus) az, hogy a jó programozók matematikusok, mert jobban átlátják a dolgokat, mint az informatikusok... :D

De szerinte a kommentezés tipikus informatikus szokás, ők azok, akik nem tudják a kódot úgy megírni, hogy utána érteni is lehessen. Ha egy programozó kommentel, szerinte az éppen olyan, mint amikor a pantomimművész megszólal...
2

Azért...

janoszen · 2007. Jan. 12. (P), 03.26
Nem tudom, a kedves tanárod dolgozott-e már több száz osztályos projektben, de ha nincs leírva a kód elején, hogy az az osztály mit is csinál, akkor bizony elég keserves dolog előkeresni a tervezői dokumentációt (már ha van).

Szóval az jó, hogy megérted, mit csinál a kód, mert meg lehet olyanra írni, de ki a jó életnek van ideje más kódjában több száz osztályt átnézni csak azért, hogy hozzáillesszen egy sajátot? Helyette ha le van írva, hogy ez az osztály ezt csinálja, akkor már tudja, hogy jó helyen keresgél-e.

Szóval elsősorban másoknak kommentesz, de magadnak is, mert hónapokkal (évekkel később) nem fog eszedbe jutni, hogy miért pont így oldottad meg, amit (nyilván volt oka).
3

Igaz, de...

Szántó Ádám · 2007. Jan. 12. (P), 12.16
Valóban, tudomásom szerint kisebb programokat ír, úgy, ahogyan elég sokan teszik, és közben kommentelnek...

Igaz, hogy egy ilyen esetben sokat segít egy olyan kommentelés, ami mondjuk az osztályok elején szerepel, de valószínű, hogy a tanárom érvelése inkább az "agyonkommentezés" jelensége elleni tiltakozás, amikor magukat a programkódokat is belül sorvégi magyarázó szövegek tarkítják.
4

Re

Max Logan · 2007. Jan. 12. (P), 13.26
Ezek szerint én agyonkommentelem a kódomat. De ha már választani lehet, akkor egy hosszabb tartalommal bíró IF elé odabiggyesztek egy egysoros kommentet, hogy a drága elágazás mit is csinál.

A tanár részéről olyan ez a beszólás, hogy a zseni átlát a káoszon. Persze ez nagyon jól hangzik, csak van a világon ésszerűség is. Egy 20-30 modulból álló több ezer soros kódot lehet ránézésre vizsgálni. Meg is lehet érteni, hogy adott helyen mi történik. Jobban mondva, aki jó programozó tudnia kell kódot olvasni és sejteni, hogy mit csinál.

A probléma meglátásom szerint azzal van, hogy nagyobb, összetettebb projectben nem az a kérdés, hogy tudom-e, hogy mit csinál az if elágazás, hanem, hogy mi a célja. Tehát globálban kell átlátni a dolgokat. Ha nincsenek a kódban ilyen belső kommentek akkor ez szinte lehetetlen.
5

Annyira jó

janoszen · 2007. Jan. 12. (P), 21.35
Annyira jó, most nem a tanárra gondolva, hanem úgy általánosságban, hogy olyanok tanítanak programozást, akik soha nem csináltak még nagyobb projektet és utána csodálkozunk, hogy miért olyan szarok az informatikai rendszerek. Kispályás taktikával esnek neki egy nagy rendszernek. No comment... :)
6

Gyakorlati tapasztalat

Max Logan · 2007. Jan. 12. (P), 22.02
Másodszakmán végeztem a nyár elején. Olyan ember tanította a programozást (pascal, php), akinek 1. nincs tanári végzettsége, 2. spontán hirtelen felindulásból íratott minden programot. Tervezés nem volt egy esetben sem és csodálkozott, hogy nem megy vmi ami hirtelen eszébe jutott. Én nem győzőm hangsúlyozni a körültekintő tervezés fontosságát.

A másik dolog pedig az, hogy beszéltem olyan emberrel aki egyetemet végzett és programozással foglalkozik. Csoporttársa delphi-ben fejleszt és olyan dolgokkal találja szembe magát valós körülmények között, amiről a suliban nem is hallott. Akivel beszéltem neki van egy 60+ éves munkatársa, aki a kezdeteknél ott volt, amikor Magyarországon programozás kezdődött (mondta is, hogy nekik nem volt még tananyag). Ő is azt mondja, hogy nem lehet megtanulni programozni iskolai keretek között. Én is ezt vallom. Kell egy alap, de utána már minden a saját tapasztalaton múlik.

Kispályás taktikával esnek neki egy nagy rendszernek.

Nekem egy kis terhelésű rendszernél és a szemem előtt lebeg, hogy optimalizáljam a kódot. Pl. amit lehet elmentek session-be (pl. oldal nyelve), hogy ne kelljen minden oldaltöltésnél egy SQL lekérést csinálni. Jó, ez még nem olyan nagy dolog, de ha az ember megszokja az ilyen dolgokat, akkor egy nagyobb rendszernél nem utólag kell az optimalizálással bajlódni. Nemtom, lehet én vagyok túl maximalista, de ha már csinálok vmit, akkor szakítok időt a tervezésre. Sztem alap dolog lenne az előrelátó gondolkodásmód.
7

Azért

janoszen · 2007. Jan. 13. (Szo), 11.27
A kispályást nem arra értettem, hogy kis rendszer, bár mondjuk a kis rendszereknél nem valószínű, hogy ágyúval fogsz verébre lőni.

Ami az iskolai kereteket illeti, mindenkinek ajánlom Dr. László Zoltán alias PT Zoli előadásait a műegyetemen. Az előadások nyilvánosak, be lehet járni.

Na, neki VAN gyakorlati tapasztalata. És ez látszik is rajta.