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: