我刚开始尝试使用Haskell进行编程。经过多年的Ruby开发,我已经习惯了Ruby on Rails或Rugui所使用的文件组织方式。
在Haskell程序中,有没有关于文件组织的指导方针、最佳实践或甚至框架呢?
(《学你一个 Haskell》和《实际 Haskell》并没有真正处理这个问题。)
我刚开始尝试使用Haskell进行编程。经过多年的Ruby开发,我已经习惯了Ruby on Rails或Rugui所使用的文件组织方式。
在Haskell程序中,有没有关于文件组织的指导方针、最佳实践或甚至框架呢?
(《学你一个 Haskell》和《实际 Haskell》并没有真正处理这个问题。)
以下是我发现有用的内容。
本质上,项目布局是为了让我们在开发时有一个起点思路,因此它与我们开发程序的方式密切相关。例如,在 Java 等编程语言中,您首先要做接口,然后再实现它。区分接口和类有助于帮助您排序先后顺序。
对于 Haskell 也是类似的,在某种意义上,您粗略地实现您的想法决定了您如何布置您的项目。
以下是我的一个小项目的摘录:
- README.md
- LICENSE
- docs/
- package.yml
- stack.yml
- Setup.hs
- tests/
- SomeTypeSpec.hs
- app/
- Main.hs
- src/
- Primitive/
- Definition/
- SomeType.hs
- Error.hs
- Instance/
- SomeType.hs
- FunctionDef/
- Setter.hs
- Control/
- SomeType.hs
- MyProcess.hs
我的迭代方式如下:
Definition
下编写一个带有一些ADT的SomeType.hs
Error.hs
中编写关于SomeType
的相关错误Instance
下通过SomeType
编写Setter.hs
的实现Control
下编写关于SomeType.hs
的控制函数tests
下编写与SomeType.hs
相关的功能的小型测试套件