编码时间长的人总会遇到编码格式标准化的问题,但是不同的项目里需要使用不同的规则和风格来解决问题,甚至有的时候林林总总的繁杂事情会让人头脑发涨,那为什么不考虑一下标准化编码呢?换句话说,编码规范是一套规章制度:用来为某一特定的编程语言的脚本语言推荐编程风格、方法和实践。这些规范覆盖方方面面,包括注释、文件夹、文件组织、行首缩进、书面声明、空格、命名规格、编程实践和原则、构建最佳实践等等。(以下是部分内容为转载,但也加以一些自己的看法,欢迎大家踊跃补充添加)
在编码过程中建议能够遵循这些规范制度,不但能帮助你改善代码的可读性,还能让后期维护变得更简单。下面的这些案例都是基于PHP规范编写的,但是对于所有的Web语言都是适用的。
1. 制作表格
在编码的开始阶段,建议你先解决这个问题:如何使用标签或者空格?通常情况下,行首缩进在大多数编程语言里并不是必要条件,只是当作二级符号使用。相反,开发人员只是想把程序结构更好的传达给用户。尤其需要注意的是,行首缩进是用来展示控制流结构之间的关系,例如:内部/外部的“条件”或“循环”和“代码”之间的关系。
虽然标签和空格之间的关系比较巧妙复杂,但是使用四个空格来代替一个标签是最好的分配办法。一起来看看实例:当我们使用不同的软件(比如是在Total Commander里比较两个文件)来审查代码或是比较代码的时候,标签和空格看起来明显不一样。你只需要试着去缩进两行代码,第一行使用标签,第二行用四个空格,在Notepad++里看起来是一样的;但是,将这个文件和它的备份版本(在Total Commander里)进行比较的话,你就会注意到标签的长度比四个空格更长(结果就是,获得更为严重的格式化代码)。综上所述,项目里最好是使用四个空格,而不是标签。这对将来的维护是有好处的。
2. 类别名
为了避免类别名的重复出现,同时为了让开发者写出更多独具一格的类别名,请在类别名前面加上特定的前缀,每个单词以大写字母开头。例如:
3. 变量名
因为较为严格的数据类型在大部分Web语言里已经不再使用了,所以为了方便起见,变量名应该以小写字母开头。例如:
- i: integer
- f: float / double
- s: string
- a: array
- o: object
- r: resource
- b: boolean
- is: boolean
使用完前缀之后可以接着使用Camel字体。如果你需要宣布一个私有变量,最好是使用下划线。
4. 常量名
常量是静态的变量,这就意味着这些常量值不需要改变。照例可以在常量上使用大写字母。例如:
5. 功能说明(名称和格式)
所有的功能名称都应该以小写字母开头,每个单词都应该以大写字母开头。花括号应该在同一行上面(在参数列表后面)。例如:
6. 特殊结构格式
像if/else、for、foreach、while等等之类的特殊结构应该遵循下面的规则:
- 在结构名称和紧随其后的括号之间应该有一个空格。(为了更好的阅读)
- 填写在括号里的得出的条件应该用空格分开。
- 在左括号的后面和右括号的前面不能有空格。
- 敞开的花括号必须是在同一条线上。
- 内部条件应该和标签同步缩进。
7. 数据库表格名称
在创建表格的时候,使用合乎逻辑的、易于理解的前缀,同时利用下划线将单词分开,不必使用大写字母。同样的使用方法也可以用在表格区域。
8. 项目的目录结构
在团队开发项目里,保持文件夹和文档的结构以一种合乎逻辑的顺序排列是特别重要的。千万不要把所有的东西都毫无组织的放在一个文件夹里,否则最后得到的只能是一团糟糕的结局。就像这样:
/root folder /backup /cache /classes /css /js /media /images /mp3 /video
index.php otherFiles.php
9.项目中方法的注释
在团队开发项目中,保持好详细的注释是觉得很有必要的。
因为现在你写的,或许你过了一天你还是能记住你的逻辑和思维,过了一个星期 稍微看看或许你还是可以明白的。但是你能确保你过了一个月甚至更久一些你还是一样可以一目了然吗?所以必要的注释是很有必要的,况且你的程序不仅仅是由你一个人来读和写。或许还会有别的人呢?所以为了方便自己也为了更好的服务与别人,一般常规的注释会包含以下几个部分:方法名,参数,返回值,创建时间,作者,作者的联系方式,功能,是否可以进行后期的修改/还是固定了不能改等等
10.项目中方法存放的位置
在团队开发项目中,每个人都有自己写代码的习惯。
但是作为团队项目,顾名思义就是要团队中每一个人去完成一部分。但如果你的一般公共方法习惯到处去放,别人习惯放在公共的类里。你常用的变量习惯用的时候把数据库查一边,而别人习惯于把常用的东西放一个全局变量中,初始化就去声明,无论什么时候用都是可以的等等。这么一系列,倘若在开发文档中没有足够的写清楚这些个规则的话,很容易就会很杂乱的。