Question

Je veux vous demander de me fournir quelques articles (peut-être des livres), que vous avez peut-être trouvé très convaincant critiquant la méthodologie POO.

J'ai lu dans le WWW sur ce sujet et je ne trouve pas vraiment un « demotivator définitif ».

Il est pas beaucoup sur mon attitude personnelle à la POO, mais je voudrais vraiment avoir quelque fondement constructif, rigoureux pour tout type de discussion et de la pensée juste abstraite.


Vous pouvez aussi poster des recherches originales, mais s'il vous plaît soyez très constructif (comme ma demande personnelle).

Était-ce utile?

La solution

Quelle version de POO? vision originale d'Alan Kay? La forme moderne bâtarde de ce qui manque le point tout et donc nous encombre avec contrôle d'accès bizarre, les variables membres, etc.? L'héritage centré sur? Prototype basé? Compositionnel POO?

Chaque forme de POO a ses forces et ses faiblesses; ses défenseurs et ses détracteurs; ses domaines d'utilité et de ses domaines d'inutilité. Il n'y a rien de magique POO qui en fait le tueur de paradigme et il n'y a rien d'infernal ce qui en fait le tueur (des programmeurs) paradigme.

Je ne peux pas vraiment vous diriger vers des livres ou des articles qui ont tué mon intérêt pour POO comme Silver Bullet (par opposition à l'une des nombreuses techniques que je peux utiliser pour garder mes projets survivable). Je peux citer la plus drôle critique d'une marque spécifique de la POO, cependant: classique "exécution dans le Royaume de substantifs" de Steve Yegge .

Autres conseils

Rick Hickey Are We There Yet? - Une Déconstruction du temps orienté objet a ouvert les yeux pour moi. Il est la critique la plus logique OO Je suis venu à travers.

Si vous voulez une critique de la programmation orientée objet, voici ce que je vous recommande:

  1. En savoir Smalltalk
  2. En savoir Erlang
  3. En savoir schéma

Une fois que vous avez fait cela, vous aurez beaucoup de critique de l'interprétation commune de la programmation orientée objet.

(Astuce: OO était à bien des égards destinés à ressembler de plus près le modèle de l'acteur de calcul, mais l'interprétation commune de c'est effectivement une modification du modèle procédural / structuré)

Le problème est - la plupart des gens ne savent pas vraiment la programmation orientée objet, tant de conceptions SUCE

.

Lire les œuvres de Scott Ambler, y compris son (maintenant assez vieux) construction objet Les applications qui fonctionnent . Cela a été ouvert les yeux pour beaucoup de gens.

Peut-être pas tout à fait ce que vous recherchez, mais jeter un oeil à la question Jan / Feb du magazine IEEE Software: Analyse orientée objet: est-il juste la théorie ?. La conclusion fondamentale est que OOA ne fournit pas un bon rapport coût / bénéfice est donc mal utilisé.

Étant donné que OOA n'est pas effectivement utililzed ou pris en charge dans le « monde réel », je pense que pour les projets de développement plus l'architecture globale du système, le modèle d'objet déployé et fin hiérarchie de classe par être sous-optimale et mal compris (mise en œuvre) par différentes parties de l'équipe de développement. Un second article dans le même journal: Quatre tendances menant à point de Java Runtime ballonnement à certains questions communes POO qui dénaturent le déploiement de systèmes Java (POO) à haut volume. Les observations faites dans cet article concernent probablement les plus architecturées applications POO.

Ne prenez pas ce que la violence envers OO, il reflète simplement que practictioners de logiciels que nous avons un peu de travail à faire vers le développement de meilleurs mécanismes de communication de personne à personne pour transmettre des modèles de processus très complexes et abstraites.

Lorsque vous définissez un processus en langage naturel. Vous utilisez des phrases où vous définissez le subject qui fera un Action sur un ou plusieurs objets .

Le seul point fixe est l'action , le prédicat de la phrase.

Je ne pense pas que l'attribution des actions à des objets est une bonne idée. Il n'y a qu'un seul verbe, mais il peut y avoir plusieurs noms.

En POO vous pouvez écrire un fichier au moins 3 façons:

file.write(data);

ou

data.writeToFile(file);

ou

OperatingSystem.write(file, data);

Quel objet doit implémenter la méthode? Vous devez penser à cela aussi. Bien que la manière procédurale, vous écrivez probablement

write(file, data);

Et la seule chose que vous devez penser est l'ordre des opérandes qui est usally n'a pas d'importance.

(bien fichier et les données peuvent ne pas être le meilleur exemple, mais vous voyez probablement le point)

http://cat-v.org a une grande page sur programmation orientée objet .

La plupart de la page se compose de citations humoristiques, mais pas très instructives. Cependant, au bas de la page sont un certain nombre de liens vers des articles difficiles POO. Ils sont:

Si vous êtes intéressé par des alternatives à la programmation orientée objet:

  • cat-v.org . De leur « sur » page: Cat-v.org accueille une série de sites dédiés à des sujets divers qui partagent une perspective intellectuelle idiosyncrasique, le questionnement et l'orthodoxie fomentant des normes de l'élitisme et de haut dans les sujets de la conception de logiciels à la politique, en passant par l'art et le journalisme et tout le reste intéressant.

  • Structure et interprétation des programmes informatiques . enseigne spécifiquement la programmation fonctionnelle. gratuit en ligne disponibles, en vente ici . Je ne peux pas recommander ce assez. Il est tout à fait révolutionnaire. Il va changer la façon de penser.

  • Tout et tous les écrits / vidéos / conférences par Rob Pike et Steve Yegge . Il est particulièrement intéressant de Yegge Whirlwind Langues Visite .

Je recommande l'apprentissage d'un paradigme de programmation différent ou de lire des arguments pro pour paradigmes spécifiques (http://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf). En plus POO, je pense que le plus largement utilisé est le paradigme fonctionnel (recherche F.E. « Pourquoi les questions de programmation fonctionnelle »), mais aussi un regard sur les autres. Lorsque vous commencez à regarder la programmation d'un autre point de vue, les défauts de POO commencent à apparaître automatiquement.

exercice simple: définir les objets IPerson, CMale et CFemale et mettre en œuvre les méthodes "sexe" et "reproduire"

.

dans le royaume du nom  pour le style java OO

La Bible Gideon des modèles de conception orientée objet, porte bien son nom Design Patterns . L'un des meilleurs livres de conception de logiciels que j'ai jamais lu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top