软件工程令人不安的真相 • Buttondown


这里有一些我相信的关于软件工程的令人不安的事实!(banq:令人焦虑?)

  • ...
  • 具有特殊语法的复杂 DSL 可能是死胡同。Ruby 和 Scala 都非常重视这一点,但都没有让它流行起来。
  • 如果没有其他因素,静态类型语言比动态类型语言更适合大型项目。对此没有严格的学术证据,但许多公司一直在将 typescript/mypy/sorbet 反向移植到现有的动态代码库中,并且案例研究非常积极。虽然动态语言可能是大型项目的正确选择,但您必须说明为什么它是正确的选择,例如杀手级的库、特定于域的东西等。
  • 对软件工程的实证研究是一次沉船事故,并且在可预见的未来仍将是一次沉船事故。
  • 形式方法永远不会成为主流,基于属性的测试也不会成为主流,任何需要大量训练才能有效的正确性技术也不会成为主流,无论它实际上有多有效。
    • 软件项目极易受到熵的影响。任何需要持续维护的技术或流程都会衰退,除非最高管理层承诺维护它。
  • 与不同的 API 集成真的很难,需要做很多工作。这永远不会变得更好,因为 API 设计是分散的,每个人都会用他们的 API 做出不同的决定。
  • 结对编程可能比两个单独开发者更好。Mobbing可能比结对更好。
  • 团队在实践中主要关心团队内部的摩擦。他们更喜欢每个人都已经知道的工具和技术,而不是只有一个人知道而其他人都必须学习的东西。这意味着与个人相比,新想法必须更加努力才能被团队采用。
  • TDD/FP/Agile 狂热者可能是狂热者,因为采用 TDD/FP/Agile/Whatever 使他们成为比以前更好的程序员。如果在他们成为狂热者和不学习新技术之间做出选择,那么他们成为狂热者可能对他们的公司和他们的发展更好。
  • 任何技术面试都将是游戏性的,并且排斥某些代表性不足的群体/背景。
  • ...

原文点击标题