有过一定工作经验的朋友们,肯定对于项目开发中的coding标准非常熟悉,不同的团队或者项目,都有不太一样的编码习惯和指导文档。但是对于不同 的编码习惯,大家肯定都希望使用大体上统一的风格,简单来说会使得开发效率更高,阅读速度更快,在这篇文章中,我们将分享一些个人觉得比较有效的编码习惯 和最佳实践,如果你觉得有更多其它的经验,请和我们分享。
以下内容主要使用PHP做为例子,如果使用其它编程语言,编码基本类似,大家可以自己在项目中具体应用。
缩进问题 – Tab或者空格
最简单的问题,大家对于缩进使用的是tab或者space呢?
这个问题没有太多的必要去讨论,因为没有谁拥有完全正确的答案,但是最重要的一点,就是不要混用空格和tab,如果大家使用一些JS的校验工具,比如,jshint的话,你最常看到的问题就是
Mixed Tab and Space
个人推荐使用tab,因为不同的编辑器对于tab的解析也不太一样,如果你需要使用tab的话,可以考虑使用4个空格来代替。
类名称定义
为了在定义中避免重复,尽量使得定义包含一些前缀,并且使首字母大写,这样易于阅读,如下:
- class MyClassName {
- function MyClassName() {
- }
- }
变量名称
变量的定义,首字母使用小写字母,用来体现变量的数据类型,特别是在一些不要求严格声明的编程语言中,例如,javacript或者是PHP
参考的缩写如下
- i: integer
- f: float / double
- s: string
- a: array
- o: object
- r: resource
- b: boolean
- is: boolean
定义变量的例子如下:
PHP例子:
- public $sFirstName = “some value”;
- public $sSecondName = “some value”;
- private $_iVariable;
- $iDigit1 = $iDigit2 = 10;
- $oMyClass = new MyClass();
Javascript例子:
- var sFirstName = “some value”;
- var sSecondName = “some value”;
- var iSum = 25;
常量定义
一般使用大写字母来定义变量,如下:
- define(‘PRJ_WEBSITE_URL’, ‘http://www.gbtags.com/’);
- define(‘PRJ_GLOBAL_CURRENCY’, ‘$’);
方法定义
方法定义使用首字母小写,并且每一个单独的单词首字母大写,如下:
- function getPropertyValue($sName) {
- // your custom code is here
- }
- function setPropertyValue($sName, $sValue) {
- // your custom code is here
- }
各种语句中的格式定义
相关的一些结构体中格式定义如下(例如,if/else,for,each等等)
- 最好结构体和后面内容有空格,方便阅读
- 条件语句的括号外最好有空格
- 左右括号内不要有空格
- 前一个大括号不要单独占一行
- 内部的条件应该使用tab缩进
- foreach ($aKeys as $iKey => $sValue) {
- // your custom code is here
- }
- if ($bCondition) {
- // your custom code is here
- } else {
- // your custom code is here
- }
- switch ($sKey) {
- case 1:
- // your custom code is here
- break;
- case 2:
- // your custom code is here
- break;
- default:
- // your custom code is here
- break;
- }
数据库表定义
数据库的表和字段,使用下划线来定义,方便阅读,例如:
- CREATE TABLE `system_gb_tag` (
- `tid` INT(10) NOT NULL AUTO_INCREMENT,
- `parent_id` INT(10) NULL DEFAULT NULL,
- `function_flag` INT(1) NULL DEFAULT NULL,
- `official` INT(1) NULL DEFAULT NULL,
- `uid` INT(10) NULL DEFAULT NULL,
- `tag_name` VARCHAR(500) NULL DEFAULT NULL,
- `tag_desc` TEXT NULL,
- `creation_date` DATETIME NULL DEFAULT NULL,
- `deleted` INT(1) NULL DEFAULT NULL,
- PRIMARY KEY (`tid`)
- )
web目录结构
把不同的文件放到不同的目录下,不要只使用一个目录管理你的项目文件
- /root folder
- /backup
- /cache
- /classes
- /css
- /js
- /media
- /images
- /mp3
- /video
- index.php
- otherFiles.php
- 本文固定链接: http://www.web8899.com/2013/11/10/web开发中需要注意的一些编码习惯/
- 转载请注明: dean 于 迈向卓越-个人博客 发表