Ho iniziato ad aggiungere informazioni sul comportamento delle funzioni al loro nome di recente.
Due grandi esempi:
-
pure
- questa funzione non ha effetti collaterali (oltre al valore restituito), che userei in Java comestatic int addingNumbersPure(int a, int b)
(cattivo esempio dato che nessuno si aspetterebbe effetti secondari in tale metodo, ma si ottiene la deriva). -
linearTime
- la complessità del runtime del grande-o del codice, ad esempioObject searchPureLogTime(Object[] sortedArray)
.
Questo mi dà (e altri chiamano il mio codice) una visione più profonda di ciò che questi metodi fanno - utili in progetti più grandi - ma d'altra parte, non mi sento a mio agio nell'utilizzarlo nelle definizioni di interfaccia, poiché potrebbero essere estese con altre funzionalità, rompendo questo contratto. Quindi ovviamente lo uso solo per metodi che non sono progettati per essere estesi (tuttavia è implementato, tramite parole chiave della lingua o l'architettura del progetto stesso).
Un'alternativa che usavo prima era Javadocs (o qualunque altro sistema doc fosse usato in un progetto) per aggiungere quelle informazioni, ma non conosco alcun IDE che li incoraggi nell'editor corrente - quindi leggendo il codice come un blocco non dà al lettore quelle informazioni.
Alla fine, sono in conflitto. Il mio modo di aggiungere queste informazioni è migliore o peggiore rispetto a non dare queste informazioni? Esiste un modo migliore e più agevole di farlo? Qual è lo standard del settore?
PS: anche se questa domanda è indipendente dal linguaggio, è ovviamente irrilevante in linguaggi come Haskell, dove per esempio pure
non è una nuova informazione.