Certains solides en programmation orientée objet de critiques? [fermé]

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

j'en ai lu sur le WWW à ce sujet et je n'ai pas vraiment trouvé de "démotivateur définitif".

il ne s'agit pas tant de mon attitude personnelle à l'égard de L'OOP, mais j'aimerais vraiment avoir quelque chose de constructif, une base rigoureuse pour toute sorte de discussion et juste abstrait pensée.


Vous pouvez poster quelques recherches originales trop, mais s'il vous plaît être très constructif (comme ma demande personnelle).

24
demandé sur Bubba88 2010-03-09 16:59:05
la source

11 ответов

quelle version de OOP? La vision originale d'Alan Kay? La forme bastardisée et moderne de celle-ci qui passe complètement à côté du point et nous encombre donc avec un contrôle d'accès bizarre, des variables de membre, etc.? L'héritage-centrique? Basé sur des prototypes? La composition de la programmation orientée objet?

chaque forme d'OOP a ses forces et ses faiblesses; ses défenseurs et ses détracteurs; ses domaines d'utilité et ses domaines d'inutilité. Il n'y a rien de magique dans L'OOP qui en fait le paradigme du tueur et il n'y a rien d'infernal à ce sujet qui en fait le paradigme du tueur (des programmeurs).

Je ne peux pas vraiment vous pointer vers des livres ou des articles qui ont tué mon intérêt pour L'OOP comme une balle D'argent (par opposition à une des nombreuses techniques que je peux utiliser pour garder mes projets survivables). Je peux signaler le plus drôle de la critique d'une marque spécifique de la programmation orientée objet, cependant: Steve Yegge classique "Exécution dans le Royaume de Noms (".

20
répondu JUST MY correct OPINION 2010-03-09 17:10:56
la source

Rick Hickey's Sommes-Nous Arrivés? - Une déconstruction du temps orienté objet était un révélateur pour moi. C'est la critique la plus logique que j'ai rencontrée.

12
répondu missingfaktor 2010-03-09 17:43:26
la source

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

  1. Apprenez Smalltalk
  2. Apprendre Erlang
  3. Apprendre Régime

une fois que vous avez fait cela, vous aurez beaucoup de critiques de l'interprétation commune de la programmation OO.

(Indice: OO, à de nombreux égards destiné aux plus proches de l'Acteur, modèle de calcul, mais l'interprétation commune c'est effectivement une modification de la procédure/modèle structuré)

9
répondu kyoryu 2010-03-14 12:02:04
la source

le problème est que la plupart des gens ne connaissent pas vraiment la programmation orientée objet, donc beaucoup de designs sont nuls.

lire les travaux de Scott Ambler, y compris son (maintenant assez vieux) Construire Des Applications D'Objets Qui Fonctionnent. Cela a été révélateur pour de nombreuses personnes.

4
répondu TomTom 2013-04-01 14:39:59
la source

peut-être pas tout à fait ce que vous cherchiez mais jetez un oeil au numéro de Janvier/Février du magazine IEEE Software: Analyse Orientée Objet: Est-Ce Seulement De La Théorie?. La conclusion de base est que l'oma n'offre pas un bon rapport coûts-avantages et qu'il est donc mal utilisé.

étant donné que L'oma n'est pas utilisé ou soutenu efficacement dans le "monde réel", je soupçonne que pour les plus grands projets de développement l'architecture globale du système, le modèle d'objet déployé et la classe hiearchy finissent par être sous-optimal et mal compris (mis en œuvre) par diverses parties de l'équipe de développement. Un deuxième article dans le même journal: Quatre Tendances Conduisant à Java Runtime Ballonnement pointer vers certains problèmes communs de L'OOP qui nuisent au déploiement des systèmes Java (OOP) à haut volume. Les observations faites dans cet article s'appliquent probablement à la plupart des applications OOP hautement architectées.

ne prenez pas cela comme une attaque de OO, cela reflète juste qu'en tant que un peu de travail à faire pour développer de meilleurs mécanismes de communication de personne à personne pour transmettre des modèles de processus très complexes et abstraits.

3
répondu NealB 2010-03-09 17:41:51
la source

quand vous définissez un processus en langage naturel. Vous utilisez des phrases où vous définissez les sujet qui va faire 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'assignation d'actions à des objets soit une bonne idée. Il n'y a qu'un verbe, mais il peut y avoir plusieurs noms.

dans OOP vous pouvez écrire un fichier dans 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 avez besoin de penser à propos de cette trop. Alors que dans 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 fichiers et de données, peut-être pas le meilleur exemple mais vous voyez probablement le point)

2
répondu Calmarius 2012-07-26 20:13:50
la source

Vous devriez vraiment voir M. B. Jacobs:

la POO démystification

(également connu sous le nom de OOP Oversold.)

2
répondu Sarfraz 2013-04-01 14:38:03
la source

http://cat-v.org a une grande page sur Programmation Orientée Objet.

la plus grande partie de la page se compose de citations humoristiques mais pas terriblement informatives. Cependant, au bas de la page se trouvent un certain nombre de liens vers des articles contestant L'OOP. Ils sont les suivants:

Si vous êtes intéressés par les alternatives à la Programmation Orientée Objet:

  • cat-v.org. De leur page 'about':Cat-v.org héberge une série de sites dédiés à divers des sujets qui partagent une perspective intellectuelle idiosyncratique, questionnant l'orthodoxie et fomentant l'élitisme et des normes élevées dans des sujets allant de la conception de logiciels à la politique, en passant par l'art et le journalisme et tout ce qui est intéressant.

  • Structure et interprétation des programmes D'ordinateur. Enseigne la programmation fonctionnelle. Disponible gratuitement en ligne ici, pour la vente ici. Je ne peux pas recommander cette très assez. Il est absolument révolutionnaire. Il va changer la façon dont vous pensez.

  • Tout et de tous les écrits, de vidéos et de conférences par Rob Pike et Steve Yegge. Il est intéressant de noter que Yegge--75-- > Tournée Des Langues Du Tourbillon.

2
répondu rob05c 2013-06-09 09:12:43
la source

je recommande d'apprendre un paradigme de programmation différent ou de lire des arguments pro pour des paradigmes spécifiques (http://www.info.ucl.ac.be/ ~ pvr / VanRoyChapter.pdf). Outre OOP, je pense que le plus largement utilisé est le paradigme fonctionnel(recherche F. E. "Why functional programming matters"), mais aussi jeter un coup d'oeil aux autres. Quand vous commencez à regarder la programmation d'un point de vue différent, les défauts de OOP commencent à apparaître automatiquement.

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

1
répondu Gerold Meisinger 2011-11-21 21:17:27
la source

faire à propos de steve yegge exécution dans le royaume du nom for java style OO

0
répondu jk. 2010-03-09 17:29:19
la source

L'Gédéon Bible orientée objet patrons de conception, le bien nommé Modèles De Conception. Un des meilleurs livres de conception de logiciel que j'ai jamais lu.

-1
répondu Marc W 2010-03-09 17:25:12
la source

Autres questions sur