当前位置: 首页 > 科技观察

工作六年,软件开发的一些新想法

时间:2023-03-15 18:38:06 科技观察

一个人的智商是否高人一等,取决于他的头脑能否同时容纳两种相反的思想,而不妨碍他的行为;今天pshu翻译了一篇Perspectiveofasoftwareengineerwith6yearsexperience.希望这些鲜明的观点能成为你提高脑容量的素材。原文地址https://chriskiehl.com/article/thoughts-after-6-years《Software development topics I've changed my mind on after 6 years in the industry》以前我很怀疑但现在很赞同这个观点当你需要和不同经验的开发者一起工作时,更适合使用强类型语言(译者注:如Typescript)的站会(早会的一种形式)对于帮助新人非常有用帮助我们改正开发过程中的错误;敏捷开发中的scrummaster为了浪费时间而想出的会议不是不必要的。软件架构很重要。一个好的抽象加上一个糟糕的实现不会对代码产生严重的影响;但是错误的抽象和分层遗漏会导致代码很容易腐烂。Java不是垃圾。投机取巧的代码不是好代码;代码可读性是最重要的。不要迷信编程范式,任何编程范式都可以写出糟糕的代码。所谓“最佳实践”是有具体场景的,不是万能的。如果你一味地追求“最佳实践”,你很有可能成为最好的笨蛋。如果没有必要,合格的工程师不会主动设计可扩展的系统。对代码进行静态分析非常有用(译者注:如lint,但纠结于具体规则,见下文“始终认同观点”第一篇)DRY(Don'tRepeatyourself)仅用于避免一个特殊类型的问题,而不是一个目标。通常,关系数据库(RDBMS)优于非关系数据库(NoSQL)。函数式编程只是一个工具,不是万能的新学的观点编程时要遵循的原则应该按照以下顺序:YAGNI、SOLID、DRY。YAGNI:你不会需要它,不要写你现在不需要的功能,大多数对未来的预测都是无效的;SOLID:面向对象设计中的5个原则:单一职责原则开闭原则开放扩展和修改封闭原则,也称开闭原则里氏替换原则李氏替换原则接口隔离原则依赖倒置原则依赖倒置原则DRY:Don'trepeatyourself,onlydoitonce如果你理解缩写,你可以尝试用你自己的想法来与这个观点竞争。如果你不理解这些术语,最好以空杯的心态接受和学习。纸和笔仍然是最好的编程工具,但它们仍然没有被广泛使用。纯粹主义和实用主义之间的妥协通常是个好主意。添加更多技术堆栈不是一个好主意。直接与用户沟通通常会花费更少的时间并导致对问题的更准确理解。“可扩展性”这个词在程序员心目中是一种神秘的迷信;仅仅提及它就会使他们陷入疯狂的疯狂之中;做最残酷的事情似乎是合理的。尽管戴着“工程师”的高帽子,但他们的工程师决策大多是盲目地使用现有的技术框架或编程模型,没有进行任何技术分析和研究。90%甚至93%的项目经理在项目中其实是可有可无的;即使他们明天突然消失,也不会对项目造成任何负面影响,甚至可能会提高效率。进行了100多次访谈后,我发现访谈完全没有用;但我也不知道如何更好地面试。始终同意那些在代码风格、lint规则和其他琐碎问题上苦苦挣扎的人是疯子代码覆盖率和代码质量之间没有关系在大多数情况下,整体存储库更好。TDD纯粹主义者是最糟糕的。在他们脆弱的小头脑中,没有其他现有工作方式的余地。工作10年后,让我们看看这些观念发生了怎样的变化。翻译完毕。