代码风格
Posted tilmto
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码风格相关的知识,希望对你有一定的参考价值。
代码风格
前端代码风格(Java部分,参考《Java编程风格》一书)
一、格式规范:
1.缩进嵌套的代码:在每个代码块和嵌套中加入缩进,缩进代码,加强可读性,包括(类定义,内部类定义,方法定义,静态块,for循环语句,if-else语句,try、catch和finally块,匿名内部类,while语句,do-while语句)
2.断开很长的句子:第一,如果包含了逗号,那么在每一个逗号后面都另起一行,把逗号后面的每一个表达式都和逗号前面的表达式的第一个字母对齐。第二,应该在优先级最低的运算符之前断行。
3.使用空白:关键字和左括号之间,右括号和紧随其后的关键字,除了"."之外的运算符与其前后的表达式之间用空格隔开。每个逻辑上独立的方法和代码段之间,定义类或者接口的成员之间,每个类和接口之间应该加入空白行。
二、命名约定:
1.名称应该具有实际意义
2.使用人们熟悉的名称
3.采用驼峰法
三、包命名:
1.用你所在组织的域名的倒序小写形式作为包的根限定词
2.使用单独的小写词作为每个包的根名
四、类型命名:
1.类和接口名中的每个单词的第一个字母大写
五、类命名:
1.用名词命名类
六、接口命名:
1.用名词或者形容词命名接口
七、方法命名:
1.方法名中的第一个单词小写,其后每个单词的第一个字母大写
2.用动词命名方法
3.遵循JavaBean中命名属性访问函数方法:set,get,is
八、变量命名:
1.变量命中的第一个单词小写,其后的每个单词的第一个字母大写
2.用名词命名变量
九、字段命名:
1.使用this字段变量可以区分开局部变量
十、参数命名:
1.构造函数或者"set"方法给字段分配参数赋值,参数名应该和字段名相同
十一、常量命名:
1.常量的每个单词均大写,单词之间使用下划线连接
十二、文档约定:
1.为使用和维护代码的人编写文档
2.注释和代码要同步
十三、语句和表达式:
1.用等价的方法替换重复的、复杂的表达式
2.使用块语句代替控制流结构的表达式
3.使用括号明确操作顺序
4.在switch语句中的最后一个case体使用break语句
5.使用equals(),而不是==来检测对象的对等关系
十四、效率:
1.使用懒惰初始化
2.避免创建不必要的对象
3.把优化工作留在日后
后端代码风格(python部分,参考PEP8标准):
一、命名风格
1.总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。
2.尽量以免单独使用容易混淆的字母。
3.模块命名尽量短小,使用全部小写的方式,可以使用下划线。
4.包命名尽量短小,使用全部小写的方式,不可以使用下划线。
5.类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。
6.异常命名使用CapWords+Error后缀的方式。
7.全局变量尽量只在模块内有效,类似C语言中的static。实现方法有两种,一是__all__机制;二是前缀一个下划线。对于不会发生改变的全局变量,使用大写加下划线。
8.函数命名使用全部小写的方式,可以使用下划线。
9.常量命名使用全部大写的方式,可以使用下划线。
10.用复数形式命名序列。
11.用显式名称命名字典。
12.避免通用名称。诸如 list, dict, sequence 或者 element 这样的名称应该避免。又如os, sys 这种系统已经存在的名称应该避免。
13.类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。
二、代码编排
1.缩进。优先使用4个空格的缩进,其次可使用Tap,但坚决不能混合使用Tap和空格。
2.每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
三、文档编排
1.模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。
2.不要在一句import中多个库。
四、空格的使用
1.总体原则,避免不必要的空格。
2.各种右括号前不要加空格。
3.逗号、冒号、分号前不要加空格。
4.操作符左右各加一个空格。
5.不要将多句语句写在同一行。
6.if/for/while语句中,即使执行语句只有一句,也必须另起一行。
五、编码建议
1.编码中考虑到其他python实现的效率等问题.
2.尽可能使用‘is’‘is not。
3.使用isinstance()比较对象的类型。
4.判断序列空或不空,建议使用if [not] seq。
5.字符串不要以空格收尾。
6.二进制数据判断使用 if boolvalue的方式。
以上是关于代码风格的主要内容,如果未能解决你的问题,请参考以下文章