提升代码质量的方法:领域模型、设计原则、设计模式

一 影响代码差的根因

1 差代码的体现

我们可以列举出非常多质量差的代码的表现现象,如名字不知所意、超大类、超大方法、重复代码、代码难懂、代码修改困难……其中最为影响代码质量的两个表现是命名名不副实、逻辑可扩展性差,当一个新人阅读代码时,有时发现方法命名与实际逻辑对不上,这就让人感到非常疑惑,这种现象在平时工作并不少见;另一个就是逻辑扩展性差,一个新业务需求提出来后,发现要在多处改动,需要回归的业务逻辑比较多,造成研发效率不高。

2 问题归纳

对第1节中提到的现象进行问题归纳整理,大致整理出6类问题,分别展开加以说明。

  • 命名问题:命名问题是一件非常头疼的事,想要取一个名副其实又好理解的名字并不那么容易。涉及到变量的命名、方法的命名、类命名,常见的命名问题有两种:一种是不知所云;另一种是名不副实。命名不知所云是一个人初一看,不知道它是什么意思,根本原因就是没有想到一个合适的词汇去抽象问题;命名名不副实是命名和实际逻辑想表达的意思不一样,这样的命名会误导人。
  • 代码结构问题:当一个人初看工程代码时,当还没有深入看代码逻辑时,从模块划分、类划分、方法划分整体上可以感受得出代码质量,如果一个类有几千行代码,一个方法有几百行,这样的逻辑相信没有多少人愿意去看,复杂度比较高。好的代码层次结构非常清晰,就像看一本优美的书一样有一种赏心悦目的感觉。
  • 编程范式问题:有三种编程范式:表模式、事务脚本模式和领域设计模式,大家用得最多的是事务脚本模式,这种模式最符合人做事的方法,step by step,这种模式最大的问题就是承担了不该自己承担的职责,看起来比较符合逻辑,实际上问题比较多,平时大家喜欢称之为"面条型代码"。
  • 可读性问题:代码除了实现业务功能外,还要具备良好的可读性,有的代码没有任何注释;有的代码格式不统一;有的是为了炫耀技术,大段大段的Lambda表达式(并不是说Lambda表达式不好,关键要控制层次深度),这样的代码看起来简洁,可读性并不太好。
  • 扩展性问题:可扩展性问题是一个老生常谈的问题,要实现良好的可扩展性并不那么容易,一般是没有抽象问题,如店铺在店招头展示Tab,面条型的代码就是直接定义一个List,然后往里面加Tab对象,如果需要再加一个Tab怎么办?典型的就是不满足开闭原则。
  • 无设计问题:整个代码看起来比较平淡,别人看了之后也从中学习不到内容。一般这种问题是没有深入分析问题,仅仅解决了问题,而没有考虑如何更好地解决问题,比如重复处理流程的工作是否可以抽象成一个通用的模板类、不同处理类是否可以通过工厂类去获取具体的策略、异步处理是否可以使用事件模式去处理、对于新增加的能力能否通过自动注册去发现……</
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值