Saltar ao contido

Convención sobre configuración

Na Galipedia, a Wikipedia en galego.

A convención sobre configuración (tamén coñecida como programación por convención) é un paradigma de deseño de software que busca reducir o número de decisións que os desenvolvedores deben tomar, gañando en simplicidade, aínda que non necesariamente perdendo flexibilidade.

Cando a convención introducida por unha ferramenta coincide co comportamento desexado, non é necesario escribir ficheiros de configuración. Só cando o comportamento desexado varía con respecto á convención introducida é necesaria unha configuración explícita.

Esta configuración de balde achega un acercamento á programación que permite ó programador traballar cun nivel de abstracción superior.

Motivación

[editar | editar a fonte]

Algúns frameworks precisan múltiples ficheiros de configuración, cada un dos cales con moitas configuracións. Estes proporcionan información específica para cada proxecto, dende os enderezos URL ata os mapeados entre clases e táboas da base de datos. Un número elevado de ficheiros de configuración adoita indicar que o deseño dunha aplicación é innecesariamente complexo.[1]

Por exemplo, as primeiras versións do mapeador de persistencia Hibernate mapeaban entidades e os seus campos á base de datos describindo estas relacións en ficheiros XML. A maior parte desta información podía estar incorporada mapeando segundo a convención os nomes das clases aos nomes de táboas da base de datos, e os campos ás súas columnas, respectivamente. As versións posteriores deixaron de lado o ficheiro configuración XML e no canto diso empregaron estas convencións, cuxas desviacións poden ser indicadas mediante anotacións Java.

O framework coa asociación máis forte con este paradigma é Ruby on Rails, que popularizou este concepto. Hai outros frameworks dispoñibles, coma o Spring, JUnit e JBoss Seam, que fan aproximacións similares.

  1. C2 Wiki (01-09-2009). Too Many Parameters. C2 Wiki, 1 de setembro de 2009.

Véxase tamén

[editar | editar a fonte]

Ligazóns externas

[editar | editar a fonte]