Bonjour, bonsoir je vais me présenter un peu comme c'est la première fois que je vais poster un message sur un forum.. j'espère que je ne vais pas vous faire perdre votre temps car j'ai vu que ça rageait un peu si le post n'étais pas au bon endroit, Bref j'ai 30ans est ça fait une 5 à 6 que je programme tout seul dans mon garage. J'ai commencé par le C ou je passais mon temps à créer des applications éducatifs, et des petits éditeurs 2D, de fil en aiguille ils ont sortie la SDL2 donc tout réapprendre lol et mon frère m'a payer un bouquin sur le C++, ou franchement je m'éclate mais depuis un an je stagne, et pourtant j'ai depuis une collection de bouquin sur le sujet et toute les aides que je trouve sur les forum; En gros ce que je recherche c'est cours sur la POO que j'arriverai à capter, car quand je lis les forums beaucoup de personne se contredisent donc pour un noob imginaient que dépite un peu. Bon ben y'a plus de place alors je vais m'arrêter là merci d'avance!
- Edité par Bl@ck Leg 88 30 mars 2019 à 14:58:45
Que l’obscurantisme retourne à l'obscurité.... Tchao
La POO, c'est d'abord et avant tout, une façon de penser à la conception de ton programme. A première vue, elle peut laisser penser qu'elle est difficile, mais en fait, pas tant que ça, pour peu qu'on l'aborde sous le bon angle. La plupart des cours vont te présenter la chose sous le regard de l'encapsulation des données, et si tu suis cette voie, tu n'arriveras à rien et pour cause, ça n'a aucun sens. La véritable approche consiste à penser en terme de service, un peu comme une pièce de théâtre, les acteurs jouent leurs rôles, les techniciens, machinistes font évoluer les lumières, les décors pour accompagner le bon déroulement de la pièce...
Le point fondamental, c'est la notion de service, un objet doit rendre des services, comment il les rends, je m'en fous, c'est son problème, pas le mien...
Le souci c'est que j'ai fais trop de programmation dit procédurale en electronique et je n'arrive pas du coup à comprendre le concept, enfin si quand je suis dans mes bouquin c'est magique, tout est beau et dès que je me retrouve devant mon Pc c'est la page blanche de l'écrivain. Et tu as tout as fait cerné mon problème, ça me parle déritage d'encapsulation de polymorphysme... Et tout de suite ça me fait des fichiers sources de partout et comme je suis pas mal magnaque sur les bords, je me dit que ça ne doit pas être la bonne solution; Pis la où j'habite va trouver quelqu'un qui pourrai me conseiller sur l'approche à prendre.
Que l’obscurantisme retourne à l'obscurité.... Tchao
Tu n'as pas pu en faire plus que moi ou d'autres Le secret c'est de penser en terme de service, Je ne crée pas une classe pour le plaisir, je la crée pour qu'elle assure un service dont j'ai besoin dans mon programme. Si je pense services, j'ai un fil clair, un service à rendre => une classe
Après vient le polymorphisme et tout le toutim, l'encapsulation par exemple, si je pars bille en tête, alors oui c'est un problème, si je pense service, elle devient naturelle, ce que j'encapsule ce n'est pas une donnée quelconque, ce sont les variables qui vont me servir à rendre mon service, la tambouille interne dans laquelle personne n'à a venir mettre son grain de sel C'est privé, c'est chez moi, tu touches pas
Yes bon ça me rassure tout ça, c'était bien l'idée que je m'étais fais quand je me suis lancé dans le C++, le un service -> une class c'était tellement logique, mais comme tout ce que j'ai pu voir les mecs avais 5 fichiers d'entête alors que j'en avais une bonne vingtaines je me suis trpo remis en question pour rien et là c'est tout plein de nœud dans ma tête, je vais démêler tout ça en repartant sur des petits programmes, un grand merci à toi et si tu avais un pti tuto cool pour m'imager tout ça je cracherai pas dessus..
Que l’obscurantisme retourne à l'obscurité.... Tchao
Le bon nombre de fichiers header, c'est celui qui va bien Un petit détail, plus important qu'il ne parait, on passe beaucoup plus de temps à relire son code qu'à l'écrire. Tout ce qui peut aider à relire son code est donc bénéfique. Avoir beaucoup de fichier, n'est pas un problème. Le tout, c'est que tout soit bien rangé
Oh oui ça je vois très bien ce que tu veux dire quand je faisais encore que du C et que je faisais une longue pause 2-3 semaines sans coder et que j'ai pas pensé à commenter et je l'avais dans l'os
Que l’obscurantisme retourne à l'obscurité.... Tchao
Je rajouterai que beaucoup d'approches présentées confondent factorisation de données et fausse encapsulation avec une vraie pensée objet -- qu'elle soit adapté ou non à un problème particulier, on est pragmatiques en C++.
Dans le monde procédural, on a nos données, on les agrège et on les traite. De nombreux mauvais cours OO vont faire la même chose avec des classes en foutant toutes les données en privée, et en collant getters et setters à tour de bras. Quelqu'un de censé ne peut que se demander ce qui change vraiment à ce qui était fait avant pour au final ne voir aucune différence notable et utile. Et c'est vrai. Ce n'est pas coller les données ensemble l'objet. L'OO, c'est trouver un délégué et lui demander de faire quelque chose pour nous. La fameuse pensée orienté services.
Concernant les livres, j'aime bien /Designs Patterns tête le première/, traduis chez je ne sais plus qui. Ca part de divers problème et montre comment agencer des objets pour les résoudre proprement.
Côté exercice qui met l'accent sur les choses pertinentes, il y a le "javaquarium" (c'est dire si l'OO est assez agnostique) que l'on trouve sur le site Zeste de Savoir -- après on pourrait critiquer que l'objet n'est pas l'approche la plus pertinente ici, mais c'est un autre sujet.
Oui et non, le langage laisse une grande liberté quant à l'implémentation (y compris la possibilité de se tirer une balle dans le pied), les choix que je vais faire seront peut être différents de ceux que fera un autre programmeur, parce que nos expériences respectives sont différentes, et nos "domaines de confort" sont différents aussi, je vais peut être choisir du polymorphisme paramétrique (des templates) là où un autre programmeur choisira une autre voie. Ce qui importe, c'est le résultat, est ce que mon programme fait ce qu'il est censé faire? est ce qu'il le fait bien? Au final, c'est ce qui compte vraiment. S'il peut y avoir de la divergence sur des points de détails, il n'y en a quasiment pas sur les grandes lignes.
De toutes façons, la conception/programmation orientée-objets a beaucoup de mérites, mais pas celui d'être une solution miracle applicable à toutes les situations.
Dans les points importants
> est ce que mon programme fait ce qu'il est censé faire? est ce qu'il le fait bien?
j'ajouterais : est-ce que le type qui relira le programme derrière moi sera content de trouver du code facile à comprendre, ou aura envie de me pousser dans l'escalier.
Sachant que le type en question, ça risque d'être moi même dans quelques semaines quand je me serai rendu compte qu'il y a comme qui dirait un résultat inattendu, voire légèrement incorrect.. "Pas grave, c'est juste pour moi, qu'il disait".
- Edité par michelbillaud 1 avril 2019 à 16:53:48
Besoin de conseil, je stagne sévère..!
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Que l’obscurantisme retourne à l'obscurité.... Tchao
Que l’obscurantisme retourne à l'obscurité.... Tchao
Que l’obscurantisme retourne à l'obscurité.... Tchao
Que l’obscurantisme retourne à l'obscurité.... Tchao
Que l’obscurantisme retourne à l'obscurité.... Tchao