知行合一?!单一职责原则

《架构整洁之道》第7章读书札记

任何一个软件模块都应该只对某一类行为者负责。

这句话是最符合这个原则的描述。解决了困惑了我很久的问题。因为之前我一直以为是:

每个模块都应该只做一件事。

这令我在设计上很矛盾,因为一个模块很难只做一件事,所以常常觉得自己不能好好得遵守单一职责原则。一旦只做一件事,又会产生很多类,额外要花很大力气去维护不同的代码。

对一类行为者进行负责,我们就可以将软件设计得像用户看起来的那样子,所见即所得。我们时常会陷入一种困境:为什么这个程序不是我想象的那样子?因为我们在设计上违反了现实中人们想象的样子,达不到“知行合一”。

这样的描述,也令我在设计微服务上有更加多的收益。微服务要设计到小,小到从一件事做起。但是业务的发展微服务本身也会随着发展,所以微服务只做一件事是不够的。如果我们坚守它只做一件事,那么我们将会有许许多多的微服务,那样就成了形式化的微服务了。在此原则指导下,便可以对微服务进行职责和边界性的划分。

推荐阅读更多精彩内容