39 votes

Modèles de conception - Astronaute Architecture

D'abord, n'hésitez pas à proximité, si elle n'est pas appropriée, car c'est mon première fois sur un Débordement de Pile.

Peut-être que ma question est de nature similaire à celui-ci: utilisez-vous des modèles de conception?

Les programmes que j'écris sont de petite taille de 50 à 75 K des programmes en ligne pour la plupart à l'aide de Windows Forms et ASP.NET. Ces programmes sont GUI intensif permettant la conception et la mise en page de divers graphiques et de traitement graphique.

Je me considère bon à la programmation orientée objet et pratiqué à l'équilibrage de la programmation orientée objet et les procédures classiques des méthodes pour créer des code maintenable.

Le problème vient quand je considère les modèles de conception. Liés à thread a un commentaire intéressant que les modèles de conception peuvent être utilisés, mais pas de façon intentionnelle. Quand je veux intentionnellement utiliser un modèle de conception (dans la conception de mon programme), il se sent comme je vais au-dessus et au-delà de ce qui est nécessaire, que je suis dans le domaine de "l'architecture de l'astronaute" donc je revenir à mes méthodes traditionnelles et tout se passe le long de douceur (normalement).

Prendre le modèle MVC comme un exemple. Si je veux appliquer ce modèle à l'aide de Windows Forms ou ASP.NET (Visual Studio 2005) alors je dois écrire un "Cadre", et l'écriture des cadres semble être plus d'ennuis que cela vaut la peine pour la taille de l'application.

Peut-être que mes applications sont trop petits pour justifier l'utilisation de certains de ces modèles. Peut-être que je ne connais pas les modèles assez bien ou le besoin de les étudier de plus.

Quelqu'un d'autre l'expérience de cette "architecture de l'astronaute" sentiment?

Comment allez-vous intentionnellement à l'aide de modèles de conception sans passer "par-dessus bord?"

39voto

nezroy Points 2413

Quand il s'agit de petites applications de cette nature, en général, je vous inquiétez plus au sujet des anti-modèles que je fais sur les modèles de conception. Cela dit, c'est vraiment deux côtés de la même médaille: la puissance d'un modèle de conception pour moi est d'être familier avec eux afin de reconnaître les moins évidents avantages et les inconvénients de quelque soit la solution que je suis en train de penser. J'ai rarement si jamais sortir de ma façon de réellement mettre pleinement en œuvre complet d'un modèle de conception (à moins que j'ai réellement besoin de toutes les fonctionnalités); cependant, j'ai souvent sauvé moi-même beaucoup de l'avenir de reconnaître le chemin que je suis sur et en regardant les pièges courants et les inconvénients de cette solution, qui je peux alors vérifier à l'encontre de mes futures utilisations pour voir si ça va être une préoccupation de premier plan pour moi ou pas. Ainsi, la puissance d'un modèle de conception est que vous pouvez facilement prédire l'avenir les conséquences de votre solution actuelle à l'encontre de vos besoins, sans se soucier de ce que vous pourriez manquer des moins-que-mise en garde évidente ou cas spécial que vous n'avez pas considérés.

32voto

S.Lott Points 207588

"Comment allez-vous intentionnellement à l'aide de modèles de conception sans passer "par-dessus bord?"'

Facile.

  1. Ne pas confondre un framework MVC avec l'effort de développement des modèles.

  2. Reconnaître que chaque chose que vous faites a été fait avant (par vous ou par quelqu'un d'autre).

  3. Lorsque vous répétez quelque chose-n'importe quoi -- vous êtes un modèle.

  4. Lorsque vous répétez la conception pour n'importe quoi, peu importe comment petit, vous êtes après un modèle de conception.

  5. Lorsque vous remarquez vous-même la répétition de quelque chose, donner un nom à cette chose, vous êtes répéter. Regardez, vous avez découvert et nommé votre premier modèle de conception. N'importe comment.

  6. Lorsque vous avez nommé un modèle de conception, vous pouvez alors pensez à quand vous l'utilisez, pourquoi vous l'utilisez, ce qu'elle n'en résout et quelles sont les conséquences de son utilisation. N'importe comment.

  7. Chaque pièce de l'apprentissage qui consiste à répéter des éléments de conception" est les modèles de conception. N'importe comment.

Chaque boucle. Tous les si-déclaration. Chaque boîte de dialogue. Chaque ouverture de fichier. Ce sont tous des modèles de conception.

La plupart font partie de la langue et évident de la langue des noms propres. "SI", "OUVERT", etc.

Quelques modèles de conception sont plus grands qu'un seul état, mais plus petit que l'ensemble de la MVC. Ceux qui sont intéressantes. Les apprendre. Acheter un livre. La lire. MVC n'apparaîtra pas dans la plupart des modèle de conception de livres, parce que -- bien -- c'est trop compliqué et trop difficile à appliquer.

Ne commencez pas avec MVC. Commencer avec autre CHOSE.

9voto

Frank Schwieterman Points 13519

"L'Architecture des astronautes" sont ceux qui passent beaucoup de temps à discuter de la conception, mais n'est pas réellement faire de lui arriver.

J'aime les démarches de conception des modèles présentés dans le livre "Refactor à des Schémas". Ici, les modèles ne sont pas quelque chose que nous investir en direct, mais quelque chose que nous faisons pour réduire la complexité de code seulement après qu'il est. Parce que cette approche nécessite le code fonctionnel pour commencer, et sélectionne les refactorings basé sur ce qui pourrait la rendre plus facile à étendre ce code afin de répondre à une exigence particulière, sa très axée sur les résultats.

7voto

le dorfier Points 27267

Presque tous les modèles de conception appropriés, une fois appliqués, devraient permettre une simplification. Si vous rendez les choses plus complexes, vous vous dirigez probablement dans la mauvaise direction pour votre problème spécifique.

6voto

ctacke Points 53946

MVC, dans et de lui-même, n'a pas besoin de ce que vous écrivez n'importe quel cadre. Il signifie simplement que vous continuez votre point de vue, le contrôleur et le modèle de code séparé. J'utilise MVC (ou MVP), même pour de simples applications mobiles que j'ai trouvé la séparation du contrôle extrêmement avantageux lors de l'écriture de tests (pour ne pas mentionner lors de la modification de l'Isu).

Ma conjecture est que vous ne faites pas beaucoup d'unité ou des tests d'intégration pour l'instant, alors c'est pas près d'être aussi évident comment bien faire cette division contribue à la qualité et la lisibilité de votre code.

Je vous conseille de vous lire Fowler couverture de l'INTERFACE utilisateur architectures.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X