web-dev-qa-db-fra.com

Comment apprendre au mieux OOP concepts / principes dans la pratique?

Je voulais apprendre un langage de programmation orienté objet, je ne le veux à aucune fin juste pour connaître tout le concept de POO. Alors, quelqu'un peut-il me dire quelle langue je devrais commencer à apprendre?

12
Caffeinatedwolf

Quelques suggestions supplémentaires:

  • Le meilleur livre que j'ai jamais lu OOP bar none est Bertrand Meyer Object Oriented Software Construction . Ce n'est pas une lecture "facile" dans la mesure où vous devrez pensez bien par endroits. Mais cela fait le meilleur travail que j'ai vu d'expliquer les principes de OO.

  • Quant aux langages: je resterais loin du C++. Tout simplement trop grand pour des fins d'apprentissage. Si vous voulez une langue qui vous aidera vraiment à comprendre OO (par opposition à celle dans laquelle vous écririez des applications grand public/obtiendriez un travail en utilisant), alors regardez Smalltalk. Ou Eiffel (la langue dans Livre de Meyer ci-dessus).

  • Si vous voulez un langage un peu plus courant mais qui supporte toujours fidèlement les principes OO alors Python est un bon pari. Java = & C # sont également corrects si vous voulez une saisie statique.

Un mot d'avertissement cependant: la langue ne vous apprendra pas OO. Il ne peut qu'aider (ou entraver) la façon dont il prend en charge les concepts OO. Apprendre OO est vraiment apprendre à pensez en OO termes. Pour cela, je reviens au livre de Meyer.

hth.

13
sfinnie

Vous pouvez apprendre n'importe quel langage orienté objet tel que C++, Java, C # etc. pour essayer OOPS.

Si vous voulez vraiment apprendre la POO, vous devez penser au-delà des langues et comprendre que c'est un paradigme qui aide à la complexité des mangas impliqués dans les logiciels, tout comme la façon dont nous les gérons dans ce monde réel. Apprenez ensuite les concepts de base dans OO comme le polymorphisme, l'héritage, l'encapsulation (PIE) etc.

Il y a de bons livres sur l'analyse et la conception trop orientées objet avec applications (2e édition) par Grady Booch

En outre, vous pouvez essayer des blogs comme celui-ci que j'ai trouvé assez simple pour commencer - fascinatingoops.com

12
WinW

Vous voulez apprendre la POO? Une réponse - Smalltalk.

C'est un langage élégant et est OO au cœur. Vous apprendrez OOP depuis le début et ne serez pas gêné par toutes les autres distractions que les autres les langues parviennent à s'intégrer.

Smalltalk gagne. Et il y a aussi de bons ebooks gratuits (voir: Stephane Ducasse )

3
Simon Knights

Vous devrez apprendre le C++, ou peut-être l'un des ancêtres comme Smalltalk. C++ offre une séparation nette entre des concepts tels que l'orientation d'objet, la gestion de la mémoire et la référence par rapport à la valeur, et il a un support générique solide.

N'apprenez pas Java ou un langage .NET comme C #. Lorsque vous apprenez un langage comme Java, vous apprenez des choses comme "Les objets sont toujours sur le tas et sont toujours des références", ce qui est uniquement vrai pour Java et absolument pas vrai pour OOP en général. Cette fusion de concepts (orientation objet, gestion de la mémoire, référence vs valeur)) est très dangereuse pour une première langue, car une fois que vous les avez coincés dans votre tête, il peut être très difficile de les retirer. C # est n pe meilleur à cet égard mais pas beaucoup. De plus, ils peuvent avoir une forte tendance à enseigner "L'héritage est un marteau et tout est un clou" avec un faible support de programmation générique.

3
DeadMG

La meilleure façon d'apprendre OOP concepts est d'écrire de plus en plus de code et de le faire réviser souvent. La pratique fait un bon programmeur.

Pensez à des scénarios réels, définissez un énoncé de problème - résolvez-le dans le code et faites-le réviser. Vous pouvez toujours obtenir l'aide de https://codereview.stackexchange.com/ pour les avis :)

Bon codage !!!

1
karthiks

Pas

  1. Apprenez ce qu'ils signifient.
  2. Apprenez à les mettre en œuvre.
  3. Prenez un projet à développer, choisissez votre langage [qui devrait avoir le principe OOPS intégré comme VB.NET ou C # ou C++ ou Java etc]
  4. Réfléchissez à la façon dont vous pouvez simplifier la logique du projet par OOPS. [Remarque: Ne vous contentez pas d'implémenter OOPS parce que vous vouliez les avoir, ils devraient résoudre votre objectif]
  5. N'oubliez pas: Vous apprendrez aussi de vos erreurs .
0
Chris

Mon premier contact avec le monde OO était C++, ce qui n'était pas un mauvais début. Mais je me suis beaucoup amélioré lors de l'apprentissage de Python. La différence vient des langages: essayer des idées ('comment puis-je résoudre ce problème de manière OO fashion? ') en C++ a besoin de plus de code à écrire et comprend beaucoup plus de pièges que d'essayer la même idée en Python. Je recommande donc Python.

0
rocksportrocker

Je ne pense pas que vous devriez chercher dans une autre langue tout en essayant d'apprendre la POO. Pour moi, il est plus facile de saisir la théorie et d'apprendre à l'appliquer si je peux me rapporter à quelque chose que je connais déjà. Trouver une nouvelle syntaxe ne fait qu'empêcher.

Vous pouvez commencer avec n'importe quel livre OOP. Encore une fois, j'en aurais un dans la langue de mon choix. La lecture d'un livre sur la refactorisation (style OOP) m'a aidé dans l'application de la POO. J'ai pris un projet existant (aucune distraction de la collecte des exigences) et a trouvé de nouvelles façons de l'améliorer. Ce n'était pas seulement OOP for OOP sake. Ensuite, vous pouvez apprendre comment pour le faire du début à la fin sur un nouveau projet. La logique ici est que vous ne réussirez pas toujours dès le début. Si vous pouvez reconnaître où il est approprié, vous serez mieux. Comme la plupart des choses, il a gagné " t résoudre tous les problèmes.

Il existe des limitations précises avec certaines langues. Si votre objectif est d'être le maître de l'héritage multiple, .NET est sorti.

0
JeffO

Je vais aller à l'encontre de la pensée conventionnelle ici et suggérer que les langues les plus faciles pour en utilisant OOP ne sont pas nécessairement les meilleures langues pour en apprenant J'ai d'abord été exposé à OOP avec C++, mais je ne l'ai pas "récupéré" avant d'avoir lu le chapitre du livre Camel de Larry Wall sur OOP avec Perl. Pour une raison quelconque, j'ai eu du mal à saisir la différence entre les classes et les objets jusqu'à devoir explicitement bénir un objet dans une classe. Je ne comprenais pas vraiment l'implémentation sous-jacente de OOP = jusqu'à le faire en C avec GObject, où aucun de ces détails ne vous est caché. Je n'ai pas vraiment compris les meilleures pratiques avant de prendre une classe d'entreprise qui était indépendante du langage. C'est un très gros sujet, et vous devez trouver façons d'apprendre qui fonctionnent le mieux pour vous.

0
Karl Bielefeldt