一位工程师的经验之谈


原文链接:My Engineering Axioms

摘要

  1. 变化是永恒的
  2. 您的产品是一项资产,但代码是一项负债
  3. 重复比过早抽象的成本要小
  4. 代码应该易于删除
  5. 现有代码具有强大的影响力
    • 它存在的事实本身就表明它是正确和必要的。希望如此,但并非总是如此。我们需要保持改变它的信心,以及推理是否应该改变的能力。不要让代码本身的存在产生无法删除它的怀疑。
  6. Accidental complexity is one of the biggest risks.
    • 由于设计不佳、决策不当以及没有在系统中优先考虑适当的简单性等因素而发生的
  7. 糟糕的个人素质可能会掩盖技术上的卓越
    • 做一个别人愿意与之共事的工程师,比技术更重要(除了独立工作者)
  8. 你不是你的代码。善待程序员,而不是代码
    • 你写了代码,但从那一刻起(即使是 3 分钟前)你已经成长,但代码却没有。关于代码的对话,无论好坏,都不应该涉及个人。保持专业。谈论代码或问题,但不要谈论编写代码的人。使用“我们”而不是“你”。有时我会假装我写了别人写的代码,这有助于我避免无意中听起来很个人化。
  9. 尊重并耐心对待那些懂得比您少的人
  10. 唯一真正的权威来自于知识,而不是地位
  11. 教学是变相的学习
  12. 提升周围人的技能,而不仅仅是你自己
  13. 等待的时间越长,你就会知道的越多
    • 你拖延非必要决定的时间越长,你在做决定时需要依赖的信息就越多。当然,你不能总是拖延决定,但通常你可以,至少你应该考虑现在不知道答案是否真的可以。
  14. A good type system is worth its weight plus some.
    • Having gone backwards and forwards through various static and dynamic languages over my career, I’m currently of the opinion that a good type system is worth its overhead. A good type system shouldn’t carry all that much overhead. If the type system is designed well, it can almost feel like a dynamic language (via features like inference and flow analysis) while removing a whole class of issues that the compiler can handle far better and quicker than you can. Developments like ownership in Rust are a nice example of how this has gone even further than people would have imagined years back.
  15. 正确的团队比一切都重要
    • 这里的“正确”一词非常主观,而且与具体情况有关,但至少从传闻来看,同理心、尊重和友谊是我所参与过的优秀团队中反复出现的元素。
  16. 坚持使用无趣的技术,除非有充分的理由不这样做
  17. 组建尽可能小的团队,但不要更小。谨慎发展团队
  18. 休息
    • 为了发挥出最佳水平,我们必须花时间不工作
  19. Don’t pick a solution until you’ve thought of at least one more
  20. 你可以有自己的观点,但表达方式要避免让别人认为你不会改变他们
    • 例如:“我 95% 确定使用 Visual Basic 是个坏主意。”即使只有 95%,这既是让别人质疑你的观点并展开对话的机会,也是你获得新信息后重新修正你的确定性的机会。
  21. 可以说“我不知道”或“我需要研究一下才能找到答案”
    • 我们的价值不在于我们了解一切的能力,而在于我们学习、发现、回答这些问题和创造新问题的能力。
  22. Writing throwaway code to explore a problem space is underrated
    • 犯几次错误然后重新开始可能比第一次就尝试做对更快。
  23. Manage state carefully
  24. 一切都无非是权衡
  25. 好的设计是你可以改变主意而不需要改变太多代码的设计
    • 让我想到了《程序员修炼之道》ETC(Easier to change)价值观