JavaRush /Blog Java /Random-ES /Reseña del libro “Head First Design Patterns”
Alex
Nivel 37

Reseña del libro “Head First Design Patterns”

Publicado en el grupo Random-ES
Entre las personas que están al menos mínimamente familiarizadas con la serie Head First, hay muchas que consideran que dicha literatura es una lectura bastante superficial para principiantes. Qué puedo decir, es poco probable que puedas estudiar en profundidad un tema complejo en el campo de la programación en 48 horas. Sin embargo, es difícil argumentar que Design Patterns es un libro que será una guía útil de programación para principiantes. Este libro es uno de los diez más populares en Stackoverflow, y por una buena razón. La facilidad de presentación, el tema fundamental y los ejemplos de alta calidad hacen que el libro sea popular ahora y, en mi opinión, durante muchos años. Reseña del libro “Head First Design Patterns” - 1

Características del libro

Los patrones de diseño Head first nos dicen qué son los patrones, cómo usarlos y cómo pensar en ellos. Un patrón es una plantilla, una solución universal para un conjunto específico de problemas. Los patrones de diseño son, a su vez, soluciones arquitectónicas de uso común que se pueden utilizar para escribir aplicaciones flexibles y fáciles de usar. Los desarrolladores de todo el mundo resuelven los mismos problemas con los mismos enfoques. Como dice la anotación, si no desea reinventar la rueda, utilice plantillas de diseño (patrones) ya preparadas, con las que este libro está dedicado a trabajar . Por otra parte, cabe destacar la presentación del material: los libros de la serie Head First son famosos por su sencillez y se leen de una sola vez. Los "patrones de diseño" no son una excepción. También se adhiere a los siguientes principios clave:
  1. Visibilidad
  2. Estilo conversacional de presentación.
  3. Una gran cantidad de ilustraciones.
  4. Participación activa del lector.
  5. Apelar a las emociones
  6. Captar la atención del lector
Los autores del libro utilizan de manera competente la teoría de la metacognición para presentar el material: para mí, las primeras 100 páginas pasaron desapercibidas. Lo bueno de este enfoque es que el cerebro realmente recuerda lo que lee. La combinación de varios estilos narrativos, preguntas interesantes, redundancia y creatividad: todo esto ayuda al lector a no perder el interés en el tema principal. Antes de comprar el libro, tenía dudas después de leer críticas mixtas. Sin embargo, después de hojear rápidamente varias otras fuentes sobre este tema, decidí: para sumergirme en los patrones, este libro es lo que necesitas.

Tema principal e idea clave.

"Seguramente alguien ya ha resuelto tu problema" : así comienza el primer capítulo del libro, que transmite todo el significado de los patrones de diseño en la programación. El objetivo principal es transmitir correctamente su significado al lector, porque antes que nada el programador debe saber para qué sirven los patrones y en qué punto deben aplicarse. Básicamente, primero debes ordenar las plantillas en pequeños pedazos en tu cabeza y solo después implementarlas en programas. Si un principiante en programación tiene un buen conocimiento de los patrones, su uso puede complicar enormemente el código (¡pero debería simplificarlo!). A la pregunta "¿Por qué deberían usarse patrones de diseño?" El libro da una respuesta clara: “Conocer conceptos como abstracción, herencia y polimorfismo no te convierte en un buen diseñador OO. Los patrones contienen experiencia comprobada en diseño OO”.

"Resumen"

El libro está dividido en 14 capítulos más una introducción. Al principio, los autores del libro intentan preparar al lector, sintonizar su cerebro para percibir correctamente la información sobre el diseño de patrones. El primer capítulo explica el principio básico de los patrones y para qué sirven. Uno de los patrones más utilizados, la estrategia, se examina de forma sencilla y discreta. Los capítulos del dos al once están dedicados a un análisis detallado de patrones individuales :
  1. Observador. Distribuye eventos entre objetos que están interesados ​​en su ocurrencia.
  2. Decorador. Otra mirada a la herencia en Java y a brindar nuevas capacidades a las clases de Java sin modificar el código.
  3. Fábrica. El patrón salva el código de dependencias no deseadas.
  4. Soltero. También conocido como Singleton, le permite crear un objeto de clase única para todo el programa.
  5. Equipo. El patrón le permite encapsular convenientemente una llamada a un método, ampliando sus capacidades.
  6. Adaptador y Fachada. Resolviendo el problema de incompatibilidad de interfaces, así como empaquetando objetos para simplificar su interfaz.
  7. Método de plantilla. Encapsulación de bloques algorítmicos, permitiendo que las subclases se asocien con el algoritmo de procesamiento deseado en cualquier momento.
  8. Iterador y enlazador. El patrón proporciona una herramienta conveniente para iterar a través de colecciones, independientemente de su tipo. Además, el capítulo proporciona información sobre las supercolecciones.
  9. Estado. Los objetos están dotados de la capacidad de controlar su comportamiento mediante cambios en su estado interno.
  10. Diputado. Un patrón muy conveniente para controlar el acceso a un objeto.
El Capítulo 12 examina patrones compuestos, o más bien combinaciones de algunos de los patrones discutidos, que pueden usarse para construir poderosas arquitecturas de software. El capítulo 13 está dedicado al uso de patrones en problemas reales, se presenta la clasificación de patrones, sus variedades y pautas de uso. El libro sirve como apéndice del Capítulo 14, que cubre una gama más amplia de patrones. Cada uno de ellos es útil a su manera, por lo que conocerlos es más que deseable. Por supuesto, no son tan populares como los patrones de los capítulos 2 al 11, pero eso no los hace menos útiles. El libro no pretende ser una presentación académicamente precisa de la teoría de patrones. Pero si los libros Head First son tan meticulosos, los aspirantes a desarrolladores no tendrán la oportunidad de descubrir qué es qué y aclarar los conceptos básicos por sí mismos. Esta es una forma sencilla y cómoda de aprender qué son los patrones de diseño para quienes no están familiarizados con ellos. Según los autores, Design Patterns es un libro adecuado para aquellos que ya están familiarizados con Java (o C#), quieren aprender los principios del diseño orientado a objetos y prefieren una conversación animada a conferencias aburridas. ¡Este libro no es un libro de referencia! Si es un desarrollador profesional con experiencia y trabaja con al menos parte de estos patrones, es poco probable que el libro sea de su interés. Un componente importante del libro son los ejercicios: no debes omitirlos. Si lees atentamente el libro y, en casos extremos, haces una mínima búsqueda en Internet, solucionarlos no te añadirá dolores de cabeza. Pero definitivamente habrá beneficios. Como mínimo, comprenderá más profundamente la teoría que se presenta en el libro.

Ventajas y desventajas

Yo, como muchos de los que estudian en JavaRush, tengo una actitud fría hacia las conferencias aburridas, el material abarrotado y otras violencias contra la psique de un estudiante sediento de conocimiento. En mi opinión, la energía gastada en memorizar textos incomprensibles se gasta mejor en encontrar fuentes alternativas de aprendizaje. Este libro vale la pena dedicarle tiempo y esfuerzo. Un excelente estilo de presentación, un manejo competente de la atención del lector y la repetición de puntos clave forman la principal ventaja de este libro: la facilidad de asimilación del material . Una gran cantidad de ilustraciones es una ventaja adicional. En mi opinión, cada imagen del libro tiene su lugar: todas permiten reforzar las palabras de los autores y obtener una comprensión más profunda de la esencia del material. Como escribí anteriormente, este libro no es un libro de referencia: sus autores no tienen la intención de enumerar todos los patrones. Su principal tarea es facilitar la comprensión y hablar sobre los patrones básicos para que otros, más complejos, sean más fáciles de entender. Y ella lo afronta al 100%. Entre las desventajas está que los patrones de diseño Head first en ruso no son tan fáciles de leer como en inglés. Por supuesto, todo desarrollador debería hablar inglés, pero los programadores novatos no siempre desarrollan esta habilidad hasta el punto de poder leer libros en el original. Sin embargo, esto puede considerarse un inconveniente forzado, ya que el material se presenta con bastante precisión y se conserva el significado.

Libros adicionales sobre patrones de diseño.

Soy partidario de la creencia de que es mejor estudiar temas fundamentales de varias fuentes y buscar en ellos un estilo de presentación adecuado. Cuando quieras sumergirte en patrones y leer teoría adicional, créeme, tendrás algo en qué ocupar tus noches.
  1. Técnicas de diseño orientado a objetos. Patrones de diseño (Gamma E., Helm R., Johnson R., Vlissides J.).

    Reseña del libro “Design Patterns” (Head First Design Patterns) - 2

    Esta es una publicación más seria, un libro de referencia sobre patrones, un libro muy respetado de la "Banda de los Cuatro". Muchos lo llaman la biblia del diseño OO.

    En Internet, las opiniones de los desarrolladores se dividen en 3 bandos:

    • algunos argumentan que el libro está desactualizado y el estilo de presentación hace imposible su lectura.
    • otros recomiendan utilizar el libro únicamente como libro de referencia sobre patrones, nada más
    • Otros dicen que el libro es el santo grial de los patrones de diseño y debería ser leído por cualquiera que quiera convertirse algún día en desarrollador senior de Java.
    Soy partidario del segundo grupo: creo que el libro es realmente valioso, pero leerlo para desarrollarlo, y no con el propósito de buscar información, es muy difícil.

    Importante:Los ejemplos del libro están escritos en C++.

  2. JavaEE. Patrones de diseño para profesionales (Murat Yener, Alex Fidom).

    Reseña del libro “Design Patterns” (Head First Design Patterns) - 3

    Este libro está dedicado al diseño de aplicaciones empresariales: cubre muchos ejemplos de problemas de aplicaciones de la vida real.

  3. Patrones de diseño en Java (Grand M.).

    Reseña del libro “Design Patterns” (Head First Design Patterns) - 4

    El libro demuestra de manera colorida cómo el uso de patrones ahorra tiempo a los desarrolladores, proporciona una descripción general del lenguaje UML y describe 47 patrones de diseño.

Patrones de diseño en JavaRush

En el curso JavaRush, los patrones de diseño se aprenden en el nivel 7 de la misión Colecciones de Java. Las conferencias 1 y 2 están dedicadas a los patrones más comunes, y en la conferencia 4 podrá resolver problemas sobre este tema. A continuación te dejamos algunos artículos interesantes para “fortalecerte”:
  1. Un artículo general sobre el tema de patrones con categorías, ejemplos, todo lo que nos guste.

  2. Dos artículos sobre patrones: descripción general de la parte 1 y parte 2 más detallada .

  3. Patrones de diseño utilizando el patrón Singleton como ejemplo .

  4. Artículos sobre los patrones “ Estrategia ” y “ Adaptador ”.

  5. El concepto de patrones de diseño está relacionado con los diagramas UML, este artículo te ayudará a comprender qué son.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION