Il problema con domande come queste riguarda il fatto che stai parlando dello stile di codifica e NON del codice stesso; non c'è nulla di intrinsecamente sbagliato in questo tipo di domande (ho avuto dibattiti con colleghi sullo stile "appropriato" per anni), ma entra nel regno di "come dovrei nominare le mie funzioni per chiarire al meglio all'utente cosa fanno" .. CHE è completamente a tuo carico il programmatore. È completamente possibile avere un oggetto (nel realm OO) che crea sia un Print
che PrintDocument
(forse la funzione Print
gestisce alcune cose semplici per te che PrintDocument
non fa, o forse Print
stampa qualcosa sullo schermo anziché sulla stampante). Il punto è che le linee guida per la denominazione sono solo questo, linee guida.
Dove questo tipo di convenzioni di denominazione fanno davvero la differenza è nel mondo procedurale (non OO) e più specificamente nella lingua C
, che, come già sottolineato da un utente, non supporta gli overload di funzioni (ovvero 2 funzioni denominate uguali ma con parametri diversi, es: void Print(void)
e void Print(int)
non riuscirebbero in C
). In questo caso in cui il linguaggio stesso ti inibisce dal fare tali cose da quando segue una sorta di convenzione. Inoltre, quando hai a che fare con la programmazione orientata agli oggetti, di solito stai parlando di oggetti con stato, a quel punto le funzioni di solito diventano verbi dell'oggetto (cioè ho un oggetto Image
, vorrei stamparlo, quindi Chiamo img.Print()
che agisce sull'oggetto Image
che ho .. OO e non-OO non sono così diversi perché lo stesso potrebbe essere detto per PrintImage(Image)
), le linee guida di stile sono più su COME il codice che stai la scrittura viene trasmessa all'utente e di solito fa parte del processo di "progettazione" nello SDLC.
Sono stato in entrambi i kernel Linux / Unix, ambienti embedded e cloud, Java e .NET e non ho MAI visto uno stile unico da allora. Dipende SEMPRE dalla portata del progetto, dal team, dalla lingua, dall'intenzione e da IMHO se lo sviluppatore ha dormito abbastanza la sera prima :) E anche se non puoi sempre fare affidamento sulla documentazione, trovo che se è disponibile può dare una migliore comprensione di cosa dovrebbe fare una funzione rispetto al nome della funzione stessa (i codici del kernel e i nomi delle API possono essere MOLTO confusi se si sta solo andando fuori dai nomi).
Spero che possa aiutarti