美文网首页
一些编码规范

一些编码规范

作者: _1633_ | 来源:发表于2021-01-21 23:23 被阅读0次

    命名

        命名的关键是能准确达意。对于不同作用域的命名,我们可以适当地选择不同的长度。作用域小的变量(比如临时变量),可以适当地选择短一些的命名方式。除此之外,命名中也可以使用一些耳熟能详的缩写。我们可以借助类的信息来简化属性、函数的命名,利用函数的信息来简化函数参数的命名。命名要可读、可搜索。不要使用生僻的、不好读的英文单词来命名。除此之外,命名要符合项目的统一规范,不要用些反直觉的命名。接口有两种命名方式:一种是在接口中带前缀“I”;另一种是在接口的实现类中带后缀“Impl”。对于抽象类的命名,也有两种方式,一种是带上前缀“Abstract”,一种是不带前缀。这两种命名方式都可以,关键是要在项目中统一。

注释

        注释的目的就是让代码更容易看懂。只要符合这个要求的内容,你就可以将它写到注释里。总结一下,注释的内容主要包含这样三个方面:做什么、为什么、怎么做。对于一些复杂的类和接口,我们可能还需要写明“如何用”。

        注释本身有一定的维护成本,所以并非越多越好。类和函数一定要写注释,而且要写得尽可能全面、详细,而函数内部的注释要相对少一些,一般都是靠好的命名、提炼函数、解释性变量、总结性注释来提高代码可读性。

代码风格

        函数、类多大才合适?函数的代码行数不要超过一屏幕的大小,比如 50 行。类的大小限制比较难确定。

        一行代码多长最合适?最好不要超过 IDE 的显示宽度。当然,也不能太小,否则会导致很多稍微长点的语句被折成两行,也会影响到代码的整洁,不利于阅读。

        善用空行分割单元块。对于比较长的函数,为了让逻辑更加清晰,可以使用空行来分割

各个代码块。

        四格缩进还是两格缩进?我个人比较推荐使用两格缩进,这样可以节省空间,尤其是在代码嵌套层次比较深的情况下。不管是用两格缩进还是四格缩进,一定不要用 tab 键缩进。

        大括号是否要另起一行?将大括号放到跟上一条语句同一行,可以节省代码行数。但是将大括号另起新的一行的方式,左右括号可以垂直对齐,哪些代码属于哪一个代码块,更加一目了然。

        类中成员怎么排列?在 Google Java 编程规范中,依赖类按照字母序从小到大排列。类中先写成员变量后写函数。成员变量之间或函数之间,先写静态成员变量或函数,后写普通变量或函数,并且按照作用域大小依次排列。

关于编码技巧

    1 将复杂的逻辑提炼拆分成函数和类。 把代码分割成更小的单元块(只有代码逻辑比较复杂的时候,我们其实才建议提炼类或者函数。毕竟如果提炼出的函数只包含两三行代码,在阅读代码的时候,还得跳过去看一下,这样反倒增加了阅读成本)。

    2  通过拆分成多个函数或将参数封装为对象的方式,来处理参数过多的情况。

        我个人觉得,函数包含 3、4 个参数的时候还是能接受的,大于等于 5 个的时候,我们就觉得参数有点过多了,处理方式有两种: 1 考虑函数是否职责单一,是否通过拆分成多个函数的方式来减少参数 2 将函数的参数封装成对象, 前端常用的 options;

    3 函数中不要使用参数来做代码执行逻辑的控制。

        不要在函数中使用布尔类型的标识参数来控制内部逻辑,true 的时候走这块逻辑,false 的时候走另一块逻辑。这明显违背了单一职责原则和接口隔离原则。我建议将其拆成两个函数,可读性上也要更好。

        不过,如果函数是 private 私有函数,影响范围有限,或者拆分之后的两个函数经常同时被调用,我们可以酌情考虑保留标识参数 (这个我经常使用 -。-)

    4 函数设计要职责单一。

    5 移除过深的嵌套层次,方法包括:去掉多余的 if 或 else 语句,使用 continue、break、return 关键字提前退出嵌套,调整执行顺序来减少嵌套,将部分嵌套逻辑抽象成函数。

    6 用字面常量取代魔法数(设置常量,然后再函数中使用,不要直接在函数中使用 具体数字)。

    7 用解释性变量来解释复杂表达式(比如 let bool =  num > max, 然后将这个bool 带入函数中使用),以此提高代码可读性。

统一编码规范

    项目、团队,甚至公司,一定要制定统一的编码规范,并且通过 Code Review 督促执行,这对提高代码质量有立竿见影的效果。

相关文章

  • 前端开发文档规范

    HTML 编码规范 请查看HTML编码规范 CSS 编码规范 请查看CSS编码规范 JavaScript 编码规范...

  • 2017.12.11 CSS编码规范、APPCan常用、Ado.

    第一组:杨昊 CSS编码规范 好久没出现,今天来分享一些平常不会注意的小细节—CSS编码规范(基础): 编码规范...

  • 编码规范(一)越是建议的编码规范越会令团队纠结

    所属文章系列及序号:寻找尘封的银弹:编码规范(一) 我见过很多编码规范,例如C++编码规范、Java编码规范、C+...

  • 前端开发规范(实验室版)

    前端编码规范—— HTML 篇 前端编码规范—— CSS 篇 前端编码规范—— JavaScript 篇 这几天和...

  • 邮件头的编码规范

    关键词:邮件 编码规范 透明加密 关于电子邮件中编码规范的一些总结: 在这些文件的早期版本中存在一些混淆,关于...

  • 一些编码规范

    命名 命名的关键是能准确达意。对于不同作用域的命名,我们可以适当地选择不同的长度。作用域小的变量(比如...

  • Android编码规范

    Android 编码规范 1. 前言 在项目编码之前统一编码规范是一件很重要的事情,抽空从网上的一些资料整理一份A...

  • Objective-C 编码规范

    目录 编码规范Chinamobo 编码规范补充代码规范注释前缀引入其他文件类中属性定义空行和空格 编码规范 Chi...

  • CSS综合

    HTML编码规范CSS编码规范 垂直居中代码

  • Android编码规范

    Android开发代码规范相关系列文章: Android命名规范 Android编码规范 Android编码规范有...

网友评论

      本文标题:一些编码规范

      本文链接:https://www.haomeiwen.com/subject/amejzktx.html