Do you want to switch to Platzi in English?
12

Qué son y para qué sirven los patrones de diseño

2113Puntos

hace 4 años

Curso de Python 2017
Curso de Python 2017

Curso de Python 2017

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.

En desarrollo web tenemos dos opciones principales: Desarrollo Frontend y Desarrollo Backend. Algunas de las personas que recién terminan el curso de programación básica en Platzi, suelen preguntarse ¿es mejor el desarrollo frontend? ¿es mejor el desarrollo backend?.

Los frontends tienden a ser programadores, pero hay diseñadores que también hacen frontend. Son los encargados de maquetar la estructura semántica del contenido (HTML), codificar el diseño en hojas de estilo (CSS) y agregar la interacción con el usuario (Javascript).

Un backend compone el acceso a bases de datos y generación de plantillas del lado del servidor. En backend se encargan de implementar MySQL, Postgres, SQL Server o MongoDB. Luego, un lenguaje como PHP o JSP, o frameworks como RoR, Django, Node.JS o .NET se conectan a la base de datos. Si te llama la atención el desarrollo backend, sigue leyendo este post.

La importancia de aprender patrones de diseño en desarrollo backend

Cuando empezamos a desarrollar software, es común que cada quien utilice su propia lógica, conocimientos y experiencia para crear código. Y esto muchas veces resulta en desarrollos complejos que sólo su creador entiende. Pero, ¿es posible desarrollar un módulo que otro programador pueda aprovechar entender y mejorar? La respuesta está en los patrones de diseño. Estos básicamente son  modelos muestra que sirven como guía para que los programadores trabajen sobre ellos. Este es el primero de una serie de artículos en los que te mostraré cómo se usan y cómo pueden ayudarte a crear proyectos colaborativos. Pero primero, veamos algunas definiciones: **Según Wikipedia **

Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Esta es una definición que considero correcta ya que cuando conoces un patrón, puedes ver inmediatamente dónde puede serte útil. En resumen y de forma sencilla, un patrón de diseño es una manera de resolver un problema. Un patrón de diseño debe cumplir al menos con los siguientes objetivos

  1. Estandarizar el lenguaje entre programadores
  2. Evitar perder tiempo en soluciones a problemas ya resueltos o conocidos
  3. Crear código reusable (excelente ventaja)

Tipos de patrones de diseño

Los patrones de diseño se clasifican en tres tipos diferentes dependiendo del tipo de problema que resuelven. Estos pueden ser creacionales, estructurales y de comportamiento.

Creacionales: Su objetivo es resolver los problemas de creación de instancia. Por ejemplo:

  • Singleton (Instancia única): Nos garantiza la existencia de una única instancia para una clase.
  • Prototype (prototipo): Clona las instancias ya existentes.

Estructurales: Su nombre es muy descriptivo, se ocupa de resolver problemas sobre la estructura de las clases. Por ejemplo:

  • Bridge (Puente) Separa la abstracción de la implementación.
  • Decorator (Decorador) Agrega funcionalidades a una clase de forma dinámica.
  • Facade (Fachada) Nos provee una interfaz unificada y simple para acceder a un sistema más complejo.

De comportamiento: Nos ayuda a resolver problemas relacionados con el comportamiento de la aplicación. Ofrece soluciones respecto a la interacción y responsabilidad entre objetos y clases. Por ejemplo:

  • Observer (Observador) La definición que provee Wikipedia es bastante entendible y real, dice “Define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se notifique y actualicen automáticamente todos los objetos que dependen de él.”

Existen muchos patrones, lo importante es saber que existen y preocuparnos por entenderlos y usarlos. De esta manera, podrás convertirte en un profesional en el mundo de la programación. En un mundo ideal todo programador debería aprender la sintaxis de la programación y luego los patrones de diseño.

Estos te servirán como guía para escribir código de la manera correcta y te ayudarán a resolver problemas de una manera estándar y profesional. Y tú, ¿conoces algunos patrones de diseño? Si es así, déjalos en los comentarios abajo y espera el próximo artículo con mucha más información y ejemplos básicos de su uso.

Te comparto la ruta de aprendizaje de David Toca para que te hagas una idea de cómo podría ser tu ruta de aprendizaje backend en Platzi:

toca.png

Si tienes alguna duda sobre cómo empezar tu carrera en el desarrollo backend, escríbenos a [email protected]

Curso de Python 2017
Curso de Python 2017

Curso de Python 2017

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.
Chezz
Chezz
@chezzemp

2113Puntos

hace 4 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1

Ademas de que singleton nos asegura que la clase tenga solo una instancia también nos provee un punto global de acceso.

1
27291Puntos

Mil gracias! Creo que es esto lo que necesito en ste momento. ¿Puedes aconsejarme dónde encontrar información desde 0 sobre patrones, explicado sencillo y en español? De nuevo, mil gracias. Mon

0
2726Puntos

Maravilloso aporte, me deja claras muchas cosas!