Logiciel de conception de l'architecture des problèmes
Je code depuis un certain temps maintenant et a appris plusieurs langages de programmation. J'ai programmé une multitude de petits outils et de ces. Je pense que je maîtrise la loi de codage lui-même très bon si j'ai par exemple pas de problèmes avec la syntaxe, j'ai eu une assez bonne compréhension de ce qui se passe sous le capot (raisonnable assembleur de la connaissance) et ainsi de suite.
Mon gros problème est: je ne peux pas concevoir de plus grand/plus d'applications complexes. J'ai appris les principes de la programmation orientée objet, les design patterns, quelques notions de base de programmation lisp et tous les trucs que j'ai pu trouver et pensé qu'il pourrait m'aider avec mon problème.
Mais peu importe ce que j'essaie, depuis combien de temps j'essaie: je ne peux tout simplement pas l'obtenir. Mes dessins semblent toujours mal pour moi en quelque sorte. Cause que je n'ai jamais aspiré à travers un projet plus important, je suis un peu jamais satisfaits de la structure de mon programme.
Avez-vous eu un problème similaire? Comment avez-vous réussi à le résoudre? Vous avez tous les conseils pour moi sur la façon d'aller sur?
- c'est un typique programmers.stackexchange.com question
Vous devez vous connecter pour publier un commentaire.
Je pense que l'expérience est un facteur clé ici. Chaque conception échoue à un certain point, alors c'est à vous de l'améliorer et d'apprendre de vos erreurs.
À mon avis un bon logiciel de conception n'est pas quelque chose que vous pouvez apprendre par la lecture de quelques livres.
La conception elle-même est un processus itératif en activité. Vous commencez avec une certaine conception puis dans les phases de vous rendre meilleur.
Design n'est pas à propos de achiveing la perfection, ce qui ne peut même pas être réalisé dans la plus grande application.
Le Design est tout au sujet de faire de bonnes soldes et les compromis qu'à la fin, de fournir un bon, solide et facile à administrer de l'application, qui est conforme aux exigences.
Vous n'aurez jamais 100% de l' droit sur tous les côtés.
Lire quelques bons livres sur le design/architecture ne vous fera pas directement une star du rock sur la question, mais il va certainement vous donner la outils que vous pouvez utiliser pour améliorer et perfectionner vos compétences.
Voici quelques exemples de livres:
de réalisation de Logiciels
Logiciels Orientés Objets Réutilisables
L'Architecture
Applications pour l'Entreprise
(PRO-Développeur)
Exemples dans .Net
Bien sûr, l'expérience pratique compte aussi.
Quand vous dites conception plus grands/les applications les plus complexes, je suppose que ce que vous avez à l'esprit est de savoir quelles sont les appelle généralement des "Enterprise applications à grande échelle".
Vous pouvez consulter cette question qui parle de divers critères qui permettent d'essayer et d'objectiver mais qu'est ce que fait une demande d'une entreprise à l'échelle de l'application.
De parler de ces préoccupations,
De petites applications n'ont pas forcément beaucoup de ces préoccupations qui leur sont applicables.
Même avec les applications de l'entreprise, avec par exemple un grand ensemble de préoccupations qui doivent être traitées, ce qui la différencie de la conception est ce que des préoccupations ont plus d'importance. Aussi, en cas de conflit de préoccupations, dont l'un est choisi sur les autres.
Lors de la conception de votre application, si vous essayez de garder ces préoccupations à l'esprit et de prendre des décisions de conception sur la base de ces préoccupations, alors ce sera une façon d'essayer d'avancer dans la bonne direction.CEPENDANT, c'est plus facile à dire qu'à faire. Bien qu'apparemment simple à la recherche de la liste, l'obtention d'un droit de dessin est quelque chose d'architectes chevronnés perdre le sommeil /les cheveux /la vie et est habituellement NOTOIREMENT difficile à obtenir surtout pour un débutant.
Certaines de ces décisions sont des choses apprises que par l'expérience. Dans mon expérience personnelle, ce qui a grandement aidé moi a été de travailler avec et sous la supervision des architectes expérimentés. Pour être en mesure d'apprendre et de tirer profit de leurs connaissances et de leur expérience vous apprend des choses pas de livre /blog.
Franchement, vous êtes totalement à la mauvaise personne pour juger. Comment savez-vous vraiment que votre conception est erronée? La seule véritable façon de dire que le design est mauvais, c'est si votre application ne marche pas faire ce qu'il était censé faire.
Si vous voulez avoir une certaine validation de votre conception, alors je vous suggère de demander à quelqu'un qui a travaillé sur des projets de taille similaire qui vous avez à l'esprit et demandez-leur de regarder votre conception et révision de il - de leur point de vue. Que va vraiment vous donner une bonne idée de l'endroit où votre design est vraiment à.
Malheureusement, certains de la véritable complexité de la conception d'un enterprise application suite à partir d'une variété de choses qui sont tout simplement pas possible de simuler le contraire. Certains d'entre eux peuvent être contraintes organisationnelles par exemple, mon client CTO ne pas utiliser de permettre l'utilisation de la technologie X ) pour d'autres, comme nous avons besoin d'intégrer notre application avec la maison grandi MS Access application que l'un de nos fournisseurs est de l'utiliser. De telles complications, à l'application et à son design est quelque chose que vous avez de l'expérience et il y a souvent beaucoup à apprendre d'elle.
Pour obtenir une telle expérience, vous avez à travailler dans ce genre d'endroits qui offrent ce genre d'occasion. Généralement, ce que j'ai vu, c'est que plus l'entreprise est grande, plus compliqué de leur environnement et qui donne le plus de possibilités pour des scénarios complexes pour surviennent
Premier coup d'oeil à Oncle Bob Martins principe chaque modèle de conception couvre quelques-uns de ces principes, Prendre une grande attention à La Principe Ouvert Fermé toujours nous ne le faisons pas, mais par l'augmentation de l'expérience rend plus facile de le faire.
Je pense que d'essayer de résoudre et ensuite le refactoring est une bonne approche, il aide à trop de problème à être plus sensibles et ont une solution et nous rend libre de stress à la façon de le résoudre.
Essayer de le prendre, étape par étape, ne pas essayer de conception tout à la fois.
Essai et d'erreur, vous y arriverez. Après quelques projets, vous aurez assez d'expérience pour obtenir de droit la première fois (même si pour beaucoup il n'y a pas de "bonne" conception).
Souvenez-vous faire de votre conception aussi simple que possible, à l'aide d'un dessin compliqué à résoudre un problème simple n'est pas une bonne chose.
D'ajouter un peu plus de calendrier de la sagesse: "Don't repeat yourself" et "Garder les dépendances d'un minimum". Ces deux sont souvent contradictoires, cependant.