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

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
}
}

最新文章

  1. 使用IO流实现一个简单的小Dome
  2. Flex布局窥探(一)
  3. 教你写一个web远程控制小工具
  4. TypeError: 'module' object is not callable cp fromhttp://blog.csdn.net/huang9012/article/details/17417133
  5. zepto和jquery的区别,zepto的不同使用8条小结 会JS就会zepto
  6. bzoj3304 [Shoi2005]带限制的最长公共子序列
  7. 集成paypal支付
  8. 【转载】Fragment 全解析(1):那些年踩过的坑
  9. java 中有几种方法可以实现一个线程? 用什么关键字修 饰同步方法? stop()和 suspend()方法为何不推荐使用?
  10. QQ对话代码
  11. 【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
  12. PHP连接数据库:封装成类
  13. GoWorld – 用Golang写一个分布式可扩展、可热更的游戏服务器
  14. Android事件机制之二:onTouch详解
  15. KafkaManager编译安装使用(支持kerberos认证)
  16. java 枚举使用教程
  17. css的小知识4
  18. jQueryMobile的按钮样式
  19. poj 3254(状态压缩DP)
  20. DevExpress学习03——label控件的背景色问题

热门文章

  1. Android运行时Crash自动恢复框架-Recovery
  2. CSS 框模型概述
  3. 洛谷P1979 华容道(70分 暴力)
  4. Hadoop集群配置免密SSH登录方法
  5. 开发外包注意事项二——iOS APP的开发
  6. 架构师分享 Docker 新手入门完全指南
  7. 洛谷P2746 校园网Network of Schools
  8. POJ1033 Defragment
  9. Luogu P2290 [HNOI2004]树的计数 Prufer序列+组合数
  10. 我在B站学习 清华大学教授带你学习c++(进阶)构造函数