谦卑对象实质是为了找出不可测试的对象,进而确定边界。而找出不可测试的对象,最终是为了区分对应的可测试对象,并让其负责更多的决策,比如数据结构,控制变量。从而对决策进行测试,保障系统的准确。而剩下的不可测试的对象,只能安分的听从可测试对象的决策的安排进行约定的行为。
(1) 构建不完全边界的一种方式就是将系统分割成一系列独立编译,独立部署的组件,类似于微服务的单个服务。
(2) 使用设计模式可以是代码看起来更加整洁清晰。
设计软件时要考虑其扩展性,同时也不能太过度。如果不考虑扩展性,新增功能难以实现。如果考虑过度的扩展性会浪费开发的成本,想要设计完美的需要足够的判断和经验。在开发时应该遵守设计原则,开发第一版后如需增加新的功能,可以对第一版进行调整,使其满足第二版的需求,可以使用设计模式的来实现。
文中提到main组件能以插件的形式存在于系统中,因此我们可以为一个系统设计多个main组件,个人认为可以理解为单一原则,在业务逻辑中一个接口对应一个业务的实现,多个接口对应多个业务实现,在传入参数时业务方法加载对应的dll,然后将对应的逻辑交给高层次的组件。