T Th hi in nk kP PH HP P F Fr ra am me ew wo or rk k 1 1. .5 5 P Pr ro og gr ra am mm mi in ng g s st ta an nd da ar rd d T Th hi in nk kP PH HP P 1 1. .5 5 编编码码规规范范 编写:ThinkPHP 文档组 最后更新:20081216共 25 页 第 2 页 © Copyright 2006~2008版权所有 目目录录 1 1 概述.......................................................................................................................................4 1.1 目标.............................................................................................................................4 1.2 原则.............................................................................................................................5 1.3 参考.............................................................................................................................5 2 2 约定规则................................................................................................................................5 2.1 给代码注释 ..................................................................................................................5 2.2 让代码分段和缩进........................................................................................................6 2.3 在代码中使用空白........................................................................................................6 2.4 遵循 30 秒法则.............................................................................................................6 2.5 每行只做一件事情........................................................................................................7 2.6 说明运行顺序...............................................................................................................7 2.7 公共和保护接口最小化原则...........................................................................................7 3 3 命名规范................................................................................................................................8 4 4 注释规范..............................................................................................................................15 5 5 格式规范..............................................................................................................................20 5.1 排版格式....................................................................................................................20 5.2 代码样式....................................................................................................................21 5.3 文档化.......................................................................................................................23 6 6 开发规范..............................................................................................................................24 6.1 架构函数....................................................................................................................24共 25 页 第 3 页 © Copyright 2006~2008版权所有 6.2 异常处理规范.............................................................................................................24 6.3 测试维护规范.............................................................................................................25 6.4 性能约束....................................................................................................................25共 25 页 第 4 页 © Copyright 2006~2008版权所有 1 1 概述 1 1. .1 1 适适用用范范围围 本文档提供的代码格式和文档的指南是给参与 ThinkPHP 的个人和团队使用的,对许多 ThinkPHP 的 项目开发者也有帮助,可以和 ThinkPHP 的代码保持一致。 注:有时候开发者认为在最详细的设计级 别上标准的建立比标准所建议的更重要。 ThinkPHP 编码标准的话题包括: 文件格式 命名约定 编码风格 注释文档 格式规范 开发规划 1 1. .2 2 目目标标 本编码规范的形成旨在为 ThinkPHP 开发框架和以后在此之上的应用开发建立一个可操作的编程 标准、约定和指南,以规范我们的代码开发工作。提高代码的可读性,提高系统的健壮性、稳定性、 可靠性。通过遵循这些程序设计标准,作为一个 PHP开发者的生产效率会有显著提高。经验证明,若 从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。共 25 页 第 5 页 © Copyright 2006~2008版权所有 最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。 1 1. .3 3 原原则则 本编码规范遵循几个主要原则: ² 可维护性; ² 文档化; ² 提高效率; 1 1. .4 4 参参考考 在编写本编码规范的时候,参考了 PHP编码规范 [ 第一版 ] PHPDocument 使用说明规范 Java编码规范 PHP 编程标准20001116 Fredrik Kristiansen 2 2 约定规则 2 2. .1 1 给给代代码码注注释释 记住:如果你的代码不值得注释,那么它就不值得保留。当正确地使用了本文提到的注释标准和方针, 就可以大幅度地提高代码质量。共 25 页 第 6 页 © Copyright 2006~2008版权所有 2 2. .2 2 让让代代码码分分段段和和缩缩进进 一种提高代码可读性的方法是给代码分段, 换句话说, 就是在代码块内让代码缩进。 所有在括号 { 和 } 之内的代码,构成一个块。基本思想是,块内的代码都应统一地缩进去一个单位。缩进由四个空格组 成,禁止使用制表符 TAB 。 一行 80 字符以内是比较合适,在有些情况下,长点也可以, 但最多为 120 个字符。 2 2. .3 3 行行结结束束标标志志 行结束标志遵循 Unix 文本文件的约定, 行必需以单个换行符 (LF) 结束。 换行符在文件中表示为 10, 或 16 进制的 0x0A。 注:不要使用 苹果操作系统的回车(0x0D)或 Windows 电脑的回车换行组合如(0x0D,0x0A)。 2 2. .4 4 在在代代码码中中使使用用空空白白 在代码中加入几个空行,也叫空白,将代码分为一些小的、容易理解的部分,可以使它更加可读。建 议采用一个空行来分隔代码的逻辑组,例如控制结构,采用两个空行来分隔成员函数定义。没有空白 的代码很难读,很难理解。 2 2. .5 5 遵遵循循 3 30 0 秒秒法法则则 其他的程序员应能在少于 30 秒钟的时间内完全理解你的成员函数,理解它做什么,为什么这样做, 它是怎样做的。如果他们做不到,说明你的代码太难维护,应加以改进。30 秒钟,明明白白。 一个 好的经验法则是:如果一个成员函数一个屏幕装不下,那么它就很可能太长了。共 25 页 第 7 页 © Copyright 2006~2008版权所有 2 2. .6 6 每每行行只只做做一一件件事事情情 每一行代码只做一件事情。在依赖于穿孔卡片的计算机发展的早期,想让一行代码完成尽量多的功能 的想法是可以理解的。若想在一行里做多件事情,就会使代码难于理解。为什么要这样呢?我们应使 代码尽量容易理解,从而更容易维护和改进。正如同一个成员函数应该并且只能做一件事一样,一行 代码也只应做一件事情。 此外,应让代码在一个屏幕内可见。 也不应向右滚动编辑