He tenido mucha experiencia en la escritura de aplicaciones controladas por dominio usando C#. Cuantas más aplicaciones que escribo más encuentro que quiero adoptar un enfoque que no encaja muy bien con las técnicas de C#/OO estándar:Forma funcional de implementar el diseño impulsado por dominio
- Quiero escribir tantas funciones puras como sea posible, ya que son realmente fácil de probar.
- Quiero escribir mi lógica de negocios de una manera más declarativa.
Así que he estado buscando en lenguajes funcionales como F #. Después de todo, no hay ninguna razón por la cual el diseño impulsado por dominio tenga para ser implementado usando OO.
Me preguntaba si alguien tiene alguna idea/experiencia con el diseño de diseño impulsado por Dominio al tiempo que utiliza un lenguaje funcional. Especialmente:
- ¿Cómo sería un modelo de dominio funcional?
- Cómo abstraería la capa de acceso a datos del modelo de dominio.
Esta es una muy buena pregunta y es algo en lo que estoy tratando de trabajar también. Creo que los ORM tradicionales no funcionarán en lenguajes funcionales como F # porque los valores son inmutables por defecto, pero siempre hay cambios en los datos que deberían persistir. En cuanto al modelo de dominio, supongo que podría ser algún tipo de biblioteca funcional compuesta de registros y uniones discriminadas. También existe la opinión de que FP puede no ser la opción correcta para escribir aplicaciones de usuario final, es más una tecnología para construir frameworks asincrónicos paralelos. ¡Me aseguraré de seguir esta discusión! – Hakeem
Recomiendo leer la serie ["Diseñar con tipos"] (http://fsharpforfunandprofit.com/series/designing-with-types.html) en [F # para diversión y ganancias] (http://fsharpforfunandprofit.com /). – MattDavey