Plaidoyer pour une modélisation des données à l'échelle de l'entreprise
Gouvernance, efficacité, performance... sont à portée de main, pourvu qu'on se penche sérieusement sur un processus fondamental qui structure l'information de son SI.
Il est essentiel de garder à l'esprit les concepts fondamentaux et les lignes directrices lors de la résolution de problèmes simples, sans s'embarrasser de modèles de conception complexes.
< L'architecture des plateformes
L'écriture d'applications logicielles implique la résolution de problèmes plus ou moins complexes. Une question qui se pose souvent est de savoir si l'application de principes de conception de logiciels tels que la norme SOLID est nécessaire pour tous les problèmes, quelle que soit leur complexité. S'il est vrai que le code doit toujours être facile à modifier, l'application de techniques de conception lorsque cela n'est pas nécessaire peut parfois causer plus de tort que de bien. Cet article examine dans quels cas il est nécessaire d'appliquer les principes de conception des logiciels et dans quels cas il ne faut pas le faire.
Comme le rappelle Wikipedia, "SOLID est un acronyme mnémonique qui regroupe cinq principes de conception destinés à produire des architectures logicielles plus compréhensibles, flexibles et maintenables" :
La conception de logiciels peut être associée à deux problèmes principaux, qui tournent autour de la complexité. Tout d'abord, la conception de logiciels est difficile à expliquer et il est difficile de démontrer ses avantages à l'aide d'exemples simples. Les développeurs pragmatiques qui ne sont pas familiarisés avec la conception de logiciels peuvent se demander pourquoi ils doivent l'utiliser. Pour faire ressortir la conception de logiciels, une certaine complexité est nécessaire. Deuxièmement, la conception de logiciels peut ajouter de la complexité à une solution logicielle, en particulier lorsqu'il n'y en a pas au départ. Si le problème est simple, l'ajout d'abstractions et de modèles de conception peut être considéré comme excessif et trop proche du principe YAGNI (You Ain't Gonna Need It).
La conception de logiciels est un art qui consiste à permettre le changement dans une base de code. Nous y parvenons en examinant attentivement le problème à résoudre et en utilisant les principes de conception de logiciels, les modèles et les meilleures pratiques. En permettant le changement dans une base de code, nous essayons de limiter les coûts inévitables de la maintenance des logiciels. Même si un problème est simple, nous pouvons imaginer différentes façons de le modifier. Le code devrait toujours être facile à modifier ; c'est pourquoi nous sommes souvent tentés d'appliquer les principes de conception et d'ajouter de la complexité, au cas où nous en aurions besoin. Au cas où le changement viendrait perturber et désorganiser notre code.
Si la complexité de ce que vous faites n'est pas très élevée, vous n'aurez probablement pas besoin de beaucoup de modèles de conception (voire pas du tout), et la plupart des principes de conception et des lignes directrices ne seront pas nécessaires. Il est conseillé d'essayer de garder les choses aussi simples que le problème le permet. Par exemple, SOLID est un ensemble de lignes directrices/meilleures pratiques que tout développeur devrait connaître et comprendre. Cependant, la plupart d'entre elles sont des lignes directrices de haut niveau et peuvent ne pas être nécessaires pour résoudre des problèmes simples. Les principes SOLID sont essentiels, mais ils ne sont pas toujours simples.
A lire sur le sujet