Je suis un étudiant de deuxième année et je vais bientôt effectuer, en binôme, mon projet de fin d'étude concluant ma formation. Un projet assez ambitieux, nécessitant une réflexion préliminaire plutôt avancer. Celui ci sera principalement codé en C++ d'où le fait de poster ici.
Ma question est la suivante :
Pourriez vous m'éclaircir sur la philosophie à adopter en programmation (poo), m’énumérer les principaux principes de conception, de lois que je devrais essayer d'appliquer et peut être les erreurs classiques qu'il faudrait éviter ?
Google est mon ami, oui, mais c'est toujours plus sympa d'avoir un condensé de différents points de vu et de conseils de personnes sachant de quoi elles parlent
Je rajoute que l'on n'hérite pas pour factoriser les données, mais pour factoriser les comportements. Il ne faut pas confondre POO et bases de données -- et beaucoup de cours se fourvoient à se sujet.
Un projet assez ambitieux, nécessitant une réflexion préliminaire plutôt avancer.
necros211 a écrit:
tu vas te foiré a un moment.
Plus que la conception, ce qui me semble important, c'est la méthode de développement.
L'idée est qu'une conception résiste assez mal au temps. On fait des choix plusieurs mois à l'avance et on réalise lors de la progression du projet qu'on a fait des erreurs.
C'est pour cela que les méthodes Agile sont assez populaires. L'idée est que l'on puisse changer d'avis sur une conception, faire évoluer les choses. Et cela implique plusieurs choses :
- ne pas perdre trop de temps avec une super grosse conception au début de projet
- faire les choses de facon incrémentale, y compris la conception. Avoir des distribuables intermédiaires, de façon à savoir si le projet va dans la bonne direction ou pas.
- prévoir dans la méthode qu'il y aura des changements, donc faire en sorte dès le début que ces changements soient le moins coûteux possible. En particulier en écrivant des tests de régression. (Le TDD est une approche intéressante).
L'intérêt d'une bonne conception, c'est (en autre) de réduire les coûts de maintenance lors des évolutions du projet. Le problème avec les projets d'études, c'est que ce sont des projets jetables et donc sans maintenance. Une conception faite avec le cul ne posera pas tant de problème que cela, puisque le projet ne sera pas maintenu sur le temps. En suivant une approche Agile, l'intérêt (de mon point de vue) est de s'imposer de la maintenance pendant la phase et développement et donc d'être confronté pendant cette phase aux erreurs de conception. Et donc de les corriger très tôt.
Ne perdez pas trop votre temps a faire des semaines de conception en début de projet.
-----
EDIT : mon conseil n'est pas incompatible avec le conseil de michel "réfléchir avant de programmer". Il s'agit ici de ne pas foncer bêtement tête baissée dans le projet, sans reflexion, mais de reconnaître les limites d'une réflexion quand on n'a pas de recul sur le projet. L'approche Agile ne consiste pas à ne pas réfléchir, mais a réfléchir aux problèmes quand il est opportun de le faire, pas en début de projet uniquement.
Architecte logiciel - Software craftsmanship convaincu.
Discord NaN. Mon site.