Los principios SÓLIDOS me han resultado bastante útiles al pensar en el diseño orientado a objetos.
¿Existe un conjunto similar / equivalente de principios independientes del lenguaje adaptados para la programación funcional?
Los principios SÓLIDOS me han resultado bastante útiles al pensar en el diseño orientado a objetos.
¿Existe un conjunto similar / equivalente de principios independientes del lenguaje adaptados para la programación funcional?
Respuestas:
Es un poco difícil encontrar equivalentes, pero puedo intentarlo:
fuente
SOLID resulta ser una buena idea para los reinos funcionales / imperativos también.
SRP : "Solo hacer una cosa" se tomó de la programación imperativa en primer lugar. Tener funciones pequeñas y enfocadas es bueno.
OCP - Permitirle cambiar comportamientos sin modificar el código es bueno. La programación funcional utiliza funciones de orden superior más que la herencia, pero el principio es válido.
LSP : cumplir con algún contrato de interfaz es tan bueno en la programación funcional como en la orientación a objetos. Si una función de clasificación toma un comparador, entonces esperaría que el comportamiento '0 es igual, menos que proporciona resultados negativos, mayor que resultados positivos'.
ISP : la mayoría de los lenguajes funcionales aún tienen estructuras. Especificar el conjunto de datos más pequeño requerido por una función sigue siendo una buena práctica. Requerir la interfaz menos específica para los datos (¿por qué usar las listas de entradas cuando las enumeraciones de T funcionan igual de bien?) Sigue siendo una buena práctica.
DIP : especificar parámetros para una función (o una función de orden superior para recuperarlos) en lugar de codificar la función para obtener algún valor es tan bueno en la programación funcional como en la orientación a objetos.
E incluso cuando se realiza una programación orientada a objetos, muchos de estos principios se aplican también al diseño de métodos en los objetos.
fuente