2009-05-23 21 views

risposta

23

Convention over Configuration (alias Coding by convention) è un paradigma di progettazione software che cerca di ridurre il numero di decisioni che gli sviluppatori devono prendere, ottenendo semplicità, ma non necessariamente perdendo flessibilità.

La frase significa essenzialmente che uno sviluppatore deve solo specificare gli aspetti non convenzionali dell'applicazione. Ad esempio, se nel modello è presente una classe Sale, la tabella corrispondente nel database viene denominata vendite per impostazione predefinita. Solo se uno si discosta da questa convenzione, come ad esempio chiamando la tabella "products_sold", è necessario scrivere un codice per questi nomi.

Quando la convenzione implementata dallo strumento che si sta utilizzando corrisponde al comportamento desiderato, si godono i benefici senza dover scrivere i file di configurazione. Quando il comportamento desiderato si discosta dalla convenzione implementata, si configura il comportamento desiderato.

Da "Convention over configuration" article on Wikipedia.

+1

L'articolo di wikipedia così com'è oggi non è un ottimo esempio. Altre risposte qui dovrebbero essere considerate. – GaTechThomas

3

sacco di convenzioni qui:

  1. Come nominare elementi HTML in modo che siano facilmente accessibili come parametri della richiesta HTTP;
  2. Come correlare gli attributi oggetto ai nomi di tabelle e colonne nel database;
  3. Come organizzare un progetto in directory/pacchetti;

È quello che fai quando ti ritrovi a risolvere un problema comune in uno stile particolare. Noti le somiglianze e le codifichi in uno schema di automazione.

2

Significa che se ci si attiene a determinate convenzioni di codifica definite da qualsiasi framework basato su convenzione che si sta utilizzando, si ottengono molte funzionalità gratuitamente. In altre parole, se si struttura la propria applicazione in base a quanto previsto dal framework, è possibile salvare molto lavoro.

Sarebbe una buona idea cercare i vantaggi e gli svantaggi della codifica per convenzione.

+1

La tua risposta è troppo astratta e non ha alcun esempio. si limita a ripetere ciò che altri hanno detto. –

13

Nel contesto di Grails, "codifica per convenzione" significa che molti (tediosi e ripetitivi) codice e/o configurazione espliciti sono sostituiti da semplici convenzioni di denominazione e struttura di directory. Per esempio:

  • Ogni classe il cui nome termina con il controller nella directory Grails-app/controller è automaticamente un controller primavera e chiusure definito in esso sarà legato agli URL - non c'è bisogno di configurare questo in un File XML come dovresti usare quando usi Spring puro.
  • Lo stesso vale per taglibs (directory grails-app/taglib) - niente più noiosi file TLD!
  • Le classi di dominio in grails-app/dominio hanno probabilmente la maggior parte delle "convenzionali magie", essendo automaticamente mappate a uno schema DB generato automaticamente - con nomi di tabelle e colonne DB per convenzione identici ai nomi di proprietà del dominio.
8

Coding per convenzione vs codifica in base alla configurazione: L'idea che si hanno determinate convenzioni di collocamento o di denominazione per roba così non c'è bisogno di dire esplicitamente al programma dove roba è o come si chiama.
Ad esempio, in ASP.Net MVC esiste una convenzione per dove vengono memorizzate le viste e come vengono chiamate. Ciò significa che quando il codice ordina al server di restituire una vista, il runtime cercherà una vista con una determinata struttura di denominazione in alcune cartelle. Vedere pagina 20 in this pdf per maggiore chiarezza.

Un altro esempio potrebbe essere la convenzione di denominazione per i metodi. Ad esempio, in un linguaggio basato sugli eventi potresti avere la possibilità di dichiarare esplicitamente quale metodo gestisce gli eventi o puoi fare affidamento su una convenzione di denominazione, ad esempio ... OnOpen o ... OnClick e quindi fare affidamento sul runtime per capire il metodo corretto per chiamare un determinato evento.

4

Vedere Convention over Configuration. È il concetto di progettare uno strumento o una struttura per avere le opzioni di configurazione più comuni come predefinite, quindi per la stragrande maggioranza degli utenti non è richiesta alcuna configurazione.

+0

L'articolo di wikipedia così com'è oggi non è un ottimo esempio. Altre risposte qui dovrebbero essere considerate. – GaTechThomas

Problemi correlati