Exactement chaplin, c'est pour ça que connaitre "les bases UML" (donc au minimum les notations) me semble indispensable.
Version imprimable
Exactement chaplin, c'est pour ça que connaitre "les bases UML" (donc au minimum les notations) me semble indispensable.
Ha ha... je l'attendais celle la c'est pourquoi j'ai rajouté "graphique" à outil dans mon post précédent.Citation:
Envoyé par Aos
moi j'ai appris l'héritage avec des exemples concrets comme Animaux->Mammifère->ect...Effectivement je suis d'accord avec toi, il y a plusieurs méthodes d'apprentissage et c'est pourquoi UML n'est pas indispensable pour programmer objet.(et c'est tout ce que j'ai dit)
aprés tu peux dessiner des carrés, des rectangles ou ceux que tu veux si ca te permet de mieux comprendre. certains ont besoin de dessins pour comprendre et d'autres non. (j'espère que j'ai pas besoin d'en faire un là ;) )
Ensuite tu apprends l'uml parce que les symboles sont normés et que tous ceux qui connaissent l'um connaissent cette convention....
A propos de gestion de mémoire, il est toujours interessant de comprendre les mécanismes d'allocation de mémoire, qui est la bête noir lorsqu'il faut faire des applications distribuées.
J'ai trouvé un projet de Garbage Collector pour Delphi, comme quoi il y a des gens qui s'interessent au sujet.
Salut,
Interessant ce garbage collector.
Moi j'utilise exclusivement des interfaces afin de bénéficier de la libération automatique.
Bonjour,
Merci à tous pour vos réponses.
Merci Cl@udius
je possède déjà Delphi 7 Studio et j'ai pu voir à la Page 18 qu'il conseillait de prendre le livre D'Hugues Bersini L'orienté Objet
Quand pensez-vous ?
Merci pour vos message anapurna, guillemouze, Kaféine, chaplin, Aos, peter27
Si vous avez d'autres livres à me recommander je suis preneur.
L'exemple concret "Animal->Mammifère->..." ne suffit pas toujours.
Dans mon cas, le diagramme de classe m'a permis de comprendre facilement quelques principes de POO du genre l'encapsulation. En simplifiant un petit peu on peu considérer que la classe (le fameux rectangle) est en quelque sorte une grosse boite et que les autres boites ne voient pas son contenu. Après tu peux mettre une petite boite dans une boite plus grosse et cette petite boite verra forcément le contenu de la grosse boite vu qu'elle est aussi dedans.
On devrait lancer un sondage lol
"pour ou contre les principes de base de l'uml dans l'apprentissage de la poo"
A priori, y'en a qu'un seul qui y est opposé pour l'instant ;)
Il y a même Microsoft qui s'y est mis 8O.
En plus des livres, une formation sur Delphi n'est pas un luxe, car un échange avec un formateur peut énormement enrichir sur certains sujets et gagner un temps énorme sur des projets, car c'est illusoir de vouloir de tout maîtriser.Citation:
Si vous avez d'autres livres à me recommander je suis preneur.
Il suffit de voir les documentations sur .NET ou Java, ce sont des encyclopédies, alors en Delphi il ne faut pas rougir, car l'EDI au fil des versions s'est enrichi de fonctionnalités.
De plus, les conférences Codegear fournissent des informations interessantes. "Perdre" quelques heures ou quelques jours peut faire gagner des semaines entières parce qu'on a planché sur un problème qui est "traité" lors d'un sujet. Et oui, le hasard fait souvent bien les choses. Beaucoup d'éditeurs l'ont compris, mais à priori, tous les informaticiens n'en ont pas suffisament conscience.
Il faut bien se rendre compte qu'un EDI est efficace que si on en a une connaissance approfondie, et la connaissance à un prix surtout lorsqu'il faut être productif.
Le POO sous Delphi n'est pas difficile pour l'apprendre une journée peut etre moins te suffit ce n'est qu'une façon pour taper et organiser le code pour quelqu'un qui maitrise le procedural seulement il y a quelque notions qu'il faut ajouter au jargon peut etre qu tu veux apprendre le fonctionnement des composants VCL ,Pour l'UML je ne connais pas trop mais tout ce que je que la theorie est une chose et la pratique est une autre chose ah losque je pense a ces trucs qui consomme plus des norones que des octets :cry:
Justement, lors d'un CodeRage, il y avait cette présentation programmation préventive qui fait un tour d'horizon sur la programmation objet entre autre.
C'est drôle, en regardant la vidéo une deuxième fois, je me souvenais plus de l'exemple traité. Mais l'approche est très pédagogique, et quand je voyais certain bout de code j'avais envie de sauté au plafond, normal c'était fait exprès pour montrer les pièges dans lesquels on peut tomber.
Il y avait bien entendu d'autres présentations fort interessantes. Celle ci est particulièrement interessante pour le sujet traité ici parce qu'elle montre les différentes étapes d'un passage d'une programmation de type procédurale à une programmation objet, sans oublier la méthodologie (très important).
Si tu fais ça, tu n'apprends que la syntaxe OO de Delphi. Tu deviendras un utilisateur de composants tout fait, mais tu ne feras pas réellement de la POO.
La POO est avant tout une façon de penser, un art de modéliser. Dans une modélisation OO, on modélise en termes d'objets d'abord concrêts, qui représentent des entités physiques existantes avec des comportemments précis. Puis on généralise pour organiser ces entités entre-elles.
Enfin, les fonctionnalités de l'application découleront d'un ensemble d'objets indépendants (et réutilisables dans un autre contexte) qui vont collaborer et inter-agir entre eux.
A l'opposé, dans une modélisation impérative, on raisonne en termes de fonctionnalités, et modules fonctionnels et de "module de gestion de telle fonctionnalité ou sous système".
L'objet c'est un état d'esprit qu'il faut acquérir pour l'utiliser efficacement. Une fois qu'on a acquis cette façon de raisonner, le langage importe peu et on peut effectivement apprendre les spécificités syntaxiques rapidement (encore que certains langages comme Delphi ont des concepts bien à eux (par exemple les constructeurs virtuels)).
En revanche, si tu apprends la syntaxe sans maîtriser la philosophie, ça conduit vite à de grosses catastrophes. Très vite, tu fais de l'héritage d'implémentation : Tu as trois classes, un comportement commun au trois, donc tu crées un ancêtre pour factoriser le code. Puis tu as un autre comportement à ajouter, commun aux deux premières mais inutile dans la troisième. Tu le mets qu'en même dans l'ancêtre pour ne pas l'écrire deux fois.
Sauf que finalement dans la troisième, il ne le faut surtout pas, donc tu modifies l'ancêtre pour faire un teste et désactiver le comportement dans le cas de la troisième classe.
Et tu dois en ajouter une quatrième, et là tu n'y comprends plus rien...
Comment tu peux dire ça si il arrive seulement a bien comprendre et maîtriser ce huge de composants Delphi et quand je disais comprendre ce n'est pas seulement les propriétés, détails techniques, utilisations...etc. mais l'héritage des objets,recensement , owner, scoupe donc il sera un balaise en informatiqueCitation:
Envoyé par Franck SORIANO
conquérir un simple Tlist implémenté partout me donne un grand coup vers l'avant au lieu de passer son temps avec des exemples abstraites qui n'ont rien avoir le quotidien d'un pascalien on peut citer cet exemple a quelqu'un qui débute la POO en PHP par exemple
Plutôt que de reprendre ce que chaplin a dit accepte leCode:mammifère->homme
Pour le reste tu n'apporte pas du nouveau tes paroles trouveraient des échos chez les devloppeurs qui ont apprirent la poo une façon académique pas chez un débutant qui veut rendre a tout prix un TEdit transparent par exempleCitation:
Envoyé par chaplin
tout ce que je viens de citer et valable pour les débutants,autodidactes le débat commence plutôt ici dans quelle contexte et jusqu'au il peut aller il faut d'abord avoir une repence sur ces questions avant de lui proposer quoi que ce soit
pour l'emploi il faut une formation dans une école d'ingénieur et sans vouloir le décourager je dirais qu'il est impossible d'apprendre la POO tout seul surtout ta expérience n'est pas certifiée
pour soi même tu peux ecumer des dizaines de sites sur le net www.delphibasics.co.uk
c'est normal pour les gens qui ont des acquis et veulent affiner leur expérience là cette question ne se pose plue l'UML sera une bonne idée.Citation:
Envoyé par Franck SORIANO
demander a un débutant d'apprendre UML on sait pas si il commence aujourd’hui et finira pas jeter la ponge la plus pire il peut avoir une espace de phobie dans ce cas il ne le retentera jamais
Enfin
Les gens qui maîtrisent ce que existe ont beaucoup de chance pour réussir en programmation que ceux qui créent leur propre objets replient a aux même
Tu sais, la VCL techniquement parlant, ça ne va pas chercher bien loin. Et ce n'est pas le modèle que je conseillerais de suivre...
Pour le reste, c'est bien ce que je disais, tu deviens un utilisateur de composants et d'objets.
Mais faire de la POO, c'est autre chose que coder des écrans pour remplir une table dans une base de données en manipulant des objets...
Pour moi "un balaise" en informatique, c'est quelqu'un à qui tu peux confier n'importe quel problème, aussi compliqué soit-il, et qui te trouvera toujours une solution simple, efficace et performante.
Ca commence par une bonne capacité d'analyse, de modélisation et d'abstraction.
Or ce n'est pas parce que tu connaitras toutes les briques existantes et que sauras comment elles sont fabriquées que tu seras capable de construire un gratte-ciel.
Il n'y a pas que le framework VCL en Delphi ...
Je pense que beaucoup de personnes ont encore à l'esprit Borland, or aujourd'hui c'est Codegear pour ne pas dire Embarcaderro. Franck, depuis Delphi 2006, on sent un amélioration de l'EDI. Et c'est une vrai mine d'or pour apprendre depuis les versions RAD, la litératture Java fournissant les exemples, mais comme Delphi dispose d'un compilateur natif, libre à chacun d'exprimer son imagination ...
j'ai regardé la présentation j'ai une remarque sur le ifCitation:
Envoyé par chaplin
Moi je prefere ajouter une ligne apres l'instructionCode:
1
2
3
4
5 if (FContextCount>0) then SetLength(FContext,FContextCount+1); FContext[FContextCount]:=FIndex; inc(FContextCount); result:=FIndex;
ajouter un begin end c'est bien mais pour le begin end un routine c'est confirmé le compilateur est obligé pour ajouter des PUSH, POP et là la question se pose .Code:
1
2
3
4
5
6 if (FContextCount>0) then SetLength(FContext,FContextCount+1); FContext[FContextCount]:=FIndex; inc(FContextCount); result:=FIndex;