Partage
  • Partager sur Facebook
  • Partager sur Twitter

Principes de conception??

13 janvier 2020 à 17:45:26

Bien le bonjour :)

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 

Merci d'avance.

  • Partager sur Facebook
  • Partager sur Twitter
13 janvier 2020 à 17:49:47

S.O.L.I.D.
  • Partager sur Facebook
  • Partager sur Twitter
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
13 janvier 2020 à 18:00:48

Salut, respecte un max la loi de Demeter ainsi que les principes SOLID et tu devrais y arriver.

C'est souvent ce que tu liras sur Internet mais c'est faux, tu vas te foiré a un moment.

Mais c'est normal, on se foire tous a ce niveau là et c'est pas un drame.

La différence entre un junior et un senior, c'est que le senior s'en rendra compte plus tôt.

Experimente, tente et amuse toi surtout.

Donne toi des défis du genre nombre max de lignes, nombre max d'intrication a->b->c etc.

-
Edité par necros211 13 janvier 2020 à 18:01:07

  • Partager sur Facebook
  • Partager sur Twitter

Architecte logiciel - Software craftsmanship convaincu.

13 janvier 2020 à 18:38:34

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.

Une vielle prose: https://www.developpez.net/forums/d1549658-7/general-developpement/langages-programmation/pourriez-expliquer-l-oriente-objet/#post8426069

Sinon, tu as le livre de koala01. Et le cours en préparation sur Zeste de Savoir commence à aborder ces notions dans la béta.

-
Edité par lmghs 13 janvier 2020 à 18:43:24

  • Partager sur Facebook
  • Partager sur Twitter
C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
13 janvier 2020 à 21:57:51

Réfléchir avant de programmer.

Envisager plusieurs solutions.

Faire simple.

  • Partager sur Facebook
  • Partager sur Twitter
13 janvier 2020 à 22:53:39

Ligade a écrit:

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.

-
Edité par gbdivers 13 janvier 2020 à 22:56:28

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2020 à 6:33:09

Le projet de 2ieme année, c'est pas des mois à l'avance, le client n'est pas embêtant et ne change pas d'avis :-)

En général la difficulté des étudiants c'est de lire, comprendre le sujet et déterminer ce qui est important dans ce qui est demandé. 

-
Edité par michelbillaud 14 janvier 2020 à 6:35:15

  • Partager sur Facebook
  • Partager sur Twitter