作者 | Henrik Warne
译者|Ric Guan 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
我非常喜欢 Jeff Bazos 的这句话:
“任何不经常改变想法的人都大大低估了我们生活的世界的复杂性。”
“Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.”
最近我一直在思考我对软件开发的看法发生了哪些改变, 以下是我想到的:
自行记录代码:我曾经认为编写代码中并不需要任何标注,只要记住类、方法和变量的名称就足以理解程序的作用。多年来,我意识到一些标注是必要且有用的。现在,当有一些特别棘手的问题发生时,无论是架构中,还是在域中,我都会添加标注。这样每次我回到写了标注的代码时,我都感到庆幸我花时间去做了。因为我可以很快的看懂我写了什么,以及我之前遇到的问题。
单元测试私有方法:几年前,我写了一篇名为 “单元测试私有方法” 的博客文章,其中我认为不妨将它们打包为私有,这样就可以轻松地为它们编写测试。然而,有几个人评论并认为我可以通过公共接口测试私有方法。经过一番思考,我最终同意了他们的观点,并改变了我的做法。
使用集成开发环境(IDE):很多年前,我在编写代码时使用的是 Emacs。我对此很满意,并没有特别觉得缺少什么。然而,有一天,我的同事向我展示了 IntelliJ IDEA 的强大功能。我当时就被震撼到了,自此再也没有回头了。最大的区别是导航 -- 使用导航在代码库中移动要容易得多。如今,我无法想象不使用集成开发环境会怎样。
使用调试器: 我以前喜欢使用日志语句和 printf 来排除故障。它简单有效,并适用于多种情况。然而,几年前当我开始编写 Go 代码时,我的同事向我展示了调试器在测试用例失败时探索程序状态是多么简便。我以前使用过调试器,但他向我展示了它们的一个很好的使用场景。
居家办公:即使在疫情期间,当我全职在家工作时,我也对远程工作持怀疑态度。然而,我现在改变了主意,我认为居家办公很棒。可以让我为以前无法工作的公司工作。不必通勤是另一个很大的优点。缺点是我仍然怀念和人面对面的互动。但总的来说,我认为优点大于缺点。
使用 ChatGPT:当 ChatGPT 出现时,我对它的功能印象深刻。然而,我对它在软件开发中的具体运作方式有点怀疑。但我的同事告诉了我他使用 ChatGPT 来帮助开发的诸多场景。所以我决定花更多的精力来看看如何使用它。对我来说,它主要用途是执行较小的独立任务。例如,生成 Python 脚本的初稿、编写 SQL INSERT/UPDATE 触发器,或者为我提供一个 sed 正则表达式,用于从日志行中删除初始时间戳(如果存在)。在所有这些情况下,它都节省了很多时间。
我改变主意的事情够多了吗?我不知道。但偶尔检查一下你对如何看待开发软件的信念绝对是值得的。在上述许多案例中,我需要其他人向我展示或说服我其他优秀的工作方式。因此我的结论是,协作和结对编程对于传播好想法非常重要,并且也可以提高工作效率。
那么在软件开发方面,你又改变了哪些想法?
领取专属 10元无门槛券
私享最新 技术干货