只需阅读(德语)关于模型驱动的软件开发(MDSD)的Wiki-Article。总结维基定义:

  • MDSD与DRY原理有关(请勿自己重复)
  • MDSD关于DSL(特定于域的语言)和生成器的设计
  • 通过MDSD可以对问题进行更简洁的描述(通过对DSL进行更高级别的抽象)。

  • 因为我知道并使用高阶函数编程,所以我很纳闷,而我的实际问题是:
    MDSD只是疯狂地试图将高级功能编程所提供的强大功能(一部分)注入(inject)固有地缺乏这些功能的编程语言/范式中吗?

    (或者我是否误解了,甚至可以将MDSD用于实质上支持高阶函数编程吗?)

    最佳答案

    我宁愿换个角度来看它。 OOP,MDSD,TDD,域驱动设计以及许多其他范式就是...范式。他们是看待人们开发的软件开发任务的方法,这些任务是为了解决他们认为比以前任何东西都缺少的事情。事实证明,函数式编程具有相同的作用-它赋予程序员抽象的能力,而这种能力在没有一流功能的语言中就不那么优雅了。因此,我不会说MDSD是一次绝望的尝试,为非功能语言提供功能特性,就像我说的是人们从不同的角度来面对相同的问题一样。

    this最近的SO问题的某些答案有不同的说法。 ShreevatsaR表示:“几乎可以使用宏执行的任何事情都可以使用高阶函数执行”。马蒂亚斯·本卡德(Matthias Benkard)说:“宏的缺乏可以通过更精细的……单子(monad)和箭头之类的概念得到缓解。”其他评论也呼应相同的主题。您提到MDSD的宗旨之一是生成器。宏是编译时生成器。因此,我可以将他们的陈述翻译为一种论点,即MDSD在功能语言中本来就很容易。

    10-08 02:30