2009-05-23 12 views
20

Yo he estado mirando maravilloso en Grails y notamos una línea en la parte inferior que dice:¿Qué es "codificación por convención"?

Griales pretende acercar la "codificación por convención" paradigma de maravilloso.

¿Qué es exactamente codificación por convención?

Respuesta

23

sobre Configuración (también conocido como codificación por convención) es un paradigma de diseño de software que pretende reducir el número de decisiones que los desarrolladores necesitan para tomar, simplicidad ganando, pero no necesariamente la pérdida de flexibilidad.

La frase básicamente significa que un desarrollador solo necesita especificar aspectos no convencionales de la aplicación. Por ejemplo, si hay una clase de Venta en el modelo, la tabla correspondiente en la base de datos se llama ventas por defecto. Solo si uno se desvía de esta convención, como llamar a la tabla "products_sold", es necesario escribir un código con respecto a estos nombres.

Cuando la convención implementada por la herramienta que está utilizando coincide con su comportamiento deseado, disfruta de los beneficios sin tener que escribir archivos de configuración. Cuando su comportamiento deseado se desvía de la convención implementada, entonces configura su comportamiento deseado.

De "Convention over configuration" article on Wikipedia.

+1

El artículo de Wikipedia como está hoy no es un buen ejemplo. Otras respuestas aquí deben ser consideradas. – GaTechThomas

3

Un montón de convenciones aquí:

  1. Cómo nombrar los elementos HTML por lo que son de fácil acceso como parámetros de la petición HTTP;
  2. Cómo relacionar los atributos del objeto con los nombres de tabla y columna en la base de datos;
  3. Cómo organizar un proyecto en directorios/paquetes;

Es lo que haces cuando te encuentras resolviendo un problema común en un estilo particular. Observa similitudes y las codifica en algún esquema de automatización.

2

Esto significa que si usted se pega a ciertas convenciones de codificación como se define por cualquier marco basado en la convención que está utilizando, se obtiene una gran cantidad de funcionalidad de forma gratuita. En otras palabras, si estructura su aplicación de acuerdo con lo que el marco espera, se puede ahorrar mucho trabajo.

Sería una buena idea buscar las ventajas y desventajas de la codificación por convención. Convención

+1

Su respuesta es demasiado abstracta y no tiene ningún ejemplo. simplemente reafirma lo que otros han dicho. –

13

En el contexto de Grails, la "codificación por convención" significa que una gran cantidad de código y/o configuración explícita (tedioso y repetitivo) se sustituye por simples convenciones de nomenclatura y la estructura de directorios. Por ejemplo:

  • Cualquier clase cuyo nombre termina con el controlador en el directorio app/Grails-controladores es automáticamente un controlador de primavera y cierres definido en ella estará sujeto a las direcciones URL - que no tiene que configurar esto en una Archivo XML como lo haría al usar Spring puro.
  • Lo mismo vale para taglibs (directorio de grails-app/taglib) - ¡no más tediosos archivos de TLD!
  • Las clases de dominio en grails-app/domain probablemente tengan la mayor "magia convencional", ya que se asignan automáticamente a un esquema DB generado automáticamente, siendo los nombres de columna y tabla de DB por convención idénticos a los nombres de propiedad del dominio.
8

Codificación por convención vs codificación de configuración: La idea de que usted tiene ciertos convenios de colocación o de nombres para las cosas por lo que no tiene que indicar explícitamente al programa donde la materia es o lo que se llama.
Por ejemplo, en ASP.Net MVC existe una convención para saber dónde se almacenan las vistas y cómo se llaman. Esto significa que cuando su código indica al servidor que devuelva una vista, el tiempo de ejecución buscará una vista con cierta estructura de nombres en ciertas carpetas. Consulte la página 20 en this pdf para mayor claridad.

Otro ejemplo sería nombrar convenciones para los métodos. Por ejemplo, en un lenguaje dirigido por eventos, puede tener la opción de declarar explícitamente qué método maneja qué eventos o puede confiar en una convención de nomenclatura, como ... OnOpen o ... OnClick y luego confiar en el tiempo de ejecución para averiguar el método correcto para llamar a un evento determinado.

4

Ver Convention over Configuration. Es el concepto de diseñar una herramienta o marco para tener las opciones de configuración más comunes como los valores predeterminados, por lo que para la gran mayoría de los usuarios no se requiere configuración.

+0

El artículo de Wikipedia como está hoy no es un buen ejemplo. Otras respuestas aquí deben ser consideradas. – GaTechThomas

Cuestiones relacionadas