Est-DDD est une perte de temps?
Googler "Ce type d'applications est DDD approprié pour?" m'a donné la réponse suivante:
Probablement 95% de toutes les applications logicielles tomber dans le “pas très bon pour l'utilisation de DDD” des catégories. (voir l'article)
Donc, qu'est-ce que toutes ces histoires?!?
L'application que je suis en train de travailler sur est principalement centrée sur les données, mais contient toujours un peu de logique métier et des règles à appliquer. Serait-il perte de temps pour commencer à appliquer DDD techniques? Suis-je mieux d'utiliser un plus classiques Couche d'Accès aux Données, un modèle de Poco et une Couche de Logique Métier? Ou pour dire les choses différemment, ce qui est une bonne alternative à DDD?
- Cela peut être un bon sujet de conversation.
Vous devez vous connecter pour publier un commentaire.
De nombreux développeurs qui pensent que DDD est utile pour leur projet tomber dans le piège qu'ils pensent que leur travail est tout au sujet est l'écriture de code. Ce n'est pas le cas. Un développeur d'emploi est à propos de la réalisation de la fonctionnalité de sorte qu'un problème peut être résolu par le logiciel. Cela aboutit à la conclusion que l'écriture de code n'est pas le début de ce qu'un développeur est en train de faire, mais à la fin: le code est le résultat de l'ensemble du processus AVANT que le code est écrit.
DDD n'est pas à propos de l'écriture de code, ce n'est pas un processus en 10 étapes pour obtenir un excellent logiciel, c'est sur que tout le processus AVANT que le code est écrit, il s'agit d'obtenir un aperçu de ce que le problème est tout au sujet, ce/qui participe dans lequel les flux d'informations et de quoi ces éléments ressemblent, comment ils se rapportent à d'autres personnes etc. etc. En fait, la partie la plus importante de DDD est création d'un langage qui rend les conversations entre les experts du domaine et les développeurs possible sans mauvaises interprétations. C'est le "Ubiquitous Language' Evans parle. Il rend en effet l'ensemble du processus AVANT le code est écrit par un processus qui laisse peu de place à l'aurez deviné, les choses sont claires et directes. (c'est le but).
Le problème avec les "comment est-DDD travail dans la pratique" et "quelqu'un pourrait-il me donner un exemple de la façon dont j'écris le code avec DDD?" et la comme vient vraiment du fait que les gens demandent à ce genre de questions se concentrer sur l'écriture de code, mais n'ont aucune idée de POURQUOI ils sont en train d'écrire le code et pas un autre code. I. o.w.: si vous vous rendez compte que DDD est de découvrir CE que vous avez à écrire que la fonctionnalité et le POURQUOI, les choses tombent en place. COMMENT vous écrivez que le code, c'est à vous. Mais, comme on dit: ce n'est pas le plus gros problème, comme vous l'avez déjà savoir ce que vous avez à écrire, et pourquoi.
vous savez, parfois les 5% gagne plus d'argent que tous les autres 95% - c'est pourquoi DDD existe.
c'est pour spécifiques et complexes systèmes de grande taille.
Désolé, mais si DDD étaient seulement une manière de penser qu'Frans Bouma a dit, alors il ne vous recommanderais pas de choses telles que la Persistance de l'Ignorance. C'est en rejetant les autres, un peu comme sous-classe de développeurs.
PI, pour qui DDD a au moins un parti pris, est un choix architectural. Ce n'est pas une façon de penser plus ; c'est déjà quelque chose qui est servi à vous, avec la plupart du temps trop vague avertissements pour être d'une quelconque utilité: "qui n'est pas adapté pour tout".
Mais de décider d'aller la PI ou non est un défi en soi, et vous ne pouvez pas appeler les noms quelqu'un (un"codeur") si il se sent mal à l'aise à ce sujet.
Prendre un ERP avec tous les lieu d'un MS Access-comme l'interface: les grilles avec des cumuls de l'auto-mise à jour de colonnes et pageless à défiler sur les 100 000 entrées. Clairement un DDD approche est adaptée à la pensée de la façon d'aller sur cette application. Mais dans les années je n'ai jamais vu personne - ni dans les livres ni sur internet, en allant bien étayé explications, sans parler de la vie réelle des exemples de code, de combien de PI pourrait traiter ce omniprésent situation pour ceux qui veulent se livrer qualité commerciale des applications et des expériences utilisateur.
Ne voulez pas d'obtenir religieuse sur cette. DDD et DAL promoteurs ont tendance à être trop religieux et peut conduire à l'écart de ceux qui ont été mordu une fois, mais qui sont/étaient ouverts d'esprit. De nombreux veux juste de confronter les expériences réelles (c'est à dire le PENSE), et ne pas avoir servi avec des Chats, des Voitures, et l'Ordre de base/OrdersItems (c'est à dire mauvais CODE) à l'appui de la prédication.
Ici est très semblable à la question: Autorisez-vous le Niveau Web pour accéder à la DAL directement?
- Je utiliser DDD pour tous mes projets. Sur la petite demandes de certains des concepts ne s'appliquent pas, mais je trouve que de nombreux aspects sont applicables sur tous les projets, indépendamment de la taille.
DDD est à propos du logiciel qui sera maintenu pendant un certain temps. Pour moi, cela signifie qu'il a besoin d'exprimer des idées qui vont changer avec le domaine. Assurer une application simple peut être parfait pour un court délai de livraison et les courts délais de mise en œuvre. Toutefois, si vous avez besoin de développer le logiciel puis DDD principes aidera énormément. DDD peut être dur à l'avant, mais une fois que vous obtenez l'idée de l'omniprésence de la langue et de la séparation des préoccupations, alors les choses commencent à devenir facile.
Si vous avez lu l'article un peu plus, vous voyez ceci:
C'est pourquoi l'histoire.
Que votre application est principalement centrée sur les données, peut-être que votre architecture pourrait être conventionnelles.
Pour les aspects où vous avez le plus logique et le potentiel de domaine ou des objets de valeur, vous pourriez peut-être utiliser une partie de la DDD idées pour organiser le code.
En général, le son "alternative" est de garder les choses aussi simples que possible, utilisez le DDD concepts là où c'est utile, et ne pas compliquer inutilement les choses, comme l'article le conseille.
Je commence un projet similaire, maintenant, c'est un mélange de manipulation de données et plus de logique/algorithme poussé zones. Je ferais de même, comme pour prendre de l'parties de DDD qui sera bénéfique pour le projet, mais ne pas essayer de le forcer sur les domaines où elle peut être contre-productif.