不可小觑的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 应用程 ...
随机推荐
- php preg_match 和preg_match_all
$h3=trim('[我要变强][主流程]整体功能测试点');$matches=array();preg_match_all('/[(.+?)]/', $h3,$matches); print_r($ ...
- 用QtWebKit开发简单的浏览器
用QtWebKit开发简单的浏览器 1.代码实现 工程目录结构如下: AddressBar类包含了地址栏和按钮两个控件,将地址栏回车和按钮点击信号与goToSite()槽连接. 当回车和点击事件发生时 ...
- HDU_2030——统计文本中汉字的个数
Problem Description 统计给定文本文件中汉字的个数. Input 输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本. Output 对于每一段文本,输出其中的汉 ...
- 鹿定制|Lu Couture|鹿定制·高级西装礼服私享定制品牌|芙蓉中路明城国际1425
鹿定制|Lu Couture|鹿定制·高级西装礼服私享定制品牌|芙蓉中路明城国际1425 联系我们
- go语言的安装和配置,以及包引用
1.下载和安装 首先大家可以去官网下载 http://golang.org/dl/ 如果官网你看不懂的话,可以到这里下载: http://golangtc.com/download ,这里也提供了百度 ...
- grouth:全栈工程师指南
语言学习 curl -v baidu.com 域名请求DNS服务器得到网站服务器的IP,http是80端口,https是443端口.查到ip拿到HTML,JS,CSS后就开始渲染这个页面了. 1.Pa ...
- Jetty监控线程使用情况的配置
Jetty监控线程使用情况配置 第一步,配置xml文件 jetty-monitor.xml 参数说明: threads: 线程池中的线程 busyThreads: 使用中的线程 idleThreads ...
- # linux下安装Nodejs环境
1.下载二进制文件到本地 root@ubuntu:/home/zhu/Downloads# node-v6.3.1-linux-x64.tar.xz 2.解压文件到当前文件夹 root@ubuntu: ...
- 实现Android 动态载入APK(Fragment or Activity实现)
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 近期由于项目太大了.导致编译通只是(Android对一个应用中的方法个数貌似有 ...
- 【BUG】Kewastunpackstats(): Bad Magic 1 (0x。。。。, 0)
Kewastunpackstats(): Bad Magic 1 (0x1108f7b87, 0) In Alert Logfile After Upgrading to 11.2.0.1 Appli ...