Cómo practicar patrones de diseño en el desarrollo de software después de leer libros

Tienes los patrones, ahora todo lo que necesitas son algunos problemas. Los proyectos en el trabajo, los proyectos paralelos, incluso mirando el código de otras personas pueden ayudar. Pero ahora necesita usar las nuevas herramientas que ha aprendido, o se caerán de su cabeza y de su caja de herramientas.

Cuando aprendí por primera vez sobre las clases orientadas a objetos y la herencia, déjame decirte cómo todos los programas que escribí de repente lo necesitaban, en todas partes.

Y cuando me enteré de las máquinas de estado, apostaron a que todo lo que escribí durante los próximos meses se calzó en eso.

Y cuando aprendí el patrón de estrategia, y el patrón de decorador, y cualquier otro patrón, saqué esas nuevas herramientas brillantes de mi caja de herramientas cada vez que tuve la oportunidad.

Y cada vez, el ciclo era el mismo: usaría cada patrón hasta el punto de exceso, y solo después de hacerlo, aprendería dónde dibujar la línea para cada uno. Este es el final del juego que quieres cultivar: haber puesto en práctica todos estos patrones y saber por experiencia dónde te ayudarán / ahorrarán tiempo / ayudarán en el mantenimiento / etc.

Conocer los patrones es solo el primer paso.

En mi experiencia, no hay sustituto para escribir tus propios pequeños juegos y utilidades cuando realmente quieres aprender nuevas técnicas de codificación. Una cosa es escribir una implementación de “hola-mundo”, pero otra muy distinta cuando está trabajando en algo que le interesa.

Cuando se trata de patrones de diseño, los juegos son probablemente los vehículos más útiles para practicar. Son divertidos, tocan muchas tecnologías relevantes y manejan muchos tipos de objetos similares que encajan bien con los patrones de diseño. Entonces, escribe tu propio pequeño juego y diviértete sin ningún tipo de culpa. Incluso puedes publicarlo para un desafío adicional.

Cada idioma admite diferentes características; tienes que comprender el espíritu de cada patrón de diseño, transformándolo en tu idioma de destino. Los patrones de diseño originales de GoF se orientan hacia C ++; Sin embargo, hay muchos libros de patrones de diseño en Java o C # y algunos en otros lenguajes. Creo que debe implementar cada patrón con al menos una muestra mínima de trabajo en su idioma de destino.

Aquí hay una buena fuente que ofrece algunos ejemplos del mundo real: .NET Design Patterns. Practíquelos creando algunas aplicaciones simples y luego intente crear sus propios escenarios (por ejemplo, calculadora de números – patrón de comando, clasificador de listas – patrón de estrategia, decorador de texto – patrón de decorador).

Hacer código kata.

Me gusta el código kata Monopoly. Vea si puede encontrar formas de utilizar la inyección de dependencia, los patrones de observación, las fachadas, etc.

schuchert – Katas.MonopolyTheGame (r)

Los patrones de diseño, como en “Gang of Four”, son esenciales para el desarrollo de C ++. Esto se debe a que C ++ te da suficiente cuerda para ahorcarte de otra manera.

Realmente no son tan relevantes para Java o C #, que tenían la ventaja de estar diseñados bastante tiempo después de C ++.

Entonces, en respuesta a su pregunta, use C ++ para practicar. A menos que realmente quiera practicar SingletonFactories, en cuyo caso Java también es su amigo.

Hagas lo que hagas, no uses un lenguaje que tenga expresiones idiomáticas relativamente estándar sobre cómo hacer las cosas desde el principio, como Pascal o Python.