Scrivi titoli nei commenti di codice? [chiuso]

17

Stavo navigando su un vecchio codice che ho scritto (il primo anno all'università) e ho notato che ero solito scrivere titoli di commento preceduti da varie parti del codice. Stuff like (questo è un gioco Monopoly):

/*Board initialization*/
...code...

/*Player initialization*/
...code...

/*Game logic starts here*/
/*Displaying current situation*/
...code...

/*Executing move*/
...code...

/*Handle special event*/
...code...

/*Commit changes, switch to next player*/
...code...

Questo potrebbe essere ridondante e probabilmente inutile se il codice è davvero super nitido, ma quando ho scansionato il file mi ha sorpreso quanto strongmente mi sentissi come se sapessi cosa sta succedendo anche se non guardavo il codice vero e proprio. Posso sicuramente vedere questo come appropriato in certe circostanze, quindi mi chiedo: lo fai? Pensi che sia una buona idea? O è troppo?

    
posta EpsilonVector 15.09.2010 - 22:37
fonte

6 risposte

24

Questo è un odore di codice. Questo dice cosa e non perché .

Se necessario, dividi il codice in piccole funzioni.

    
risposta data 15.09.2010 - 22:57
fonte
13

Lo faccio sempre. Sia per marcare ciò che sta facendo il codice, sia, probabilmente, più importante, come hai detto, per semplificare la scansione e l'amp; trova un pezzo di codice. A volte, inoltre, scriverò un processo coinvolto nei commenti e "inserisco" il codice sotto i commenti mentre procedo.

    
risposta data 15.09.2010 - 22:42
fonte
6

Trovo interessante il fatto che a molte persone non piaccia la pratica senza essere davvero in grado di articolare il perché. Il motivo per cui commenti del genere sono disapprovati è che sono un segno che hai violato il principio di responsabilità singola . Quel nome specifico di solito è usato solo in un contesto OO, ma il concetto generale è anche chiamato coesione e si applica ad altri paradigmi. Le scuole di solito non insegnano questi tipi di principi di progettazione fino alla fine di un corso di laurea, se non del tutto. In effetti, alcuni insegnanti impongono la sua violazione al fine di rendere le cose più facili da classificare mettendo tutto in un unico file. Pertanto, la tua ignoranza da matricola è scusabile, e il fatto che tu abbia notato "qualcosa" sbagliato e provato a chiarire con i commenti è persino lodevole date le circostanze, ma in generale è meglio fissare un disegno poco chiaro piuttosto che cercare di coprirlo con commenti.

    
risposta data 25.09.2011 - 17:33
fonte
4

Considero queste cose come un modo per rendere il codice più chiaro o meno. Se puoi dire in base ai metodi nel file che cos'è ciascuna parte, non è comunque necessario che abbia per avere più sezioni, quindi può essere utile. Forse quando un file di codice diventa troppo grande deve essere suddiviso in modo da ridurre la necessità di tali commenti.

Direi che se lavori all'interno di una squadra trovi uno standard in modo tale che tu stia almeno scrivendo e commentando allo stesso modo, quindi guardare il codice diventa più facile.

    
risposta data 15.09.2010 - 23:01
fonte
3

Lo faccio perché spesso comunico l'intento con me stesso, o essenzialmente inserendo un segnalibro conveniente per cose come "La pulizia dei dati inizia qui". Di solito sotto quel titolo c'è un breve cenno sulla logica di ciò che sto facendo e perché.

Mi piace la ridondanza. Se per un motivo o l'altro perdo il mio taccuino da laboratorio o devo rivisitare il codice che scrissi anni fa, non mi piace dover mettere insieme quello che stavo facendo e perché lo stavo facendo. Se almeno una parte di quella logica è presente nel codice, è abbastanza documentata da farmi almeno riprovare.

Penso che parte della mia inclinazione verso di esso sia una buona parte della mia programmazione è di natura statistica, e quindi un po 'ripetitiva. Considerando che ci potrebbero essere alcuni pezzi di codice in cui ho trovato una funzione utile da cercare, potrei avere diverse dozzine di usi abbastanza simili di qualcosa come una funzione di modello lineare generale. È utile essere in grado di andare e scoprire quale di questi è stato il "quanto sono sensibili i risultati al codice Choice A vs. Choice B o C", e che era qualcos'altro. Questo è spesso accelerato dai titoli.

    
risposta data 25.09.2011 - 09:59
fonte
2

Penso che sia utile in situazioni in cui disponi di file di origine giganteschi con dozzine di funzioni e puoi organizzarli liberamente in blocchi del genere. Non sto dicendo che mi piace meglio dei file sorgenti più piccoli e focalizzati, comunque ...

    
risposta data 15.09.2010 - 22:40
fonte

Leggi altre domande sui tag