AI时代提高开发速度和效率6种方法

87 阅读8分钟

作为软件开发人员,我们总是希望不断提高自己。它可以通过编写更干净、更高效的代码、使用新的设计模式、扩展我们的堆栈或深入研究特定技术来实现。

我们努力改进;我们被鼓励对行动项目进行事后分析,并不断询问哪些是正确的,哪些是错误的。我们还鼓励进行冲刺回顾,以便下次做得更好。我们总是通过代码审查或与团队领导进行 1:1 交流来寻求反馈。

如果你觉得自己已经达到了一个平台期,并且你没有在冲刺中学到任何新的东西,那么你应该采取积极主动的方法并对自己进行事后剖析(抱歉,这个残酷的类比)!也就是说,找到您的弱点并尽可能进行优化,以更快地交付更多价值。

我想在本文中重点关注的是开发速度和效率——任何开发人员都可以随时改进的两个领域。当我说_速度时_,我不仅指的是您的打字速度(但如果您真的愿意,欢迎您看看如何在打字速度测试中进行测量),而是指将新代码推送到生产环境的速度调试所需的时间。

在开始我的方法之前,我想强调一下,你的主要指导方针是——使用任何能让你更快的东西!即使它不是“主流”或被认为是“菜鸟式”。

  • 例如,大多数开发人员只使用 Git CLI,对于使用 Git UI 犹豫不决,因为担心被贴上“不专业”的标签。我可以自信地说,对于许多用例来说,UI 比使用 CLI 快得多。

  • 怎么会?我很高兴你问了!当仅评论特定文件/行、解决冲突、查看更改和挑选时,我会结合 UI 和 CLI。对于每种情况,我都会问自己 – 现在什么更快?

有很多很棒的 Git 工具,例如GitKrakenSourcetree和我个人最喜欢的 - GitHub Desktop。互换使用它们使我的生活更轻松,工作更有效率。

那么,还可以做些什么来提高速度呢?继续阅读。

不要成为程序员,而要成为问题解决者


这听起来像是企业励志海报上的陈词滥调,但许多开发人员在解决问题之前就开始编写代码。

很多时候我们会直接进入技术细节,尽管事实上大多数时候我们需要的只是一个简单的解决方案。每个伟大建筑师的设计一开始都是非常复杂的,并且有许多移动部分,直到建筑师得到设计审查。经过审查后,架构师将其缩减为仅必要的、简单的和小的组件。

我们也是做不必要事情的大师。一个很好的例子就是端到端测试的拥塞。E2E 测试的编写和维护成本非常昂贵,而对于大多数用例来说,简单的单元/组件/集成测试将提供相同的值,而在其他情况下,它是完全多余的。

开发人员有时会像 Roomba 一样——被困在地毯前,而不是绕过它。在我们的世界中,这类似于发现一只虫子并立即跳到它身上,不懈地试图绕过广场。

多年来,Roomba 的技术取得了巨大进步。不要像2003年的车型一样,不断地撞墙。成为 2030 年的典范,知道如何纵览全局、适应、即兴发挥,并以最有效的方式完成工作。

关闭你的电脑。拿起笔和纸


开发人员倾向于在思考之前就开始编码。正如我之前所说,我们渴望解决这个问题。然而,事情应该反过来才对!在开始任何事情之前,尝试花 5 分钟时间画出几张图表来说明您计划要做的事情。我向你保证,这 5 分钟将会带来数倍的回报。如果思维过程准确,就会得到最少且快速的解决方案,以及更快的错误检测。

想象一位国际象棋大师。他们可以在心里画出棋盘接下来 30 个步骤的图像,并根据该图像采取下一步。如果我们变得更像职业国际象棋棋手,我们就可以预测死锁、竞争条件、浪费的代码等等。

即使在同一团队中,不同开发人员的 IDE 和工具也有所不同。但请记住——做任何能让你更快的事情!始终尝试探索新工具,也许它们更适合您并且可以节省您宝贵的时间。另一方面,尽量避免冗余工具和中断。现在您已经编译了理想的工具箱,是时候掌握它们了。我的意思是你应该知道他们的所有:

  • 能力和漏洞

  • 快捷方式(更多详细信息见下文)

  • 扩展(更多详细信息如下)

  • 自定义配置以提高速度和效率

此外,你还需要掌握当地的环境。根据我的经验,开发人员花费大量时间对本地环境进行故障排除,并且很快就会感到沮丧。当您能够执行以下操作时,您应该在自己的城堡中感到舒适:

  • 快速高效地排除故障

  • 掌握编程语言生态系统

  • 创建助手 – bash/python 中的脚本、makefile、预定义的 docker-compose 等……

  • 添加新技术时,请记住在当地环境中为其提供良好支持

寻找捷径!


作为开发人员,我们需要努力让双手离开鼠标,但永远不要离开键盘。当我们敲击键盘时,我们必须知道从 A 到 B 的最短路径。从行首到行尾,从浏览器到终端,从截图并发送给同事松弛。

你应该学习哪些捷径?学习捷径是一场永无止境的竞赛,任何事情基本上都有捷径,那么在哪里停止呢?答案很简单,如果您的手大部分时间都放在键盘上,则表明您还有改进的空间。

了解捷径在 3 个主要领域会带来最大的回报:

  • 操作系统

  • IDE

  • 主要接口,如我们的网络浏览器、终端、Slack 等。

每当我切换到新的 IDE 时,我都会遵循以下步骤:

  • 创建一个文档文件,其中包含我可能需要的 20 – 30 个最常见的快捷方式

  • 打印文档并边工作边练习几天,直到掌握快捷方式

  • 当我遇到无效的点时,我会寻找相关的捷径。如果我找不到,我就自己创建一个

所有这些都不应该花费我超过几分钟的时间,从现在开始我每天都会赚回这段时间。

创建别名和快捷方式


我们每天都在做重复性的工作。有时,您基本上是在运行手动剧本。我们重复使用 Git、IDE、终端、文件管理器、操作系统等。我鼓励您向终端添加别名和快捷方式。每个别名最多应包含 1-6 个字母。

我要添加的常用别名:

  • Git 常见操作 – 例如拉取、创建分支、合并等。

  • Docker 命令 – 例如 build、tag、docker exec -it /bin/bash …。

  • 您正在使用的主要 CLI 工具的别名,例如 kubectl

  • 用于打开应用程序或重要目录,即打开Vscode代码。

我最喜欢的别名是(针对单个提交打开拉取请求):

gpp='f() { ga . &&  gc -m $1 && gpsup && sleep 1 && gh pr create --fill };f'

它依赖于您下载 GitHub CLI 工具 (gh) 并配置它,以便能够添加其他别名:

ga='git add'
gc='git commit'
gpsup='git push --set-upstream origin $(git_current_branch)'

gpp "Do all the work for me"

投资您的 IDE、终端和浏览器


我们花费时间的绝大多数应用程序都在 IDE、终端或浏览器中,因此优化所有这些应用程序中的工作如此重要。

需要注意的一件重要事情是正确配置 IDE 调试器。很多时候,开发人员往往会变得懒惰,只打印日志。我同意会话中调试是有效的,但在许多其他情况下则不然。

我建议在互联网上搜索最适合您需求的扩展。以下是我正在使用的扩展:

VS代码:

  • Editor: Format on save在用户设置中启用

  • 代码拼写检查器

  • 更漂亮

  • 自动重命名标签

  • 标记

  • 材质图标主题

  • 您的编程语言和标记语言的任何扩展

    • 为语言配置格式化程序和 linter

Zsh ( zsh 允许您放置扩展,我还建议使用 iTerm 作为您选择的终端)

人工智能新时代


您可能听说过并且已经使用过 ChatGPT 或类似的东西。起初我真的很怀疑人工智能工具到底能帮我多少。我非常喜欢的一个这样的工具是 GitHub Co-Pilot。我喜欢它的原因是它不会强迫我做任何事情而不是按 TAB 按钮。安装非常容易,而且成本不高。我确信您的经理会批准它的预算(我的经理是向我介绍该工具的人!)我发现它对于测试、命名、样板文件、短函数等非常有用。

  • 试试下面的工具来加速处理日常工作和代码生成, 电脑端和手机端均可使用,简单方便

image.png

image.png