- Convention plutôt que configuration
-
Convention plutôt que configuration (aussi connu sous le nom de Coder par exception) est une bonne pratique informatique qui tend à faire décroire le nombre de décisions qu'un développeur doit prendre, en gagnant sur la simplicité, mais sans forcément perdre sur la flexibilité.
L'expression indique que le développeur doit seulement se concentrer sur les aspects non conventionnels de l'application. Par exemple, s'il existe un type Vente dans le modèle, la table correspondante dans la base de données se nommera implicitement vente. Ce n'est que si l'on choisit de dévier de cette convention, par exemple pour appeler la table produit_vente, qu'il sera nécessaire d'écrire du code pour y parvenir.
Lorsque la convention mise en place par l'outil de développement correspond à ce qui est correct pour l'application, on bénéficie du service sans qu'il soit nécessaire d'écrire du code ou des fichiers de configuration.
Motivation
Les technologies mal étudiées nécessitent de multiples fichiers de configuration, chacun avec de nombreuses options. Ils contiennent des notions spécifiques à chaque projet[1].
Par exemple, les premières versions du bien connu système de correspondance Classe-Base de données Hibernate, demandaient la description de ces correspondances dans des fichiers de configuration. On préfère aujourd'hui la convention qui stipule que le nom de la classe soit identique au nom de la table, réservant la configuration aux exceptions.
Utilisation
De nombreuses technologies utilisent cette approche. Ainsi Spring[2], Ruby on Rails[3], Grails[4], Zend Framework, CakePHP, symfony, Maven, Web2py, Play! (MVC).
Le concept est toutefois plus ancien que sa formalisation, et peut entre autres être retrouvé dans la conception orientée objet. Par exemple les JavaBeans correspondent pleinement à l'idée. Selon leur spécification [5]:
"Comme règle générale nous ne voulons pas inventer un énorme classe java.beans.NImporteQuoi dont tout le monde devrait hériter. Au contraire, l'environnement fournit le comportement implicite pour les objets "normaux", laissant la description des comportements spécifiques aux classes filles."
Références
(en) Cet article est partiellement ou en totalité issu de l’article en anglais intitulé « Convention over configuration » (voir la liste des auteurs)
- http://c2.com/cgi/wiki$?TooManyParameters. C2 Wiki (2009-09-01). Too Many Parameters. C2 Wiki, 1 September 2009. Retrieved from
- Convention over configuration support pour le Modèle-Vue-Contrôleur
- http://rubyonrails.org/, advertises the paradigm right from 'home'
- http://grails.org/Unified+Configuration, and relationship to bean referencing from spring http://grails.org/doc/latest/guide/14.%20Grails%20and%20Spring.html a description of configuration with the goal of convention
- 24 juillet 1997). Spécification JavaBeans, section 1.4. Sun (
Wikimedia Foundation. 2010.