构建软件
- 过早优化是万恶之源。不要低估了这个说法的有效性。
- 你很少需要自己从头开始去开发一些东西,几乎每一种应用场景都已经有了相应的库和依赖项。所以,不要重复发明轮子。
- 搞清楚问题域是找到解决方案之前的第一步,但我们却经常会跳过第一步,直接去寻找解决方案。
- 不要太过于追求完美。首先,让它能够正常运行,然后再去优化。优先级最高的事情应该是先保证交付。
- 糟糕的程序员操心代码,优秀的程序员操心数据结构以及它们之间的关系。–Linus Torvalds
- 在代码注释中解释你为什么要写这些代码,而不是解释你在做什么。但不要过度描述,不要把注释当成小说写。
- 有意义的错误日志可以节省大量的调试时间。在错误日志中提供所有相关信息,而不仅仅是“error occurred in Function X!”另外不要记录任何敏感信息或个人信息。
- 100% 的代码行或分支覆盖率并不意味着你的代码就没有 bug。测试用例要覆盖所有的功能需求,而不是覆盖代码行或分支。
- 如果你在修复 bug,请编写相应的测试用例,那么这个 bug 就不会在未来某个时刻出现。bug 的出现通常是因为错误的假设,为所有这些错误的假设编写测试用例将会让应用程序变得更加健壮。
- 在人们阅读你的代码时,让他们能够在不记住超过 7 样东西的情况下理解你的代码。因为人类大脑的短期记忆无法同时记住 7 样以上的东西。这也是为什么很多代码检查器在遇到包含超过 7 个参数的函数时就会发出警告。
- 不要因为别人告诉你要怎样去做一件事情,你就照做。你要明白为什么要这么做,如果你不信服,可以挑战一下。
- 解决问题应该是每个工程师都最擅长的技能。你所在的组织有很多问题需要解决,所以请开始解决问题吧。虽然不是所有问题都能够得到解决,但在尝试解决问题的过程中你会学到很多。