世界第一语言在手,辅以前人的最佳实践,天下又算什么。 |
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 } } |