2008-12-10 10 views
3

J'ai lu que Domain Driven Design consiste à se concentrer sur le domaine du problème au lieu de se concentrer sur le logiciel. Ils disent qu'il est plus facile de résoudre les complexités du problème que les complexités du logiciel, car après avoir résolu le domaine, vous savez aussi comment construire le logiciel. En outre, ils disent que le domaine est en réalité plus complexe que les structures du logiciel ou que si vous ne voyez pas la forêt depuis les bois, vous êtes en difficulté.En quoi la conception pilotée par domaine est-elle différente de l'utilisation d'une spécification?

Mais comment la conception basée sur les domaines diffère-t-elle de la simple utilisation d'une spécification pour le logiciel? Je veux dire, bien sûr, nous devrions apprendre à connaître le domaine du problème avant de commencer le codage. DDD réinvente-t-il la roue?

Répondre

3

La conception pilotée par domaine est plus à propos de l'établissement d'un modèle commun du monde (et d'un langage commun associé) que vous et les experts du domaine pouvez utiliser. En théorie, cela signifie que les développeurs peuvent écrire du code qui ressemble à une description du domaine du problème, et les experts du domaine peuvent regarder par-dessus les épaules des développeurs et voir ce qui se passe.

Une spécification ne fait pas de telles promesses sur un langage ou un modèle commun du monde, elle dit simplement "nous allons construire quelque chose de spécifique". Le modèle de classe hautement spécifié que vous proposez peut fonctionner, mais il peut ne pas refléter la «réalité» particulièrement bien.

Il ya un bon livre gratuit sur la conception axée sur le domaine here (connexion nécessaire malheureusement).

Questions connexes