background image

编程从业五年的十四条经验

排列不分先后:
  

1. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。

排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于
MySQL,sqlite 更容易掌控。
  

2. 关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。

如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在

iOS 中,

GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状

——这是我的惨痛教训所得。

  

3. 尽可能简化状态,尽可能局部本地化。适用至上。

  

4. 短小可组合的方法是你的好朋友。

  

5. 代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注

释的理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是
需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。
  

6. 如果你认为一个用例场景也许

“不会有问题吧”,它也许就是一个月后让你在发布的

产品中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。
  

7. 有疑问时,和团队中所有相关人交流。

  

8. 做正确的事情

——你通常会知道这指的是什么。

  

9. 你的用户并不傻,他们只是没有耐心理解你的捷径。

  

10. 如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的

血、汗、泪水都是在软件发布后的时间里流的

——那时你会变成一个厌世者,但也是更聪明

“行家”。

  

11. 任务清单是你的好朋友。

  

12. 主动让你的工作更有乐趣,有时这需要你付出努力。

  

13. 悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警

报和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。
  

14. 复杂是大敌。

  

*边注:Rich Hickey 先生的谈话和 Robert Martin 先生的《Clean Code(代码整洁之道)》一

书最近给我的工作带来了非常积极正面的影响。