建模/记录功能程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我发现UML对记录面向对象系统的各个方面很有用,特别是用于整体架构和序列图的类图来说明特定的例程。我想为我的clojure应用程序做同样的事情。我目前不对模型驱动开发感兴趣,仅仅是关于应用程序的工作方式。

UML是建模函数式编程的常用/合理方法吗?FP有更好的UML替代方案吗?

提问于
用户回答回答于

大多数功能程序员更喜欢类型到图表。(我的意思是非常广泛的类型,包括诸如Caml“模块类型”,SML“签名”和PLT Scheme“单元”之类的东西)。为了传达大型应用程序的工作方式,我提出了三件事:

  • 给出每个模块的类型。由于你使用的是Clojure,因此你可能需要查看由Matthew Flatt和Matthias Felleisen发明的“单元”语言。这个想法是记录模块依赖和模块提供的类型和操作。
  • 给出接口的导入依赖关系。这里的图表可能有用; 在很多情况下,你可以使用自动创建图表dot。这具有图表总是准确地反映代码的优点。
  • 对于某些系统,您可能想讨论实现的重要依赖关系。但通常不是 - 从实现中分离接口的一点是实现只能根据它们所依赖的接口来理解。

用户回答回答于

惯用Clojure代码中的“许多单一数据结构上的函数”方法使得典型的“这使用了”UML图,因为许多函数最终指向map / reduce / filter。 我得到这样的印象,因为Clojure是一种更加以数据为中心的语言,当你将懒惰评估考虑在内时,可视化数据流的方式可能不仅仅是可视化控制流的方式。获得构建序列的函数的“管线”图非常有用。

扫码关注云+社区