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
- 1,039