简单设计

简单设计(Simple Design)是Kent Beck在90年代提出的四条设计原则,与SOLID相比,简单设计更容易理解和落地。

按照简单设计原则写出的代码,应该是短小精湛又易读、易维护的。

简单设计可以总结为四条,优先级从高到低:

  1. 通过测试
  2. 揭示意图
  3. 消除重复
  4. 最少元素

通过测试

如果采用了TDD的开发方式,那么测试反映的既是需求,所以这一条也可以理解成满足需求。无论采用什么样的设计方法,如果最终代码不满足需求,或是测试没过,那么写得再好也没有价值,因此这条是最高优先级。

揭示意图

揭示意图强调的是可读性,良好的代码应该实现代码即注释,尽可能降低代码阅读者理解代码的难度。从变量命名、方法命名表意,到方法的长度适中、类的职责单纯,这一条原则应该始终贯穿到开发的过程中。

消除重复

消除重复意味着尽量降低重复代码出现的概率,语句重复则抽成方法,值重复则抽成常量,否则代码将会难以修改和维护,每次对重复的地方进行修改都得确保别的地方也被改到。

最少元素

这一条意味着在满足上面三条之后,任何多余的元素都应该删除。比如内联后依然很表意的代码,或是删除后别人依然很好理解的注释,甚至是调试代码,这些元素删除后都能减小代码的长度和复杂度,对于可读性和可维护性都有好处,却又没什么损失。

争议

值得一提的是,揭示意图消除重复的优先级往往会有争议,比如将重复代码抽取成公共方法后,重复消失了,但是可读性也降低了,这种情况在单元测试中很常见。

这实际上更像代码风格一样,算是个人的偏好,所以将这两条排在了同一优先级上。

重写Spring MVC的异常处理来提供自定义错误消息 用S3和CloudFront实现HTTPS请求重定向

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×