Lorsque vous développez un système ou une application que vous prévoyez d’utiliser avec un certain cadre, est-il préférable de concevoir le système sans le garder à l’esprit, ou est-il préférable de concevoir le système avec l’état d’esprit «le cadre aurait plus de facilité» avec ça".
development-process
systems
Robert Pounder
la source
la source
Réponses:
Votre conception doit répondre aux besoins des clients aussi étroitement que possible. Rappelez-vous que le design comprend de petites choses comme:
Aucune de ces choses ne devrait être dictée par le cadre. S'il est clair que vous combattez votre cadre pour atteindre ces objectifs, choisissez un nouveau cadre qui vous aidera à atteindre ces objectifs avant de commencer à écrire du code.
Une fois que vous avez choisi un ensemble d'outils approprié (le cadre est un outil), je vous recommande d'utiliser les outils tels qu'ils ont été conçus. Plus vous vous écartez du cadre, plus vous augmentez la courbe d'apprentissage de votre équipe et plus il y a de chances que quelque chose se passe mal.
En bref
Autres réflexions:
Après plus de 20 ans d'ingénierie logicielle et l'utilisation de plusieurs cadres, j'ai appris quelques leçons. Tous les frameworks sont une arme à double tranchant: ils contraignent et permettent à la fois. Le problème avec le choix de votre cadre avant de vous pencher sur le grand 3 que j'ai mentionné ci-dessus est que vous pourriez compromettre une bonne expérience utilisateur pour une expérience médiocre (au mieux). Ou vous pourriez être obligé de vous écarter de la conception des frameworks pour accomplir certaines fonctionnalités spécifiques.
la source
Les frameworks influencent naturellement la conception de modules et de sous-systèmes spécifiques (tels qu'une interface graphique). Comme l’a dit l’autre réponse, il vous sera difficile de vous battre contre le ou les cadres choisis.
Plus généralement, évitez toutefois de laisser un seul cadre ou une seule technologie dicter ou «donner une vue d'ensemble» de votre architecture système globale. Cela n'encourage pas la plupart des frameworks d'application générale, donc si vous vous retrouvez à écrire tout votre système autour d'un framework, vous faites probablement quelque chose que les auteurs de ce framework n'avaient pas l'intention de faire.
Vous utiliserez probablement de nombreux cadres différents pour résoudre différents problèmes; Au fur et à mesure que votre système devient plus complexe, vous devez faire attention à ne pas construire The Big Ball Of Mud . Dans la mesure du possible, gardez votre système modulaire et faiblement couplé. Il serait peut-être préférable de garder certains frameworks derrière des abstractions en écrivant des wrappers et des adaptateurs qui "cachent" les flux de travail spécifiques au framework à l'écart d'autres composants. Les boîtes à outils d'interface graphique ont tendance à ne servir que la fonctionnalité d'interface graphique frontale, de sorte que ces modules d'interface graphique doivent être tenus à l'écart du reste du système.
Les frameworks d'usage général (tels que les frameworks d'interface utilisateur, les frameworks de couche de données, etc.) n'existent pas pour prescrire l'architecture complète de votre système - tout au plus, ils pourraient prescrire la conception d'un composant ou d'un module; Par exemple, certaines technologies d'interface graphique sont adaptées à des modèles particuliers de MV *.
L’architecture globale de votre système doit être principalement dictée par les besoins de votre entreprise . Vous pouvez vous retrouver fortement penché sur un outil particulier (par exemple, un middleware de messagerie ou un framework ORM) afin de tout relier, mais si vous avez encapsulé le framework dans une abstraction telle qu'une classe de 'service', vous Vous êtes moins susceptible de vous retrouver contraint par ce cadre lorsque vous rencontrez ses limites.
Essayez de garder les éléments suivants à l’esprit pour votre conception grand format:
la source
Oui, vous devriez vous en tenir aussi étroitement que possible à ce que le cadre "vous dit" de faire.
La raison en est simplement que plus vous vous en tenez à la façon de "penser" des cadres, plus vous pourrez facilement parler à d'autres développeurs de vos problèmes / idées qui utilisent également ce cadre.
Vous augmentez l'interopérabilité et la facilité d'utilisation pour les autres personnes qui l'utilisent plus tard. Vous comprendrez et incorporerez mieux des tutoriels ou des solutions communes si vous vous en tenez à la philosophie sous-jacente de tout ce que vous utilisez.
La seule bonne raison pour laquelle je peux penser à la raison pour laquelle vous voulez "casser" le cadre est que vous avez absolument besoin de quelque chose qu'il ne peut pas fournir en raison de sa configuration / application "par défaut" des principes. Mais alors, ce ne serait peut-être pas le bon cadre pour commencer.
Fondamentalement, cela peut s’appliquer également à d’autres décisions. Vous devez utiliser la langue que vous utilisez aussi près qu'il est destiné à être utilisé, car il rend les choses plus facile si vous parlez la même langue que tout le monde.
la source