scala工具集

抛弃代码的坏味道 - 提升代码质量之可读性

2019-09-17  本文已影响0人  小赵营

[写在开始]代码质量是每个项目都在呼吁的。却是大家都不愿实施的。长期效益诱惑抵抗不了短期收益的现实。目前,它给予的程序猿只有自我满足和成就感。一个深陷老旧系统无法脱身程序员面对代码无奈大家都有耳闻。在追求交付至上的项目,代码质量问题不是团队、项目、公司面临的问题,只属于程序猿。

代码质量

最近花时间整理:我对代码的可读性和可测试性理解。代码质量提升又没有统一标准,如果寻找不可能完成的任务:说服程序猿修改自己的代码,一定包含其中。所以,本文纯属个人理解。

这篇文章分为2部分:代码可读性和代码可测试性。

可读性和可测试是没有统一的量化标准,尤其是新语言不断涌现的。

一切量化指标都有纲领性文件。本文指导性纲领:最为我们熟知的是SOLID, KISS, DRY ...。内容是他们的具体化。

1、注释可读性原则

代码用来维护和阅读的"文档",代码是功能最直接的传达者。而注释是为什么要如此传达的解释。开发模式摒弃注释本身就不利于代码可读性和可维护性。注释编写包括如下几个方面。

getUTCTime()// debug:获取UTC 用于记录耗时
new Date() // 生成Date 信息

以上反例表明:能用代码解决的就不要加注释。

2、通用可读性原则

通用原则指对变量、方法、以及类都适用的原则。

//功能是把日期转换成Int,这是不建议的方式,*函数的返回类型*标识的Int
//函数中加入类型是画蛇添足
.... //伪代码
  getDate2Int() 

让review真正运作起来。review代码是检验可读性最佳标准。review过程中的,信息沟通和经验传递是提升编码水平和形成习惯的最佳途径。

套用大刘的这句话。试想几个月后甚至更久后,我们回看代码,若逻辑不清晰、结构待调整,说明代码可读性有提升空间。如果你意识到代码可读性差,也表明个人能力提升。所以一切交给时间吧。

3、函数可读性原则

calss Person(name: String, addr: String, age: Int, sex: String)
def isFemale(person: Person): Boolean = {
    ....
}

上例中判断是否是性别,只用传入sex就满足功能要求,传入的参数是Person 违背参数最小化原则。

{
   DateTime time = DateTime.Now;
   if (time.Hour >= 0 && time.Hour < 6)
   {
       return "Night";
   }
   if (time.Hour >= 6 && time.Hour < 12)
   {
       return "Morning";
   }
  ....
   return "Evening";
}
//反例,lineitem card并不是一个维度内容
if (lineItem != null && (lineItem.quantity > 0 && customer.isActive() && (card.expirityYear > 2010 || card.type == AMX)) || couponCode.isValid()) {
// details..
}
//封面图是又一可读性反证

3、类可读性原则

后续

代码可读性个人性很强。不同的阶段,对美的理解不同。就如同欣赏NBA比赛,时间久了,马刺黑,也会成为刺蜜。品味是个很玄幻的东西,要个人努力和时间积累。

一切的提升源于认识深入。

喜欢就冒个泡或赏个赞哈
上一篇 下一篇

猜你喜欢

热点阅读