不可小觑的Web开发编码规范
http://www.csdn.net/article/2013-10-21/2817235-coding-conventions-in-web-development
摘要:编码规范是一套规章制度,用来为某一特定的编程语言推荐编程风格、方法和实践。这些规范覆盖方方面面,包括注释、文件夹、文件组织、行首缩进、书面声明、空格、命名规格、编程实践和原则、构建最佳实践等等。
文章作者Andrey Prikaznov在DZone上分享了关于Web开发里编码规范的注意事项。编码时间长的人总会遇到编码格式标准化的问题,但是不同的项目里需要使用不同的规则和风格来解决问题,甚至有的时候林林总总的繁杂事情会让人头脑发涨,那为什么不考虑一下标准化编码呢?换句话说,编码规范是一套规章制度:用来为某一特定的编程语言的脚本语言推荐编程风格、方法和实践。这些规范覆盖方方面面,包括注释、文件夹、文件组织、行首缩进、书面声明、空格、命名规格、编程实践和原则、构建最佳实践等等。(以下是编译内容)
在编码过程中建议能够遵循这些规范制度,不但能帮助你改善代码的可读性,还能让后期维护变得更简单。下面的这些案例都是基于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
结论
事实上,许多开发团队一直在准备着并在使用自己的编码规范指示和指导方针,但在任何情况下,上面所提到的编码规范对所有编程人员都是有用的。好东西大家一起分享。 (编译/薛梁 校审/付江)
不可小觑的Web开发编码规范的更多相关文章
- Android开发编码规范(自用)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境 ...
- ym——Android开发编码规范(自用)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境下J ...
- 解析WEB开发编码问题
解析WEB开发编码问题 URL: http://tcking.javaeye.com/blog/726643 在进行web开发的时候经常会遇到乱码的问题,乱码一般出现在: 1.写在jsp文件中的中文变 ...
- PHP开发编码规范
(转载:https://blog.csdn.net/alexdream/article/details/2213313) 这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据 ...
- 一份比较全面的PHP开发编码规范.
这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改! (可能最新的一些php5的规范不够完整,今 ...
- 整理了一份比较全面的PHP开发编码规范.
这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改! (可能最新的一些php5的规范不够完整,今 ...
- Objective-C开发编码规范【转载】
概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...
- Objective-C开发编码规范:4大方面解决开发中的规范性问题
Objective-C 编码规范,内容来自苹果.谷歌的文档翻译,自己的编码经验和对其它资料的总结. 概要 Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程 ...
- Objective-C开发编码规范
Objective-C 编码规范,内容来自苹果.谷歌的文档翻译,自己的编码经验和对其它资料的总结. 概要 Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程 ...
随机推荐
- 用“%20”取代字符串中空格的时间复杂度为O(n)的算法
/*length 为字符串数组string的总容量*/ void ReplaceBlank(char stringp[],int length) { ) return; /*originalLengt ...
- COJ 0801 非传统题(一)
非传统题(一) 难度级别:A: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 大家好!我是COJ第一道非传统题,是不是感觉非常的excite ...
- HDU-3665(单源最短路)
Problem Description XiaoY is living in a big city, there are N towns in it and some towns near the s ...
- 寻访上海西服定制店_Enjoy·雅趣频道_财新网
寻访上海西服定制店_Enjoy·雅趣频道_财新网 寻访上海西服定制店
- 查看db2表空间使用率
select char(TABLESPACE_NAME,16) tablespace_name,decimal(PAGE_SIZE/1024,4,2) page,used_pages*100/usab ...
- ASP.NET MVC4.0 部署
EntifyFramework 5.0.0 安装 http://www.nuget.org/packages/EntityFramework/5.0.0 1. 文章,部署前的配置 http://www ...
- 日期函数(SqlServer)
1.常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符 ...
- Oracle_表数据拆分与合并
参考文档: [1]http://blog.itpub.net/8858072/viewspace-426960/ [2]http://blog.csdn.net/mattlinsheep/articl ...
- Python模拟登录实战(一)
今天,学习了模拟登录新浪微博.模拟登录主要有两种方式,一.利用Cookie:二.模仿浏览器的请求,发送表单. 法一: Cookie:指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密 ...
- 【iOS基础】NSURLConnection
一.大文件下载1.方案:利用NSURLConnection和它的代理方法1> 发送一个请求 // 1.URL NSURL *url = [NSURL URLWithString:@"h ...