oop architecture ooad

oop - OOAD recomendación del libro: de la teoría a la práctica



architecture (10)

Estoy en la búsqueda de ser un buen desarrollador OO. OO me intriga, porque entiendo los patrones, sé por qué la composición te da más flexibilidad que herencia, y más de esa sabiduría. Sin embargo, llegué a la conclusión de que sé cómo implementar una fábrica de singleton, pero que no sé cómo crear un diseño de OO robusto .

Tengo un montón de libros

  1. Patrones de diseño por GoF
  2. AntiPatterns Brown y col.
  3. Refactorización por Fowler
  4. Código completo 2

Pueden ser muy buenos libros, pero no te enseñan a diseñar una aplicación. A menudo me paralizan algunas decisiones muy básicas ( ejemplo ). Estoy buscando un libro que enseñe cuándo y por qué. Hay muchos libros sobre martillos y clavos, pero todavía tengo que encontrar un libro que le diga algo acerca de su relación práctica.

¿Qué libro fue más instrumental para convertirte en un arquitecto / diseñador OO seguro?


Aunque me inclino por Rational UP, he encontrado que estos dos ofrecen una gran cantidad de información sobre el diseño de OO.

  • Aplicación de UML y patrones - Craig Larman
  • UML 2 y el proceso unificado: análisis y diseño práctico orientado a objetos - Jim Arllow & Ila Neustadt

El mejor libro que he leído sobre OO es Bertrand Meyer Object Oriented Software Construction .

Es enorme, pero fue muy útil para mí. Cubre todos los aspectos del diseño de OO IMVHO.


En realidad, hacer programación es una ayuda más grande que leer sobre hacer programación.

"paralizado por algunas decisiones muy básicas" es un síntoma de un problema más profundo: la sobreingeniería. Hasta que construyas muchas cosas, realmente no sabes qué decisiones importan y cuáles no importan.

La mejor forma de obtener la experiencia necesaria es construir muchas cosas.

El código Kata es muy, muy importante. http://slott-softwarearchitect.blogspot.com/search/label/code-kata

Además, recolecté un montón de código kata que he usado en un solo proyecto grande. http://homepage.mac.com/s_lott/books/oodesign.html


La única forma de descubrir si un diseño es robusto es implementarlo. No hay un solo libro que le enseñe a producir diseños implementables, todo se reduce a la experiencia y el talento. Sin embargo, hago segundo la votación para el libro de Bertrand Meyer, solo ten en cuenta que no te convertirá en un dios del diseño OO.


La aplicación de UML and Patterns de Craig Larman resumió mucho sobre lo que había aprendido de la experiencia. Lo que me gusta es que aborda todos los aspectos del diseño de software, que incluye aspectos como el diseño iterativo y el desarrollo. No mires demasiado al uso de UML: las descripciones de diseño son un medio para llegar a un fin, y considero que el enfoque de Larman es bastante pragmático. No puedes simplemente codificar: tienes que comunicar tus intenciones (y entender lo que se necesita). UML y un código bien diseñado y bien comentado son algunos de los medios con ese fin.

Y, por supuesto, como otros mencionan: ningún libro lo hará un buen desarrollador o diseñador. Pero podría ayudar a acelerar el proceso.



Robert C. Martin "Desarrollo ágil de software: principios, patrones y prácticas" que le explica los principios de OO

Eric Evans: "Domain Driven Design" trata de cómo hacer un buen diseño que se corresponda con su problema comercial

Martin Fowler: "Patrones de arquitectura de aplicaciones empresariales" para principios básicos sobre arquitectura empresarial


Entiendo completamente tu situación. También posee tres de esos libros;) Sugeriría la edición de Head First. Análisis y Diseño Orientado a Objetos. Esto te llevará por los caminos correctos. El libro de GoF es genial, pero no sirve de nada hasta que obtengas los conceptos básicos en tu cabeza y el libro de Head First se encargará de eso. Saludos :)



  1. " Construcción de software orientado a objetos " por Bertrand Meyer

El trabajo más fundamental sobre orientación a objetos jamás publicado. Esto es absolutamente debe tener un libro para cada programador "orientado a objetos".

2. " Análisis y diseño orientado a objetos con aplicaciones " por Grady Booch et al.

No es tan formal como el libro de Meyer, pero este libro puede abrir los ojos a muchas preguntas en el mundo orientado a objetos y en el desarrollo de software en general.

3. " Patrones de diseño: elementos del software reutilizable orientado a objetos " por Erich Gamma et al.

Este es el famoso libro "Gang of Four" sobre patrones de diseño

4. " Refactorización: mejorar el diseño del código existente " por Martin Fowler et al.

Este es otro libro clásico. La primera parte describe perfectamente muchos problemas que el desarrollador de software moderno puede enfrentar durante su trabajo: olores de código, legibilidad frente a rendimiento, inconvenientes de optimización prematura y muchos otros temas.

5. " Pensando en Java " por Bruce Eckel

Este libro puede ayudar a muchos principiantes no solo en lenguaje Java sino también en una forma de pensar orientada a objetos.

6. " Touch of Class: Aprendiendo a programar bien con objetos y contratos " por Bertrand Meyer

Excelente libro de texto del famoso autor.