Convention plutĂ´t que configuration
Convention plutôt que configuration (aussi connu sous le nom de coder par convention ; convention over configuration en anglais) est une pratique informatique qui tend à faire décroître le nombre de décisions qu'un développeur doit prendre.
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 ventes. 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 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 Laravel, 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 une é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
- C2 Wiki (2009-09-01). Too Many Parameters. C2 Wiki, 1 September 2009. Retrieved from http://www.c2.com/cgi/wiki?TooManyParameters.
- Convention over configuration support pour le Modèle-Vue-Contrôleur
- http://rubyonrails.org/, advertises the paradigm right from 'home'
- a description of configuration with the goal of convention http://grails.org/Unified+Configuration, and relationship to bean referencing from spring http://grails.org/doc/latest/guide/14.%20Grails%20and%20Spring.html
- Sun (). Spécification JavaBeans, section 1.4.