¿Cómo estudiar patrones de diseño? [cerrado]

Resuelto anand asked hace 15 años • 22 respuestas

He leído entre 4 y 5 libros sobre patrones de diseño, pero todavía no siento que me haya acercado al nivel intermedio en patrones de diseño.

¿Cómo debo ir estudiando patrones de diseño?

¿Existe algún buen libro sobre patrones de diseño?

Sé que esto vendrá sólo con la experiencia, pero ¿debe haber alguna manera de dominarlos?

anand avatar Nov 25 '08 01:11 anand
Aceptado

Leí tres libros y todavía no entendía muy bien los patrones hasta que leí Head First Design Patterns de OReilly. Este libro me abrió los ojos y realmente me explicó bien.

texto alternativo

Darren C avatar Nov 24 '2008 18:11 Darren C

La mejor manera es comenzar a codificar con ellos. Los patrones de diseño son un gran concepto que es difícil de aplicar con solo leer sobre ellos. Tome algunas implementaciones de muestra que encuentre en línea y constrúyalas en torno a ellas.

Un gran recurso es la página Data & Object Factory . Repasan los patrones y le brindan ejemplos tanto conceptuales como del mundo real. Su material de referencia también es excelente.

Joseph Ferris avatar Nov 24 '2008 18:11 Joseph Ferris

Mi granito de arena para esa vieja pregunta.

Algunas personas ya mencionaron, practican y refactorizan. Creo que el orden correcto para aprender sobre patrones es este:

  1. Aprenda el desarrollo basado en pruebas (TDD)
  2. Aprende a refactorizar
  3. aprender patrones

La mayoría de las personas ignoran 1, muchos creen que pueden hacer 2 y casi todos optan directamente por 3.

Para mí, la clave para mejorar mis habilidades con el software fue aprender TDD. Puede que sea mucho tiempo de codificación lenta y dolorosa, pero escribir las pruebas primero ciertamente te hace pensar mucho en tu código. Si una clase necesita demasiada repetición o se rompe fácilmente, empiezas a notar malos olores bastante rápido.

El principal beneficio de TDD es que pierdes el miedo a refactorizar tu código y te obliga a escribir clases que sean altamente independientes y cohesivas. Sin una buena serie de pruebas, resulta demasiado doloroso tocar algo que no está roto. Con Safety Net, realmente se aventurará a realizar cambios drásticos en su código. Ese es el momento en el que realmente puedes empezar a aprender de la práctica.

Ahora llega el punto en el que debes leer libros sobre patrones y, en mi opinión, es una completa pérdida de tiempo esforzarse demasiado. Solo entendí muy bien los patrones después de darme cuenta de que hacía algo similar, o podía aplicarlo al código existente. Sin las pruebas de seguridad o los hábitos de refactorización, habría esperado hasta un nuevo proyecto. El problema de usar patrones en un proyecto nuevo es que no se ve cómo impactan o cambian un código de trabajo. Solo entendí un patrón de software una vez que refactoricé mi código en uno de ellos, nunca cuando introduje uno nuevo en mi código.

SystematicFrank avatar Apr 19 '2013 16:04 SystematicFrank

Derek Banas hizo tutoriales en youtube para diseñar patrones que me gustan mucho:

http://www.youtube.com/playlist?list=PLF206E906175C7E07

Pueden ser un poco cortos en el tiempo, pero su sincronización y presentación hace que sea muy divertido aprenderlos.

Pedro Duarte avatar Jun 02 '2013 14:06 Pedro Duarte

Práctica práctica práctica.

Puedes leer sobre tocar el violonchelo durante años y aún así no poder poner un arco al instrumento y hacer algo que suene como música.

Los patrones de diseño se reconocen mejor como una cuestión de alto nivel; uno que sólo es relevante si tienes la experiencia necesaria para reconocerlos como útiles. Es bueno que reconozcas que son útiles, pero a menos que hayas visto situaciones en las que se aplicarían, o se han aplicado, es casi imposible entender su verdadero valor.

Donde se vuelven útiles es cuando reconoces patrones de diseño en el código de otros, o reconoces un problema en la fase de diseño que encaja bien con un patrón; y luego examinar el patrón formal, examinar el problema y determinar cuál es el delta entre ellos y qué dice eso sobre el patrón y el problema.

En realidad es lo mismo que codificar; K&R puede ser la "biblia" de C, pero leerla de cabo a rabo varias veces simplemente no brinda una experiencia práctica; No hay sustituto para la experiencia.

Paul Sonier avatar Nov 24 '2008 18:11 Paul Sonier