1、二零一四年二月三日二零一四年二月三日技术部技术部目录目录一、代码规范的重要性一、代码规范的重要性三、后记三、后记二、代码规范的要求二、代码规范的要求2代码规范的重要性代码规范的重要性促进团队合作降低维护成本有助代码审查减少BUG处理有助自身成长3促进团队合作促进团队合作 项目是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异。多个人同时开发同一模块,等到要整合代码的时候也有够头疼的了。可读性4减少减少BUGBUG处理处理 减少低级错误;再复杂的逻辑看起来也是清清爽爽;乱容易出错;步调一致,减少细节思考;5降低维护成本降低维护成本 方便后人进行代码阅读;便于后人进行代码维
2、护;减少程序耦合性;方便后人在前人基础上的扩展;可维护性;6有助于代码审查有助于代码审查 代码审查有据可依;减少代码审查的工作量;统一度量标准;7有助于程序员自身成长有助于程序员自身成长 您能保证之后不需要来维护自己的代码?在紧张的项目进度要求下,提高自身工作效率,产生高质量代码;防止以后别人读自己的代码里,心里默默在说:SHIT!高效率,专业;8目录目录一、代码规范的重要性一、代码规范的重要性三、后记三、后记二、代码规范的要求二、代码规范的要求9代码规范的要求代码规范的要求使用DRY原则适当留空和必要缩进避免深嵌套使用有意义并一致命名良好的工程结构变量申明和初始化永远不要相信用户避免代码的C
3、opy&Paste合理使用缓存机制使用框架添加应有的注释10ThinkPHP有着良好的工程结构:1,Lib:*Action.php,*Model.php;2,Tpl:模板;3,Static:静态资源;4,Conf:配置信息;5,Common:共有文件;6,Kernel:框架核心代码。11概念:-Do not Repeat Yourself:DRY原则指的是不要重复你的代码;-write everything twice :多次重复打字;DRY解决方案:-拆分可重用函数或类;-使用常量定义;例子:12基本原则:-杜绝拼音;-杜绝没有明确含义的命名:$data2;1,变量命名-变量的名词性:形容词
4、+名词;-长名字可用下划线连接:$new_user;2,函数名-小驼峰式:getUserInfo();-函数的动词性:动词+形容词+名词;谓语+宾语;3,类的命名-大驼峰式:PageManager;-类的名词性:OrderModel;不可出现下划线;13基本原则:-使用TAB键缩进:不可使用4个空格来代替缩进;-留空:使用空格,换行,空行;1,缩进:-被嵌套的逻辑体需要进行缩进;-避免3级以上的缩进,这意味出现了深嵌套;2,空格:-参数之间留空格:fopen($file_location_path,w);3,长代码换行:if(count($this-languages)=0)ANDisset(
5、$_SERVERHTTP_ACCEPT_LANGUAGE)AND$_SERVERHTTP_ACCEPT_LANGUAGE!=);4,不同逻辑体之间必须空行;14基本原则:-嵌套不应该大于3层;-函数不应该有多个出口;15注释块/*/:-文件头:名称,版权,作者;-类:类作用解释;-函数:函数作用,入参数,返回内容;注释行/:帮助记忆-代码说明:一般是用于对某个逻辑块的说明;-结束提示:长IF,switch,while逻辑体结束说明;-待开发提示:/TODO:-调试提示:/DEBUG:16-避免声明的局部变量覆盖上一级声明的变量;-使用前必须将变量初始化化;$number=0;/数值型初始化$s
6、tring=;/字符串初始化$array=array();/数组初始化-变量名体现数值类型:$bIsChecked:bool类型;$iNum:数字型;。17原因:-天真的用户:只要有输入框,就会出现各种输入内容;-不怀好意者:会想办法通过输入注入恶意内容;防范措施:1,前端对输入进行检验;2,后端对于输入检验必不可少:-不能假设前端做了正确的检验;-存在你也不知道的入口;-高手会直接通过编造请求的方式进行提交;3,防止各种注入:可怕的代码注入方式18良好的编程方法总是建议使用缓存机制缓存帮助我们获得更良好的编程方法总是建议使用缓存机制缓存帮助我们获得更好的性能。好的性能。在在PHPPHP的世界
7、,缓存使用来实现:的世界,缓存使用来实现:Memcached:一个在使用小数据块存储键值对存 储。APC:可选PHP缓存为开放的PHP操作码缓存。XCache:一种快速可靠的PHP操作码缓存。Zend Cache:API,用于实现先进的高速缓存功能的集合。eAcclerator:开源的缓存工具。ThinkPHPThinkPHP提供和流行缓存工具的无缝对接;提供和流行缓存工具的无缝对接;19原因:-可能还没理解代码的含义,就呆板的拷贝复制;-拷贝来的代码未必就是对的;-如果有重复代码,意味着可以拆分出一个功能函数。20 框架的目的是为了提高开发效率;框架是前人知识和经验积累而来,是被证明了的成熟解方案;绝大多数框架基于MVC(模型视图控制器)架构理念而开发;选择适合自己的框架。21目录目录一、代码规范的重要性一、代码规范的重要性三、后记三、后记二、代码规范的要求二、代码规范的要求22后记后记你愿意在哪个环境里工作?你愿意在哪个环境里工作?23后记后记代码反映了开发人员的专业形象代码反映了开发人员的专业形象24后记后记互联网产品需要的是软件开发特种兵互联网产品需要的是软件开发特种兵25后记后记7 7*3 3 养成一个好习惯养成一个好习惯26