OptaPlanner开发指南方法论
1. 方法论概述
下图解释了OptaPlanner源代码的整体结构:
在上图中,重要的是要理解配置和运行时类之间的明确分离。
开发哲学包括:
- 重用:将示例作为集成测试、压力测试和演示进行重用。
- 一致的术语:每个示例都有一个App类(可执行类)和一个Panel类(Swing UI)。
- 一致的结构:每个示例都有相同的包结构:domain、persistence、app、solver和swingui。
- 实际世界的实用性:每个特性在示例中都得到了使用。大多数示例都是带有真实约束的实际用例,通常包含真实数据。
- 自动化测试:有单元测试、集成测试、性能回归测试和压力测试。测试覆盖率高。
- 快速失败并提供易于理解的错误消息:尽早检测无效状态。
2. 开发指南
2.1. 快速失败
有几个级别的快速失败,从最好到最差:
- 在编译时快速失败。例如:如果参数需要是String或Integer类型,则不要接受Object类型的参数。
- 在启动时快速失败。例如:如果配置参数需要是正整数