Le principe DRY (Don't Repeat Yourself) stipule que «chaque élément de connaissance doit avoir une représentation unique, non ambiguë et faisant autorité au sein d'un système». La plupart du temps, cela fait référence au code, mais il est souvent étendu à la documentation également.
On dit que chaque système logiciel a une architecture que vous le choisissiez ou non. En d'autres termes, le logiciel que vous créez a une structure et cette structure "telle que construite" est l'architecture du logiciel. Puisqu'un système logiciel intégré est livré avec une architecture, la création d'une description de l'architecture de ce système est-elle une violation du principe DRY? Après tout, si vous avez besoin de connaître l'architecture, vous pouvez toujours simplement regarder le code ...
la source
Réponses:
La duplication de vos pensées dans le code viole-t-elle le principe DRY?
Décidément, si vous pouviez simplement connaître l'architecture en regardant dans le code, il n'y aurait pas de choses comme des "documents de description d'architecture" en premier lieu. Ce n'est pas une répétition, c'est un autre niveau de description du système , qui ne peut pas être déduit trivialement du code, et vice versa. Il a donc son plein droit d'exister même si vous adoptez DRY.
la source
Ne prenez pas DRY comme une règle dure et rapide. C'est une bonne chose, mais vous ne pouvez l'approcher qu'en pratique.
Je pense aussi que ce n'est pas bien écrit. "Ne vous répétez pas" ne semble pas couvrir le cas tout aussi important que pour effectuer un changement sémantique ou fonctionnel, vous devrez modifier le texte source à plusieurs endroits, en disant des choses différentes mais coordonnées.
Plutôt que de le considérer comme un commandement à ne pas violer, il vaut mieux comprendre pourquoi c'est une bonne idée et faire des choix judicieux à ce sujet. La raison pour laquelle il est mauvais de devoir effectuer des modifications coordonnées à plusieurs endroits est que vous, l'éditeur, faites des erreurs. Vous n'êtes pas fiable à 100% pour effectuer les modifications sans erreur. Si vous devez apporter 10 modifications différentes au texte source, et que vous n'en obtenez que 9 correctement, vous avez mis un bogue . C'est pourquoi organiser le texte source pour minimiser le nombre de changements coordonnés est une bonne chose. Il minimise les bugs.
Nous n'appartenons pas à une religion dans laquelle DRY est l'un des commandements. C'est juste un moyen pratique, quoique légèrement trompeur, d'encapsuler un peu de bon sens.
la source
Une description d' architecture ou de conception Description du logiciel ne violent DRY. Cependant, dans une grande organisation, où les projets ont eu lieu ces dernières années, les développeurs vont et viennent, et le système est trop volumineux pour qu'une seule personne puisse garder tous les détails dans sa tête, c'est un document essentiel. La quantité de «répétition» nécessaire pour le garder synchronisé en vaut la peine pour l'effort qu'il économise lors de la prochaine mise à jour ou maintenance.
la source
Une description d'architecture ne viole pas le principe DRY.
Votre système logiciel est livré avec une architecture, bien sûr. Et il est réparti sur de nombreux fichiers, dans de nombreuses classes, avec de nombreux détails superflus et inutiles pour une vue d'ensemble.
Votre document d'architecture doit être comme le premier paragraphe d'un reportage: c'est un aperçu, un résumé, une feuille de route du projet.
la source
Si vous datez le document, il décrit alors l'architecture au moment de la rédaction.
Alors que le code représente l'architecture à l'heure actuelle.
Deux choses distinctes - pas la même connaissance.
Tant que vous déclarez que le document représente l'architecture au moment de la rédaction, vous ne dupliquez pas les connaissances OMI parce que ses connaissances différentes concernent le système à un autre moment.
la source