Nolbert Juarez
Roberto Bock
Muy valioso tu aporte, muchas gracias!
Daniel Basulto
ProfesorG R A N aporte Nolbert!! Has considerado usar mermaid en Notion? Es mi forma de usarlo favorita.
Los patrones de diseño en programación son herramientas que probablemente ya usas sin saberlo, y entenderlos formalmente te ayuda a resolver problemas con mayor creatividad y a comunicarte mejor con tu equipo de desarrollo. Aquí encontrarás reflexiones finales sobre su utilidad real, su lugar en entrevistas técnicas y por qué siguen vigentes más allá de la programación orientada a objetos.
¿Necesito estudiar patrones de diseño para avanzar como desarrollador?
La respuesta corta es que probablemente ya los usas, aunque no los llames por su nombre. Cuando construyes una abstracción que devuelve distintos tipos de objeto según un condicional, estás aplicando un factory. Cuando necesitas una sola instancia compartida en toda la aplicación, estás usando un singleton [03:12].
Y aquí viene lo interesante: si alguna vez trabajaste con manejadores de estado como Redux o NgRx, o pensaste en tener un objeto global para tu aplicación, ya tocaste el patrón singleton sin proponértelo.
¿Qué es el patrón singleton? Es un patrón de diseño que asegura que una clase tenga una sola instancia en toda la aplicación, útil cuando necesitas compartir estado de forma global.
Entonces, ¿hace falta educación formal? No es obligatorio, pero sí recomendable. Estudiar estos conceptos expande tu caja de herramientas y te da nombres precisos para ideas que ya intuías.
¿Los patrones de diseño son requisito en entrevistas técnicas?
Muchas empresas evalúan conocimiento sobre patrones de diseño dentro de sus procesos de selección. No siempre es indispensable, y exigirlos al pie de la letra puede ser excesivo, pero saberlos te da ventaja [04:30].
El consejo práctico es claro:
¿Debo memorizar todos los patrones de diseño antes de una entrevista? No. Es mejor entender la lógica de cada patrón y poder explicar con ejemplos reales cómo lo aplicaste, en lugar de recitarlos de memoria.
La diferencia entre repetir definiciones y narrar experiencias es enorme para quien te entrevista.
¿Siguen vigentes los patrones en programación orientada a objetos?
El paradigma funcional ha ganado terreno en los últimos años, y parte de la comunidad propone enseñar patrones desde ese enfoque. Sin embargo, la programación orientada a objetos está lejos de desaparecer [06:05].
Frameworks que siguen apoyándose fuertemente en este paradigma:
Los patrones de diseño no pertenecen a un paradigma único; tienen representaciones en varios. La elección depende del problema y del estilo que mejor lo resuelva. Hablar en absolutos aquí es un error.
¿Por qué los patrones te enseñan a pensar con creatividad?
Declarar una interfaz, abstraer comportamiento, inyectar dependencias: estas no son invenciones de los patrones, son sus bases conceptuales. Cuando las dominas, empiezas a leer el código de tu equipo con otros ojos y entiendes por qué se tomaron ciertas decisiones [08:10].
Lo que ganas es la capacidad de desacoplar, extender y reutilizar, no por seguir reglas, sino porque eliges la herramienta adecuada para cada problema. Deja de pensar en buenas o malas prácticas y enfócate en resolver con simplicidad.
Próximos pasos en tu camino con patrones de diseño
Esta es la primera entrega de una serie sobre diseño de software. Si quieres seguir profundizando, lo natural es continuar con el curso de patrones creacionales, y más adelante avanzar hacia los estructurales y los de comportamiento.
Recuerda que aprender no basta: hay que implementar. Toma ese proyecto personal que tienes pausado, aplícale lo que ahora sabes y compártelo con la comunidad. ¿Qué patrón vas a probar primero en tu próximo proyecto? Cuéntamelo en los comentarios.
Nolbert Juarez
Roberto Bock
Muy valioso tu aporte, muchas gracias!
Daniel Basulto
ProfesorG R A N aporte Nolbert!! Has considerado usar mermaid en Notion? Es mi forma de usarlo favorita.
Cristian Leiton Valencia
El curso me parecio fabuloso, se nota entusiasmo al explicar patrones de diseño, esperamos que Platzi continue la serie.
Daniel Basulto
ProfesorGracias por los comentarios Cris!
Diego Fernando Velesaca Orellana
Excelente curso, siempre le tuve miedo a los patrones de diseño porque pensaba que solo lo podian entender los devs "pro" pero con este curso introductorio tengo una idea de que son y para que sirven los patrones de diseño. Esperando con ansias los demas cursos de esta serie.
Daniel Basulto
ProfesorMe da mucho gusto leer esto Diego! A partir de ahora tu eres el pro!
Has visto que también el curso de patrones creacionales?
Diego Fernando Velesaca Orellana
Pienso que aún me falta para ser pro 😅 (Síndrome del impostor).
No eh tomado aún el curso de patrones creacionales, podrias compartir rl link por faovr.
HARLIN ACERO ACERO
Daniel Basulto
ProfesorGracias por el comentario Harlin!
Te cuento que este curso fue pensado para hablar sobre conceptos que haran mas amena la comprensión de los cursos en donde se abordaran cada una de las categorias de los patrones, no quisimos agregar esta intro en cada curso o solo en el primero porque hubiera sido abordado de una forma mas superficial a como los abordamos en en este.
Te dejo el link del curso de patrones creacionales: https://platzi.com/cursos/patrones-diseno-creacionales/
Santiago Padilla
Excelente la forma en que el profe explica, uno de los mejores que he visto en platzi, me gustaría ver un curso en donde se realice un ejemplo de todo el ciclo de desarrollo de software donde se cree una aplicación y explique a detalle la fase de diseño y ver cómo se toman las decisiones de que usar a nivel tecnología, metodología, paradigma, patrones de diseño, entre otros, ese curso lo tienen?
Daniel Basulto
ProfesorInteresante propuesta, sería muy ambicioso, tomando nota de ello :)
Javier Pacheco Amador
Uno de los mejores profesores que he visto en platzi, con buen dominio del tema, y se nota la pasion que tiene por el tema y por lo que hace.
Juan Cruz Fuentes
lindo curso, le falto mas codigo, fue todo muy teorico
Silvestre García
Que buen curso, lo tomé para repasar para mi examen de ceneval pero todo lo aprendido también lo apliquaré a la hora de diseñar mis proyectos.
Daniel Basulto
ProfesorNo me vi venir el repaso del CENEVAL, gran noticia Silvestre! Recuerda que también lanzamos el siguiente curso en la serie: patrones creacionales :)
Gerardo Castillo
Esta serie de cursos me parece brutal 🔥. Excelente, amigos Platzi sigan por ese camino que necesitamos mejorar y estos cursos ayudan enormemente 👏
Daniel Basulto
ProfesorEstamos en ello Gerardo, ese es el compromiso! Gracias por tomarlo.
Alejandra Suárez
Gracias por el curso, muy sencillo y útil.
Daniel Basulto
ProfesorGracias totales a ti por tomarlo!
HERNAN DARIO VELASQUEZ ORTIZ
Muy buen curso, muchas gracias! Pero donde están los otros cursos de la serie que prometieron desde la primera clase? No los encuentro, serian un complemento perfecto a este curso.
Samuel Soto Hoyos
Carlos Eduardo Bracho Rosales
Hablando de entrevistas, aqui esta el Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados
Cristian Paiva
Realmente increible la forma de abordar el curso. Es la primera vez que te veo profesor Daniel, y realmente quede con ganas de aprender más. Vengo de ver el primer video de https://platzi.com/cursos/patrones-diseno-creacionales/ y como recomendaste ver primero este curso, pues, acá estoy. A darle un repaso general al curso y haer el exámen! Estas en mi equipo de profesores favoritos junto con Juan DC! Gracias
Daniel Basulto
ProfesorMuchas gracias Cristian, me llenan tus palabras!
Efrain Camilo Hernandez Arias
Ha sido un excelente curso, siempre tuvo problemas con patrones de diseño y con esto me voy super animado a ver todos los demas cursos, esta excelente! me encanta!
Karen Yarely Rojo Valenzuela
Anteriormente a este curso, vimos uno desde el web de un programador que se dedica a crear contenido. Personalmente la forma de explicar, de hablar, la fluidez, de este profesor me ha encantado. He entndido mejor lo que son los patrones de diseño y claro que veré el resto de los cursos.
Daniel Basulto
ProfesorMuchas gracias por los comentarios Karen, sientete en la libertad de contarnos que podría ayudarnos a hacerlo mejor.
Guillermo Rafael Pagan Diaz del Valle
Gran Curso
Reynaldo Cano
Muy buen curso, buen contenido introductorio, me gusta la manera tan sencilla para explicar estos temas, con ganas de ver los demas cursos. Saludos
Gerson Barbosa
buena explicación, exitos
Marco Antonio Alducin Garcia
Pues a mi si me encanto, la verdad me dieron algunas cuestiones básicas de aplicarlo y había cosas que no sabia que de igual manera, ya estaba aplicando en mis proyectos de software, de verdad, muchas gracias, ya tomo el siguiente curso de patrones de diseño.
Llevo experiencia en el diseño de patrones y debo de decir que me alegra bastante saber que vendrán mas cursos en esta serie. Literalmente terminaran escribiendo código como todo un arquitecto!! Con los patrones de diseño, la calidad y mantenibilidad mejorara exponencialmente ya que el enfoque serà mas reflexivo en lugar de escribir código experimentando y debugueando cada 5 minutos con los print.
.
Les recomendaria usar mermaid para los diagramas UML ya que se les permitirá escribir en un script muy basico los diferentes diagramas (de clases, de estado, ER..) . Lo mas chevere es que podrán escribir dicho script en un archivo markdown (clasicos README.md) y adjuntarlo en la documentación del código ya que este script mostrara la imagen en automatico en GitHub, gitlab etc... Ahora estas plataformas ya entienden por defecto este script. De esta forma podrán versionar a tra ves de git tambien estos scripts sin necesidad de exportar las imágenes estáticas. Recomendaria tambien, según el IDE que usan, instalar el plugin mermaid para escribir en este script y ver en real-time el diagrama que se veràn en el README.md directamente desde el IDE.
.
Como desarrolladores, nunca debemos subestimar el poder de la documentación, especialmente para las partes mas cruciales de la aplicación. Por si tienen pereza en escribir la documentación, un diagrama UML suele explicarse por si mismo para los nuevos desarrolladores u otros que tendrán q leer y entender el código.
.
Ejemplo del script (hagan click en la imagen 😉)
classDiagram Class01 <|-- AveryLongClass : Cool <<interface>> Class01 Class09 --> C2 : Where am i? Class09 --* C3 Class09 --|> Class07 Class07 : equals() Class07 : Object[] elementData Class01 : size() Class01 : int chimp Class01 : int gorilla class Class10 { <<service>> int id size() }
Documentacion: https://mermaid.js.org/intro/