Ho visto molto nel codice, anche se lo considero un caso speciale. #TODO
e #FIXME
sono altri due indicatori di correzione, ma cosa significa #XXX
?Qual è il significato di #XXX nei commenti di codice?
risposta
XXX
in un commento è di solito un heads-up. Potrebbe essere:
- Qualcosa che non è implementato completamente correttamente.
- Qualcosa che dovrebbe essere risolto in seguito.
- Evidenziare un possibile punto problematico.
- Qualcosa di cui non sei sicuro, una domanda.
Ho spesso preferito un tag più descrittivo come FIXME
o TODO
o HACK
. XXX
è spesso usato come cattura tutto per quanto sopra.
La ricerca di "XXX" su FreeBSD code cross reference è un buon esempio di molti degli usi. Ce ne sono migliaia ...
La cosa divertente è che la uso da sola. XXX o #XXX fondamentalmente inciampa nel compilatore e mi ricorda di tornare su qualcosa. Generalmente riferimenti a puntatori o un valore o un nome di variabile precedentemente sconosciuto. – bobby
Ciò ha confermato la mia ipotesi iniziale, È semplicemente un tag "catch all" per indicare ad altri programmatori di evidenziare quel commento come qualcosa da guardare. –
Probabilmente è per i casi che non sai come gestire.
Dai un'occhiata a questo: List view of TODO/FIXME/XXX/HACK statements
alt text http://editra-plugins.googlecode.com/svn/wiki/images/commentbrowser/cb_screenshot.PNG
Alcune note da un June 2005 Python Enhancement Proposal that was rejected.
Scegliere tra
FIXME
eXXX
è difficile.
XXX
sembra essere più comune, ma molto meno descrittivo.
Inoltre,XXX
è un segnaposto utile in un pezzo di codice
con un valore sconosciuto.Così
FIXME
è l'ortografia preferita.
Sun afferma cheXXX
eFIXME
sono leggermente diversi, dando maggiore severità aXXX
.
Tuttavia, con decenni di caos su questo argomento e troppi milioni di sviluppatori di
che non saranno influenzati da Sun, è facile chiamarli correttamente sinonimi.
Il PEP Inizia con,
Questa PEP è stata respinta. Mentre la community potrebbe essere interessata,
, non c'è alcun desiderio di rendere la libreria standard conforme a questo standard.
...
cosa sono Codetags?
I programmatori utilizzano ampiamente le convenzioni di markup dei commenti di codice ad hoc per servire come promemoria delle sezioni di codice che richiedono un'ispezione più ravvicinata o la revisione di . Esempi di markup includono
FIXME
,TODO
,XXX
,BUG
, ma ce ne sono molti altri ampiamente utilizzati nei software esistenti. Tale markup verrà quindi denominato codetags. Questi codetags possono essere visualizzati nel codice dell'applicazione, nelle unit test, negli script, nella documentazione generale o laddove idoneo.
Il PEP è una lettura interessante.
Un segnaposto, di solito implica il codice si riferisce è:
- Ugly
- spaventoso
- Magia
o peggio.
perché è così? Penso che #hack sia più appropriato. Dalla mia esperienza personale e altra risposta sembra essere un "generale sguardo su di me" –
Io uso XXX
perché è più semplice digitare di TODO
.
XXX
è per quando sei di fretta e tornerai a questo te stesso.
TODO
è per quando devi consegnarlo a qualcun altro.
XXX significa "Sono di fretta e tornerò da solo" TODO significa "Questa è una parte ufficiale di una futura richiesta di arretrato che sarà assegnato a qualcun altro. " Questi sono i significati letterali. –
E quali RFC sono quei "significati letterali" in? O c'è qualche altra citazione per questo? – Randall
@Randall: "citazione"? Scusate, è solo la mia comprensione dopo aver letto un sacco di codice. –
NOTE
: Descrizione del funzionamento del codice (quando non è evidente).XXX
: Avviso per possibili errori, può essere utilizzato comeNOTE:XXX:
.HACK
: codice non ben scritto o malformato per aggirare un problema/bug. Dovrebbe essere usato comeHACK:FIXME:
.FIXME
: funziona, ma potrebbe essere migliore. (di solito il codice scritto in fretta che necessita di riscrittura).BUG
: C'è un problema qui.TODO
: Nessun problema, ma è necessario scrivere codice aggiuntivo, in genere quando si salta qualcosa.
Almeno questo è il modo in cui mi hanno insegnato questi tag. Fondamentalmente i primi due (NOTE
e XXX
) vengono utilizzati per informazioni e non è richiesta alcuna azione. Mentre gli ultimi tre (FIXME
, BUG
e TODO
) richiedono un'azione. HACK
è da qualche parte nel mezzo (e quasi mai usato penso?).
Buona lista. Mi piace anche "LAZY" (non così critico come FIXME o HACK) e "OCD" (noto overengineering). –
XXX è l'abbreviazione di avvertenza leggermente diversa da NOTE ma abbastanza simile a HACK. Può trattarsi di un bug in una libreria/codice di terze parti che viene utilizzato e il codice con // XXX: indica che è una soluzione temporanea a causa di un bug nel codice di terze parti o potrebbe significare "attenzione" a qualcuno che guarda/modifica il codice per indicare perché qualcosa è fatto in un certo modo che altrimenti potrebbe sembrare errato/inelegante nel primo sguardo.HACK è un termine generico che indica una soluzione alternativa per un problema che potrebbe essere presente nella propria base di codice o in una libreria di terze parti.
Credo che mentre FIXME
è per lo sviluppatore e HACK
è per il manutentore, XXX
è per l'utente. Ad esempio, se ignori il XXX
e chiami questa funzione altrove, senza capire come funziona, può accadere qualcosa di inaspettato, e la persona che si occupa di questo problema sarà infelice (almeno quella che ha aggiunto il XXX
pensa così). Potresti pensare che il problema sparirà se semplicemente non usi questa funzione.
Ma per FIXME
, ti sentirai degno di correggere il codice per farlo funzionare. E per HACK
, potresti non avere scelta migliore anche se non la usi.
Se hai scritto XXX
sul tuo codice e qualcuno l'ha usato, potresti sentirti infelice per ragioni come hai completamente riscritto quel codice, e poi si è comportato in modi completamente diversi e hai rotto il codice di qualcun altro. Ma se hai lasciato un FIXME
o TODO
invece, non ti interesserà molto.
Dai un'occhiata allo PEP350. Spiega tutto su TODO
, XXX
ecc. Lo uso ogni giorno quando non riesco a ricordare esattamente cosa significhi uno dei tag del codice.
da (vecchio) Java code conventions:
XXX in un commento per segnalare qualcosa che è fasullo, ma funziona. Usa FIXME per segnalare qualcosa che è falso e rotto.
È un "cattivo" TODO ... –
La domanda è chiedere informazioni sulle migliori pratiche di codetag o commento nella programmazione Python. C'è una discussione sulla proposta di potenziamento di Python sull'argomento. La domanda merita di essere mantenuta su SO. Potrebbe essere stato formulato un po 'meglio però. – nik