世界第一语言在手,辅以前人的最佳实践,天下又算什么。

1、代码是写给小白用的

  • 注释,注释,注释,重要的事情说三遍。我们做的虽然不是拿去卖源码的商业产品,不需要把注释写的多么优美。但也不要太过吝啬,到头来自己都看不懂自己写的逻辑,如果一个逻辑真的不是1+1=2这么简单,写上几句提纲挈领的注释吧。
  • 入参检测,入参检测,入参检测,再说三遍,你永远不知道调用接口的人是谁、是什么用意、会不会对你造成破坏。为了保证你的逻辑只做正确的事情,任何一段逻辑的开始,都应该是一大段入参合法性的检测,不要相信任何人!把这个原则深深的印在自己的脑海里。

2、不要为了走捷径而破坏原则

  • 不要拼接SQL语句

  • 不要在model层以外访问数据库(如直接使用db对象)
  • 不要图简单写一堆join的SQL企图一次性完成数据的查询和组装,在业务代码里完成数据的组装
  • 遵循单一职责的原则,不要堆砌逻辑

3、不要忽略测试

  • 永远不要侥幸的认为自己的逻辑不会有问题,每一行代码必须经过实际运行来细心的验证,不管你通过什么手段,会不会用最轻的代价完成自测也是评价你研发能力的一项重要指标

4、性能性能性能

  • 你的代码是要被千万级的用户使用的(自我感觉好屌的样子),任何场景下都要考虑性能,否则上线后一定会死的很惨,死过的同学可以站出来说两句
  • 不要在循环中调用外部接口,如队列、缓存、数据库等
  • 检查自己的每一条SQL,是否走了索引,是否是大数据结果集,这些都可能是压倒大象的最后一根稻草
  • 关注请求在线上的响应时间, 一个300ms以上的请求就应该存在优化的空间

5、好好命名

  • 命名要能见名释义,同时要保持连贯性,从member表里拿出来的就应该叫member,多条结果就应该叫members,不要一拿出来就变样了,比如:$list = $this->member->list_by_uids(...);

6、尽量少用continue/break

比如下面的代码:

foreach ($ids as $id) {
if (!is_martshow($id)) {
  continue;
}
 
// process the martshows
}

应该改为:

foreach ($ids as $id) {
if (is_martshow($id)) {
// process the martshows
}
}

PHP代码规范的一些总结的更多相关文章

  1. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  2. 谈谈PHP代码规范

    [转] http://www.syyong.com/php/Talk-about-PHP-code-specification.html 我向往这样一个php世界,里面没有代码规范之争.你我都一样,都 ...

  3. 2016 正确 sublime安装PHPcs PHPcodesniffer代码规范提示插件,修正网上部分不详细描述

    对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!-------------------14:37 2016/3/212016 正确 sublime安装PHPcs PHPcodesniff ...

  4. C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

    类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...

  5. 作业三: 代码规范、代码复审、PSP

    分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能 ...

  6. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  7. C#代码规范

    C#代码规范  一.文件命名 1 文件名 文件名统一使用帕斯卡命名法,以C#类名命名,拓展名小写. 示例: GameManager.cs 2 文件注释 每个文件头须包含注释说明,文件头位置指的是文件最 ...

  8. 【转】Java代码规范

    [转]Java代码规范 http://blog.csdn.net/huaishu/article/details/26725539

  9. 作业三:代码规范、代码复审、PSP

    一.代码规范 我认为我们编写的代码都需要进行规范的操作,因为如果为了图省事情或者为了减少时间去完成这个编程.在最后检验的时候就会出现一些警告,导致你这次编程的代码出现问题,当出现问题的时候你在回头去检 ...

  10. 关于"是否需要有代码规范"的个人看法

    这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能强求一律,应该允许很多例外. 我擅长制定编码规范,你们听我的 ...

随机推荐

  1. swift中的类拓展 extension

    以添加颜色为例,new 一个swift文件夹 不是cocoa类 也不需要继承什么. 然后 import UIKit protocol ColorDalegate{ class func mainCol ...

  2. Spark 各个组件关系

    Term Meaning Application User program built on Spark. Consists of a driver program and executors on ...

  3. redis集群搭建踩坑笔记

    推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygem ...

  4. 【mybatis在控制台打印sql语句配置】

    导入jar包:http://pan.baidu.com/s/1sl8RU37 <strong>############################################### ...

  5. oracle批量插入带主键自增

    https://blog.csdn.net/qq_37630354/article/details/82792288

  6. PHP爬虫入门--简单的登录抓取内容

    给同事写一个小工具,抓取月报表然后统计加工.第一反应是做一个爬虫把需要的表和图抓下来,这样就不用再自己去连数据库然后组织表格生成图片之类的. 以上为背景 PHP 写爬虫 说实话我也想用Python的, ...

  7. Oracle的RBO和CBO

    Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CB ...

  8. Linux系统下强制其他用户下线

    强制其他用户下线命令格式:pkill -kill -t tty 解释: pkill -kill -t 强制其他用户下线命令 tty 强制其他用户下线的TTY 如上强制其他用户下线的命令为: pkill ...

  9. 3Ds Max FTL:Virtual device creation failed.

    1.在安装完成并激活3DsMax2017中文版后,启动提示:渲染错误消息:FTL: Virtual device creation failed.(中文译:虚拟设备的创建失败). 2.关闭渲染错误消息 ...

  10. DbUtils(一) 结果集概览

          记录自己对DbUtils的学习和了解 我感觉Dbutils用的最多的就是对查询结果集的处理,就以这个开始了解Dbutils库. 查看源代码发现结果集的转换主要用于query,insert, ...