Semplici accessor e mutatori beneficiano delle intestazioni di blocco commentate?

3

Domanda breve
È necessario aggiungere i commenti dell'intestazione di funzione per gli accessor e i mutatori semplici ?

Esempio

u8   OBJ_get_state_x(void) {return obj.state_x;}  
void OBJ_set_state_x(u8 x) {obj.state_x = x;}

Pensieri addizionali
L'oggetto (OBJ) nel suo complesso contiene una logica molto minimale (se presente). Il suo unico scopo è quello di mantenere lo stato di un sistema. Moduli aggiuntivi (come IO, COMM, DISPLAY, ecc ...) sanno tutti che l'oggetto è e contengono tutta la logica aziendale necessaria per guidare gli stati in OBJ.

Vorrei come per mantenere tutti gli accessors / mutators su una singola riga per rendere il file un po 'più leggibile e mettere semplicemente un'intestazione di blocco generico sopra tutti loro. Non so se questa è una pratica comune (o buona).

Si noti che tutti gli intervalli sono vincolati dal loro tipo. Se c'è uno stato speciale che ha un intervallo da 0 a 3, creo un enumerato typedef da usare come tipo (forzando quindi l'intervallo e rendendo il codice più leggibile IMO).

    
posta Adam Lewis 02.10.2011 - 18:27
fonte

3 risposte

3

Solo se viene eseguita la logica. È possibile avere getter / setter che non si associano a variabili di classe specifiche, quindi, in questo caso, sì, se restituisce solo una variabile di classe quindi no, perché sarebbe necessario? (tranne che in una lezione che insegna programmazione o qualcosa del genere)

    
risposta data 02.10.2011 - 20:49
fonte
1

Penso che dovresti avere un commento lì ancora, non per spiegare cosa fa la funzione stessa, che è ovvio, ma piuttosto cosa fa la variabile restituita da esso.

Se il nome della variabile lo spiega, allora va bene - probabilmente non hai bisogno di commenti. Se il nome è qualcosa come "state_x", il programmatore che chiama la funzione è molto probabilmente interessato a sapere quali stati ci sono. Se lo stato fa parte di una macchina a stati, forse tutti gli stati devono essere spiegati uno ad uno.

Tutto ciò ovviamente dipenderà dalla documentazione che è già possibile trovare altrove nel progetto: se il comportamento di "OBJ" è spiegato altrove, allora una lista di tutte le dichiarazioni senza commenti è probabilmente una soluzione ragionevole. Tuttavia, la mia filosofia personale è che un programmatore dovrebbe essere in grado di individuare qualsiasi mio modulo di codice e capire cosa fa solo leggendo il file h, senza bisogno di documenti esterni.

E per essere pignoli: se incontro una funzione membro non const-get mi aspetterei una spiegazione del perché non è stata dichiarata const. Suggerisce che la funzione non è un semplice getter, ma piuttosto che vi è una sorta di magia interna che si svolge all'interno di quella funzione.

    
risposta data 03.10.2011 - 13:33
fonte
0

Forse

Un commento potrebbe essere utile, ma qualcuno deve scriverlo. I commenti generati sono dannosi; occupano spazio e programmatore ma non dicono nulla. La tua inclinazione a mantenere tutti gli accessor su una singola riga è corretta. Sarei tentato di eliminarli completamente rendendo pubblici i membri dei dati.

    
risposta data 02.10.2011 - 20:16
fonte

Leggi altre domande sui tag