排列不分先后:
-
当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。
-
关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。
-
尽可能简化状态,尽可能局部本地化。适用至上。
-
短小可组合的方法是你的好朋友。
-
代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注释的理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。
-
如果你认为一个用例场景也许“不会有问题吧”,它也许就是一个月后让你在发布的产品中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。
-
有疑问时,和团队中所有相关人交流。
-
做正确的事情——你通常会知道这指的是什么。
-
你的用户并不傻,他们只是没有耐心理解你的捷径。
-
如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。
-
任务清单是你的好朋友。
-
主动让你的工作更有乐趣,有时这需要你付出努力。
-
悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警报和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。
-
复杂是大敌。
边注:Rich Hickey先生的谈话和Robert Martin先生的《Clean Code(代码整洁之道)》一书最近给我的工作带来了非常积极正面的影响。
人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
对于机器学习,到底该选择哪种编程语言?
入行人工智能机器人研发,选择哪一种机器人编程语言比较好?
大数据时代,最适合大数据处理的编程语言有哪些?