2010-04-25 20 views
6

Quando ho bisogno di un nome per una nuova classe che estende il comportamento di una classe esistente, di solito ho difficoltà a trovare un nome per questo.Esiste un dizionario sul vocabolario comune di programmazione?

Per esempio, se ho un MyClass di classe, quindi la nuova classe potrebbe essere chiamato qualcosa come MyClassAdapter, MyClassCalculator, MyClassDispatcher, MyClassParser, ...

Questo nuovo nome dovrebbe ovviamente rappresentare il comportamento della classe e sarebbe idealmente lo stesso del modello di design in cui è utilizzato (Adattatore, Decoratore, Fabbrica, ...). Ma dal momento che non usiamo gli schemi di progettazione, questa non è sempre la soluzione :)

Quindi, sai per un dizionario o un elenco di parole comuni, che possiamo usare per rappresentare il comportamento della classe, che contiene una breve descrizione del comportamento atteso? Alcuni esempi: replicator, shadow, token, acceptor, worker, mapper, driver, bucket, socket, validatore, wrapper, parser, verificatore, ...

Si potrebbe anche guardare questo elenco come un cheat sheet per metafore, con cui puoi capire meglio il tuo dominio del problema.

+0

Webster è un buon dizionario. Prova quello. –

+0

Avevo quasi intenzione di suggerire FOLDOC (su http://foldoc.org) a causa del titolo della domanda (ma nonostante sia un dizionario informatico e una risorsa interessante, non è quello che viene chiesto). – stakx

risposta

0

penso che sia piuttosto strano per cercare di riflettere (o indicare o suggerire o media o implicare) la comportamento di una classe dal suo nome. Sicuramente il comportamento di una classe è definito dai suoi metodi?

Penso anche che la vostra utilizzando mio dizionario richiederebbe di iscriversi al mio modo di pensare il mondo. Anche se stiamo lavorando nello stesso dominio del problema (e scommetto che non lo siamo), non penso che sarebbe facile per te farlo.

Suggerisco, quindi, di fare ciò che quasi suggerisci tu stesso: ricava il tuo dizionario dalla terminologia del dominio del problema. Questo esercizio ti aiuterà a capire il dominio.

Infine, piuttosto che un dizionario, potrebbe essere meglio raggiungere un dizionario dei sinonimi.

+4

Bene, ci * sono * idiomi comuni per i nomi di classe (e metodo) e di solito è una cosa * buona * (si pensi ai modelli di progettazione) per facilitare la curva di apprendimento di una nuova API. –

2

Si consiglia di non utilizzare gli schemi di progettazione nei nomi. Hai iniziato con il nome MyClass e lo hai esteso a MyClassAdapter, MyClassCalculator, MyClassDispatcher, MyClassParser, ecc.

Ma dal momento che sai che queste sono classi e sono tue, perché non Adapter, Calculator, Dispatcher, Parser.

Ma l'adattatore fa universalmente ciò che dice? Calculator calcola assolutamente nulla, o c'è un lavoro specifico?

I nomi validi potrebbero essere WindowToCommProtocol (nome che cosa adatta), Payroll (il calcolo è solo un'attività), UICentral (suona come un dispatcher per me), ecc. Calcolatori e parser in genere non dovrebbero mantenere lo stato una volta che il lavoro è fatto, quindi quelli suonano più come funzioni, non classi, per me.