jk.*_*jk. 27 lisp diagram clojure
我已经尝试将我的clojure图表嵌入到UML中可用的内容中,使用类块作为文件级命名空间和依赖关系链接来显示关系,但它很尴尬并且往往会阻碍功能模式.我也尝试过开发ad-hoc解决方案,但是我发现一个解决方案和Java一样好用Java(简单有向图似乎工作模糊,但结果不详细足够).此外,我在网上找不到任何关于此的内容.
为了清楚起见,我并没有尝试像代码生成那样做任何事情; 我只是为了自己的利益而谈论纸笔图.我假设我不是第一个考虑使用lisp语言的人.
提出了哪些解决方案?有没有常用的标准?您有什么推荐的吗?你用什么工具?
好吧,UML深深植根于OO设计(使用C++!),因此用UML映射功能方法将非常困难.我不太了解Clojure,但你可能能够代表类似于Java类和接口(协议?)的东西,对于其他所有东西来说它真的很难.FP更像是从输入到输出的一系列转换,没有明确的UML图(可能是活动图?).最常见的图表是静态结构和对象之间的交互,但它们对FP范例并不真正有用.根据您的目标,组件和部署图可以适用.
我个人的想法是模拟数据的流程而不是代码的结构,因为从我看到的大型(不是那么大)Clojure项目中,代码布局往往非常无聊,有大量可编写的实用程序和一个使用map,redure和STM事务将它们连接在一起的类.
Clojure在您选择的模型中非常灵活,因此您可能希望采用相反的方式.首先制作图表,然后选择干净地表达您构建的模型的语言的部分和模式.
我认为像UML这样的东西不适合Clojure - UML更侧重于面向对象的范式,而这在Clojure中通常是不鼓励的.
当我在进行函数式编程时,我倾向于在数据和函数方面考虑更多:
如果你已经仔细考虑了上述内容,那么转换为Clojure代码非常简单.
请注意,源文件通常也将按照上面列出的顺序进行结构化,顶部有更多基本功能,高级功能组成底部功能.你不应该需要任何循环依赖(这在Clojure中是一个糟糕的设计气味).测试至关重要 - 恕我直言,在Clojure等动态语言中比在静态类型的OOP语言中更为重要.
我的代码的整体逻辑通常是我的主要源代码文件的最后几行.
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |