《设计模式之美》 改善代码质量的编程规范
一、命名
1.命名长度
命名要准确达意,千万不要有“反正代码是我写的,我明白什么意思,随便起名就可以了”这样的误解,毕竟同事也会看我们的代码。
对于一些长常用的单词,可以用缩写,这样可以保证既等达意又减少了命名的长度。
对于一些作用域小的变量比如函数内的临时变量,可以使用短一些命名,对于作用域大的变量,最好还是用长命名的方式

2.利用上下文简化命名
类的属性可以借助类这个上下文、方法参数可以借助方法这个上下文

3.命名要可读、可搜索
可读是指不要用一些生僻、难发音的单词,这样可以有效减少同事之间的沟通负担
可搜索就是便于根据关键字查类似的方法或变量等,比如查询类方法 输入select或query,这里要注意的是代码风格要一致即查询相关的用了slect就不要用query,反之亦然

4.命名接口和抽象类
接口有两种命名方式
①接口加前缀“I”,例如接口 IUserService,实现类为UserService
②实现类加后缀“Impl”,例如接口 UserService,实现类为UserServiceImpl
至于选哪种,项目中统一就好

二、注释
1.注释该写的内容
注释的目的是让代码容易看懂,所以注释的内容主要包括:做什么、为什么、怎么做三个部分,对应一些复杂的类和接口,最好也写上如何做即demo

2.注释写的越来越多越好吗?
注释肯定不是越多越好,因为有时代码逻辑有改动,如果注释写的太多,也需要维护,也是一件麻烦事儿。类和函数要写注释,并且要尽量写的全面和详细。函数内部的注释可以相对减少一些,靠好的命名、提炼函数、解释性变量、总结性注释来提高代码的可读性

三、代码风格
1.类、函数多少行才合适?
类、函数行数太多容易造成看到后面忘掉前面,行数太少的话一般是切分类或函数响应就会增加,调用关系变复杂,阅读时来回跳跃,可读性也不高。所以这个很难给出确切值,一般是不要超过一个显示屏的垂直高度就好了。

2.一行代码多长合适?
最好别超过IDE显示的宽度,减少滑动。也不要太短,容易换行

3.善于用空格分隔单元块

4.大括号是否要另起一行?
另起一行可以使左右括号垂直对齐,方便查阅哪些代码属于一个代码块。不另起一行可以节省代码行数,我个人倾向于不另起一行

四、编程技巧
1.将复杂的逻辑提炼出类或函数
一些逻辑很复杂,单看代码可能摸不着头脑,如果把这个复杂逻辑提炼成类或函数,在通过起一个达意的命名,在调用方就很容易知道代码是干嘛的

2.函数的参数不易过多
如果函数的参数过多(如最好别超过5个),会降低可读性,并且使用也不方便,针对这种情况可以采用如下的两种方法
①如果函数功能单一,可以通过拆分成多个函数的方法来减少函数的参数
②将函数的参数封装成对象,一般在设计接口时都是采用这种方法

3.函数中不要使用参数来做代码逻辑的控制
这点我经常犯,通过boolean类型的参数在函数中做逻辑控制。这样违反了单一职责原则和接口隔离原则。这种可以拆成多个函数。
不过如果函数是私有的,影响范围小或者拆分后的两个函数经常会被同时调用,可以适当保留参数
除了boolean类型的参数做逻辑控制,还有通过判断是会否为null做逻辑控制,这种情况也要拆分成多个函数

4.函数职责要单一

5.避免多层嵌套(常见的if-else、switch-case、for循环)
解决多层嵌套可参考的方法如下
①去掉多余的if或else语句
比如在if中有了return,那么else就是多余的。还有一种是多个if的判断可以合并起来
②用continue、break、return 等关键字,提前退出嵌套
③通过调整执行顺序减少嵌套
对集合我们经常会有非null判断和非空判断,然后在执行后续逻辑,这种情况可以通过先对null或空的情况做判断,并提前返回
④将部分嵌套逻辑封装成函数调用

6.使用解释性变量
①用常量替换魔法数字
②使用解释性变量代替复杂的表达式

参考资料

《设计模式之美》

改善代码质量的编程规范相关推荐

  1. 让你最快速地改善代码质量的 20 条编程规范

    根据学习部分极客时间 <设计模式之美>专栏 (王争 前Google工程师)和<阿里 java 规范>整理总结. 分别介绍编码规范的三个部分:命名与注释(Naming and C ...

  2. 【笔记】编程的原则:改善代码质量的101个方法

    代码必然被修改 Code will be changed 代码不是写完就结束了,它在日后必然会被修改.没有写完就扔的一次性代码. 在编写代码的时候,我们应将"代码会被修改"这一点作 ...

  3. 快速改善代码质量的20条代码规范

    目录 1.关于命名 2.关于注释 3.关于代码风格 4.关于编码技巧 5.统一编码规范 1.关于命名 命名的关键是能准确达意.对于不同作用域的命名,我们可以适当地选择不同的长度. 我们可以借助类的信息 ...

  4. Python 工匠:善用变量来改善代码质量

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义上是一门『手艺 ...

  5. Python代码风格指南编程规范

    1 前言 纷吾既有此内美兮,又重之以修能. ---- 屈原<离骚>  1.1 编写目的 本文用于指导我司使用python语言进行开发的人员. 1.2 范围 测试人员.开发人员以及其他pyt ...

  6. python的有效变量名_python里用变量命名改善代码质量

    编程时,总会遇到各种各样的变量,取一个好的变量名能够有效提高代码的可读性,而且python是一种,动态类型的语言,良好的变量名,能够在编写代码或者再次阅读代码时提高效率. 1. 变量名不要太宽泛,要有 ...

  7. wordvba编程代码大全_面向对象、设计原则、设计模式、编程规范、重构

    面向对象.设计原则.设计模式.编程规范.重构 面向对象 主流的三个编程风格有:面向对象,面向过程,函数式编程. 面向对象是最主流的风格,面向对象具有丰富的特性(封装,抽象,继承,多态). 面向对象 面 ...

  8. 【代码质量的重要性:如何编写具有高质量标准的代码】

    一. 前言 写出高质量的代码对于软件开发人员和整个团队都是非常重要的,因为它有以下几个方面的好处: 1. 提高代码可维护性:高质量的代码通常更易于理解和维护,因为它们更具有结构性和组织性. 2. 增加 ...

  9. 编程规范及程序员的自我修养

    本文重点解决如下问题:什么样的代码是好的代码,什么样的程序员是优秀的程序员? 先看图 4 3(a)中的代码,你能明白这段代码要做什么事情吗?再看图 4 3(b)中的代码,你可以知道这段代码在做什么吗? ...

  10. 使用Lint检查提高代码质量

    使用Lint检查提高代码质量 1.概述 2.代码中使用标记 2.1 概述 2.2 在工程中使用标记 2.3 一些标记的使用 2.3.1 Nullness标记 2.3.2 资源标记 2.3.3 线程标记 ...

最新文章

  1. 关于R和Python的安全机制
  2. java什么叫实例化_在JAVA中实例化的确切含义是什么
  3. Linux内存手动释放方法
  4. 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
  5. MQTT数据传输之TCP数据流程
  6. 北斗导航 | 卫星导航基础知识(卫星轨道及卫星在轨运动)
  7. Leetcode题库 144.二叉树的前序遍历(递归 C实现)
  8. 用ASP创建MDaemon用户
  9. java凯撒密码_JAVA凯撒密码 选择问题
  10. mysql文件软连接失败,解决打包软链接打包失败问题
  11. linux服务器监控zabbix,Linux监控之--使用ZABBIX监控web服务器
  12. Div+CSS布局入门教程(三) 页面顶部制作之一
  13. Spring : Spring Aop 获取增强(通知)
  14. java的robot一直按住某个键_SHIFT键在CAD中使用技巧
  15. Amazon亲儿子MXNet与其他框架有哪些不同?| 赠书
  16. Eclipse用法和技巧九:自动添加try/catch块2
  17. Python:学习笔记之变量
  18. 计算机输入输出设计原则,交互设计精髓4中的104条设计原则
  19. python抽签小程序
  20. STM32CubeMX GPIO模拟I2C读写M24C64

热门文章

  1. unix linux性能对比,各有所长!对比LINUX和UNIX系统优势
  2. 14套黑马程序员课程打包【资料全部完整】
  3. 信捷plc用c语言编程软件,XDPPro(信捷PLC编程软件) V3.1.0c 官方版
  4. 关于 Matlab R2014a下载与安装流程
  5. 好看的电脑桌面悬浮时钟工具
  6. gsonformat java代码_GSONFormat的简单使用
  7. 手把手教你学DSP 28335学习笔记
  8. google 手机号码校验库libphonenumber
  9. 34 个免费学习编程的最佳网站
  10. DateUtils 工具类