Lorsque je crée une application à partir de zéro, dois-je commencer par le modèle orienté objet (OO) ou le modèle entité-relation (ER)?
Lorsque je crée une application à partir de zéro, dois-je commencer par le modèle orienté objet (OO) ou le modèle entité-relation (ER)?
Réponses:
Vous voudrez peut-être essayer d'observer le principe de retarder les décisions architecturales aussi longtemps que possible. L'idée est que vous en saurez plus à l'avenir sur votre domaine problématique que vous ne le faites actuellement - donc, toutes les décisions que vous prenez aujourd'hui sont suspectes.
Un autre bon principe pour associer cela pourrait consister à essayer d'abord les parties les plus risquées de vos besoins - la pensée étant que si vous faites les parties faciles, alors trouvez que les parties risquées vous déplacent dans une direction différente, vous n'avez pas pour refaire les pièces faciles. Risque ici, ce qui signifie des choses dont vous ne savez pas comment les faire.
Compte tenu de ces deux, et étant donné que j'essaie souvent d'approcher les choses du point de vue OO, vous pouvez essayer de commencer par un modèle OO des parties les plus risquées de votre application, et mettre en œuvre le moins de code possible qui puisse fonctionner et qui satisfasse le exigences risquées. Ensuite, commencez à étendre votre modèle OO au besoin pour ajouter les fonctionnalités dont vous aurez besoin. Pendant tout ce temps, vous pouvez complètement retarder votre décision d'utiliser SQL ou NoSQL ou des fichiers plats ou un stockage cloud ou autre ... et vous finirez par trouver que vous ne voulez pas du tout relationnel (ce qui évite la nécessité d'un modèle ER).
Le modèle ER dicte la persistance des données de l'application et le modèle OO décide de la façon dont ces mêmes données seront stockées en mémoire ou pendant l'exécution de l'application. Ainsi, la conception de schéma de base de données (modèle ER) et la conception de structure de classe (modèle OO) sont des considérations de conception liées et peuvent généralement être envisagées simultanément. En fait, si vous utilisez un outil de cartographie relationnelle-objet (ORM) , votre modèle ER et votre modèle OO peuvent être identiques. En d'autres termes, vos classes (modèle OO) peuvent être annotées de telle manière qu'elles spécifient elles-mêmes le modèle ER.
Avant de concevoir, cependant, assurez-vous d'avoir une très bonne idée des exigences réelles du logiciel, à quoi il sera utilisé, comment il sera utilisé et qui l'utilisera. De nombreux développeurs commencent à réfléchir aux décisions de conception avant de bien comprendre les besoins auxquels le produit doit répondre et se retrouvent avec une conception qui ne convient pas au véritable objectif de l'application.