**程序规范**
1、 命名中使用英文名称,杜绝使用拼音、英文首字母组合。
2、 命名空间、类命名定义采用英文首字母大写,如:UserInfo,接口采用:IUser
3、 页面空间命名使用开头3字母前缀。详细见附表:
4、 私有变量、局部变量采用首字母小写,后面的单词首字母大写,如:userName
5、 公共变量及属性采用单词首字母大写,如:UserName
6、 方法名称统一使用单词首字母大写,并使用动名词形式,如:SetUserName。方法中的参数采用私有变量的命名方式。
7、 if、while、for、foreach等语句即使后面只有一句逻辑,也要使用大括号。
8、 大括号“{”、“}”放在单独的行中。
9、 .cs文件开头需使用注释说明建立者,建立日期等注释。
~~~
// ==========================================
// Author:<AuthorName>
// Create date: <Create Date>
// Description: <Description>
// ==========================================
~~~
10、 类、方法、属性注释,采用标准注释。即连续打三个“/”开发环境自动生成注释框架。
11、 常量命名全部使用大写单词,单词之间使用下划线“_”连接。
12、 修饰符,如:public、protected、private等,在限定类或者方法的时候最小化作用范围。
13、在引用命名空间的时候,系统命名空间在上,自定义命名空间在下。系统和自定义命名空间之间留空行。
14、在引用类、函数、变量时不能使用完全限定名。(继承Page除外)
15、方法之间必须有空行隔开。
16、页面文件命名采用单词首字母大写,如:UserList.php其中页面推荐命名:
1. 列表页面使用类似XxxxxList.php方式命名。
2. 数据新增页面使用类似:XxxxxAdd.php方式命名。
3. 数据编辑页面使用类似:XxxxxEdit.php方式命名。
4. 统计界面使用类似:XxxxxStat.php方式命名。
5. 详细数据浏览使用类似:XxxxxInfo.php方式命名。
6. 综合查询功能页面使用类似:XxxxxSearch.php方式命名。
7. 如很多功能在一个页面当中实现,方法命名如上,除php文件名外方法名可采用小写如:userinfo(理论上:建议统一使用驼峰命名法则,如:UserInfo)。
8. 程序逻辑性较强的统一使用分段处理,重复使用的段落放置最上面或最下面。
9. 每段程序建议不超过200行,100行以下为最优。
注:英文全称存在简写的,可使用简写。如:Information可使用Info,Statistic可使用Stat。表示状态的Status使用全称。
尽量使用英文中原有的简写,不要自创简写。
**数据库命名**
1、 数据库表、视图、存储过程命名按照如下格式:
表:T_User
视图V_User
存储过程P_UserList
主键PK_UserId
外键FK_xxxxx
索引IX_LoginId
以后如果需要分级则采用类似命名:P_BBS_UserList
规则为开头简写大写字母加下划线加全称英文单词,英文单词首字母大写。
以上开头字母为暂定格式,正是项目格式待定。
2、 数据库语句中SQL关键字,系统默认参数、变量全部大写。
3、 多表交叉查询语句不使用表别名,使用完整的限定名。
4、 查询语句中的字段大小写于数据表设计时使用的大小写一样。
5、多表查询统一使用join关联查询语句,不建议使用查询一个foreach里嵌套一个。
**代码缩进**
1、使用Tab键来缩进,每个Tab键长度设置为4个空格;
2、程序当中不允许出现空格缩进;
**关于代码行**
一行推荐的是最多写120个字符,多于这个字符就应该换行了,一般的编辑器是可以设置的。
**关键字 和 True/False/Null**
PHP的关键字,必须小写,boolean值:**true,false,null** 也必须小写。
下面是PHP的“关键字”,必须小写:
'__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor'
**代码注释标签**
如 函数注释、变量注释等,常用标签有 @package、@var、@param、@return、@author、@todo、@throws
必须遵守 phpDocument 标签规则,不要另外去创造新的标签,更多标签查看 [phpDocument官网](https://phpdoc.org/docs/latest/references/phpdoc/tags/param.html)
**业务模块**
(1)、涉及到多个数据表 更新/添加 操作时,最外层建议要用事务,保证数据库操作的原子性;
(2)、Model层,只做简单的数据表的增删改查;
(3)、业务逻辑统一封装到 Logic层;
(4)、控制器只做URL路由,不要当作 业务方法 调用;
(5)、控制器层不能出现SQL操作语句,如 ThinkPHP框架的 where()、order() 等模型方法,即,控制器中,不要出现类似这样的SQL语句:D('XXX')->where()->order()->limit()->find();
where()、order()、limit() 等SQL方法只能出现在 Model层、业务层!
**代码样式风格**
1、命名空间(Namespace) 和 导入(Use)声明
先简单文字描述下:
1、命名空间(namespace)的声明后面必须有一行空行;
2、所有的导入(use)声明必须放在命名空间(namespace)声明的下面;
3、一句声明中,必须只有一个导入(use)关键字;
4、在导入(use)声明代码块后面必须有一行空行;
用代码来说明下:
~~~
<?php
namespace Lib\Databases; // 下面必须空格一行
use FooInterface; // use 必须在namespace 后面声明
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass; // 下面必须空格一行
class Mysql {
}
~~~
- 前言
- 前端开发规范
- 基本规范
- 小程序设计规范(官方)文档
- 微信小程序css篇
- 微信小程序css篇----字体
- 微信小程序css篇----颜色
- 微信小程序css篇----边框
- 微信小程序css篇----边距
- 微信小程序css篇----尺寸
- 微信小程序css篇----布局
- 微信小程序css篇----定位
- 微信小程序css篇----属性
- 微信小程序css篇----flex模型
- 微信小程序css篇---文本溢出
- 微信小程序js篇
- 微信小程序js篇----变量
- 微信小程序js篇----方法
- 微信小程序js篇----对象
- 微信小程序js篇----属性
- 微信小程序js篇----语句
- 微信小程序js篇----类型
- 微信小程序js篇----事件
- 微信小程序js篇----构造器
- 微信小程序js篇----逻辑
- 微信小程序逻辑层
- 微信小程序视图层
- 微信小程序组件
- 微信小程序api
- 后端开发规范
- 基本规范
- 通用程序规范
- 控制器规范
- 模型层规范
- 逻辑层规范
- 视图层规范
- 接口开发规范
- 数据库设计规范
- 开发规范
- 安全规范
- 包含文件
- 命名规则
- 存放规则
- 安全规则
- 编码规范
- 命名规范
- 变量命名
- 类命名
- 方法或函数