SOLID y
Patrones de Diseño

Abril 2021

Historia

Lenguajes de Programación

  • 1954 FORTRAN
  • 1958 Lisp
  • 1959 Cobol
  • 1962 Simula
  • 1972 C
  • 1972 Smalltalk
  • 1980 C++
  • 1990 Python
  • 1995 Java
  • 1995 JS
  • 1995 PHP
  • 2004 Scala

La programación es un
área del conocimiento
en su adolescencia

La programación OOP es
un área del conocimiento en su infancia

SOLID

Robert C. Martin "Uncle Bob"

1995: The Ten Commandments of OO Programming

2002: Agile Software Development, Principles, Patterns, and Practices

"¿Qué es el diseño orientado por objetos? ¿De qué se trata? ¿Cuáles son sus beneficios? ¿Cuáles sus costos? Puede parecer ridículo hacer esas preguntas siendo que casi todos los desarrolladores usan un lenguaje orientado por objetos de algún tipo. Pero la pregunta es importante, porque me parece a mí, que la mayoría de ellos usa esos lenguajes sin saber por qué y cómo obtener el mayor beneficio de ellos." -- Robert C. Martin

Toda herramienta útil tiene la posibilidad de ser usada incorrectamente. ¿De quién es la culpa del usuario o de la herramienta?

SOLID

Principios de Diseño
de Software para crear programas más fáciles
de entender, extender
y enmendar

Patrones de Diseño

1977: A Pattern Language: Towns, Buildings, Construction

Christopher Alexander

"Los elementos de este lenguaje son entidades llamados patrones. Cada patrón describe un problema que ocurre recurrentemente en nuestro ambiente, y entonces describe and then describes el corazón de la solución, de tal manera que se puede usar un millón de veces, sin tener que hacerla de la misma manera dos veces." -- Christopher Alexander

1994: Design Patterns: Elements of Reusable Object-Oriented Software

Erich Gamma

Richard Helm

Ralph Johnson

John Vissides

Patrones de Diseño

Catálogo de soluciones generales a un problema recurrente en un
contexto dado

¿Valen la pena?

"Si yo he podido ver
más lejos que otros, es
al estar parado sobre
los hombros de gigantes"
-- Isaac Newton

"Si la única herramienta que tienes es un martillo, empezarás a tratar todos tus problemas como a una puntilla" -- Abraham Kaplan

¡Aprende de todo, toma lo mejor de lo que aprendas!

¿Acaso la FP no invalida todo esto?

¡La parte más importante de SOLID y de Patrones de Diseño es la presentación del problema y su contexto!

La FP ofrece herramientas que complementan SOLID y Patrones de Diseño

"No seas un programador FP. No seas un programador OOP. Sé un mejor programador." -- Brian Goetz

Brian Goetz

SOLID y Patrones de Diseño

By Carlos Obregón

SOLID y Patrones de Diseño

  • 947