软件工程师生产力:编码

2025-06-04

软件工程师生产力:编码

本文发布在我的博客https://coder.today/software-engineer-productivity-coding-75fa21d3804上。这是它的修订版。

生产力技巧是一系列面向编程人员的通用文章。这些技巧适用于任何环境、框架、语言或平台。

这个故事属于多流系列:

  1. 生产力:编码——本文
  2. 生产力:工作流程——行为和环境提示

我很懒,但我珍惜我们最宝贵的财富:时间⏰。话虽如此,我想分享一些提高效率的小技巧。

TL;TR🕮

  • 自动化一切
  • 学习并定制您的工具
  • 存储你的片段和其他提示

自动化命令🤖

观察自己,找出你每天多次输入的命令,并根据需要进行简化和分组。如果你只使用 Git 可视化客户端,你应该学习底层命令。

几乎所有命令。我通常会手动执行重要命令链中的最后一个命令(例如test&&build&&copy&&upload,手动部署)。

使用别名可以减少人为错误,提高交付效率。省去日常繁琐的步骤。

自定义别名的缺点是:缺乏灵活性和认知负荷。这意味着别名只能在一个环境中使用(例如你的工作笔记本电脑),你必须记住它们。

我还推荐使用git 自动补全功能或bash-it之类的框架,它们通常(在命令命名方面)有一定的逻辑性,更容易记住。搜索针对你的语言、框架或平台构建的 bash 助手。

无需输入当前 git 分支名称,我节省了超过 100 万个字符的输入量,并且使用别名我避免了许多可能的错误。

即使您不使用别名,使用HEAD而不是 的做法master也会使您减少人为错误,例如习惯于输入git pull origin HEAD而不是git pull origin master

即使您使用的是 Windows,您也可以使用 Bash,我使用Git for Windows 中的 Git bash

Bash 提示:学习使用bash 历史记录,尤其是 CTRL+R

自定义你的工具🌂

你花费大量时间使用 IDE、Bash 和其他工具。请根据你的需求和感受定制你的工具。你应该💙 使用这些工具,否则你的工作会很糟糕。如果你讨厌某些东西,现在就修改它(比如缺少键盘快捷键、显示颜色),那就继续吧,修复它然后回来,我会等你的。

我喜欢我的聚会是欢快的、色彩丰富的,我所有的编辑器都有黑色主题。

自定义您的环境

让你的环境为你服务,而不是与你作对。最基本的例子就是在全局 git.gitignore文件中添加你的 IDE 文件。这样,你每台机器只需添加一次,而不是每个项目都添加,这样可以节省时间。

#~/.gitignore
.idea/
.vs/

观察一下自己,过去还有哪些系统设置有问题,比如防火墙规则?Python 版本?Unity3D 本地缓存?一次性解决所有问题。

了解你的工具🏧

当您学习新的开发技术、新的框架、范例和设计模式时,您应该学习为您设计的工具。

文本编辑器是为编写文本的编辑者准备的,而 IDE 是为专业开发者准备的。为什么?因为我们珍惜时间,我们是专业人士,我们的时间是有报酬的,我们希望在有限的时间内尽可能多地交付成果。IDE 更重,因为它们内置了更多专为我们设计的功能。附言:一个带有数十个插件(例如编译器/git/linter 集成)的文本编辑器才是 IDE。

走出舒适区来提高你的技能。

升级你的 IDE 并学习新功能,很可能它能满足你的需求。偶尔搜索一下新的 IDE,你可能会有惊喜。

使用更多键盘快捷键可以大幅提升工作效率。例如,“扩展选择”功能多年来为我节省了大量时间。其他示例包括实时模板和多光标

ide1

我经常使用的实时模板是调试消息,例如 ifIsDebugBuild {print("msg", var)}或 try/catch 表达式。

您可能不时使用一些正则表达式替换,但有时多光标更简单、更高效。

ide2

对于多光标来说足够好的场景:硬编码数据、枚举、模板以及大多数无聊的东西。

我看到的最新 IDE 功能是机器学习助手 (Codota)。它了解所有开源代码、设计模式以及其他开发人员所犯的错误。

自动化你的开发环境🎰

上次我找到新工作时,花了好几天时间才为一个大项目搭建好完整的开发环境。其实不必这样,现在有一些专门为这类自动化设计的工具。Boxstarter 我还没用过)可以在几分钟内,通过一段代码,构建你的Windows开发环境。

我开始用Docker来做这类事情。使用简单的 CLI 命令,你就可以安装所需的大部分工具/服务/软件。无需编译、搜索软件包或二进制文件。

示例:具有特定版本和可视化管理工具的持久 mongo-db 实例。

不要成为🔨

“对于一个拿着锤子的人来说,所有东西看起来都像钉子。”

如果你需要系统脚本,不要用 JavaScript,学点 Bash,问问同事或 Stack Overflow 怎么做。如果你需要一个小型浏览器动画,那就学习 CSS3。你懂的。虽然这会多花几分钟,但它会为你的未来打开一扇巨大的大门🚪。

大多数工程师都有这个问题。我以前用 PHP 做所有事情,计算机科学毕业生却被 Java 或 CPP 卡住了。这是人之常情,设计师用 Photoshop 时也会犯同样的错误,QA 通常会用 Jira 之类的 bug 跟踪软件。
我们的想法是,逐步扩展你的工具集,一次写一个小脚本。

* 保存时 💾

在“保存文件”操作中尽可能地自动化一切,我最常激活的是“保存时自动格式化”

自动格式化使我能够编写快速而粗糙的代码,我不会浪费时间在缩进、逗号、分号或其他美化元素上,那是 IDE 的工作。

自动格式化还能避免更多人为错误,例如忘记格式化,导致之后产生 git 冲突或愚蠢的提交。您和您的同事将更加高效。

IDE 可以帮您完成 IT 工作

您可以根据需要在保存时创建自己的迷你管道:编译、错误检查、单元测试、热推送代码(用于 Web 开发、JS 和 CSS),等等。对于更耗时的脚本,我使用手动触发的任务。

例如,在Go中,我启用了“保存时运行测试和覆盖率”功能,始终打开控制台可以提高我的效率。我可以更快地工作,而不必担心重构,而且我每分钟都能知道代码是否正确。

待办事项🔖

在代码中使用更多功能//TODO's。不要打断当前流程,不要因为解决相邻问题而脱离“工作状态”。如果遇到小问题,请删除 TODO,稍后再以更好、更广阔的视角返回。

片段📚

不要像我的一些朋友那样,把代码片段存储在聊天室里,你可以使用Gists或其他类似的服务。你自己的代码库,谷歌云端硬盘里的文档,随便你怎么称呼。这样做的目的是存储那些有用且难以找到/获取的代码片段。这将节省你的时间,以及你未来的时间。

分享 1-n

我们可以将之前的解决方案推广到其他问题。如果一位同事遇到了问题,而你打算帮助他,那么将来很可能也会有其他同事需要这个答案。作为一条经验法则,使用1-n 个持久的沟通渠道分享即关爱

保持项目文档简洁,撰写文章/故事,即使只是内部交流。记录你的内部会议,这样
做的目的是为了避免通过电子邮件/私聊解决问题,而是将知识分享给其他人,以便他们能够获取。

这将节省您的时间,因为您不必两次解释/解决相同的问题。

自动化您的 API 调用📝

如果您使用任何类型的 API,我建议您使用Postman之类的工具。如果您将调用集中到一起,甚至可以自动化它们(在持续交付管道中),与同事共享它们(作为配置文件),并验证响应(使用 JSON 模式库)。我过去常常将测试与服务器 API 源代码放在同一个仓库中。

谢谢!🤝

请向我发送您的反馈,以便我改进以下帖子。

其他资源

生产力:工作流程——行为和环境提示

Joel 测试:提升代码质量的 12 个步骤

结尾

文章来源:https://dev.to/bgadrian/software-engineer-productivity-coding-jkp
PREV
十大 VS Code 设置
NEXT
Golang 职位:在哪里可以搜索空缺职位