架构整洁之道:优秀设计或多余,有效设计最可取
人们经常谈论优秀设计和糟糕设计。你的设计属于哪一种? 有很多软件开发团队的设计从来经不起思考。他们采用一种我称之为“任务板挪卡” 的方法来代替设计。团队有一个开发任务清单,比如 Scrum 产品待办列表,其中的任务被张贴在“任务板”上,然后他们可以将一张便利贴从“任务板”上的“待办”泳道移动到“进行中”泳道,这就是“任务板挪卡”。 产品经理提出待办项(任务),然后来一次“任务板挪卡”,这便构成了关于设计的全部“真知灼见”,剩下的就交给程序员大神们去疯狂输出代码。很少有团队会这样做,如果真的这样做了,业务就会为这些不存在的设计付出最高昂的代价。 这种情况常常是因为团队必须按照苛刻得近乎残忍的时间表去发布软件,管理层只会使用 Scrum 控制交付节奏,却对它最重要的信条之一: 知识获取 (Knowledge Acquisition) ,视而不见。 在我独立进行咨询和培训的经历中,经常会遇到相同的情境。软件项目如履薄冰,所有团队成员都在努力地维护着系统稳定,每天面对着代码和数据打补丁。以下是我发现的一些潜在问题,有趣的是,DDD可以帮助团队轻而易举地避免其中的一部分问题。我先从高层次的业务问...
