编程

开发者的 20 条生产力技巧

400 2023-11-18 00:47:00

在本文中,我介绍了一些实用而直接的技巧,可以提高开发人员的生产力(有些技巧也适用于非开发人员),我每天都在使用这些技巧。

我将这些技巧组织成以下 4 个主题,方便参考:

  • 提升工作环境.
  • 优化代码工作流。
  • 让调试更机智。
  • 锻炼软技能

提升工作环境

1.选择好的主题

对于这样一篇文章来说,这似乎是非常规的,但选择正确的主题对你的工作效率起着至关重要的作用。许多开发人员默认他们最喜欢的 IDE 使用黑暗主题,经常认为它们更容易上手。然而,这一观点在科学家中可能并不普遍。就我个人而言,我觉得黑暗的主题很不舒服,导致文本看起来很模糊。如果你有同样的经历,可以考虑尝试一下较明亮的主题。像 Solarized 这样的调光主题也是一个很好的选择。

为什么主题选择会影响生产力?

一个让你眼睛紧张的主题会降低你的注意力,进而降低你的效率。优先考虑你的眼睛舒适度,以获得更好的编码体验和整体健康。

2. 主要快捷方式

请浏览 IDE 设置中的可用快捷方式,通常位于 Keymap 选项下。不过,更积极主动的方法,可以考虑使用像 Key Promoter 这样的插件。此工具不仅可以帮助您记住手动任务的现有快捷方式,还可以建议为尚未分配快捷方式的操作创建快捷方式。

以下是一些你可能会考虑调查的事情,

  • 使用插入符号操作快捷方式执行选择、删除以及单词和行之间的导航等任务,不仅适用于IDE,也适用于包括终端在内的所有文本输入。
  • 交换行和复制行。
  • 访问剪贴板历史记录。
  • 跳转到一行,跳转到一个文件,然后跳转到文件中的一行。
  • 访问重构选项(尤其是 JetBrains 产品)。
  • 切换文件树的显示。

等等

3. 升级硬件

如果你只依赖笔记本电脑的键盘和触控板,包括魔术触控板,那么可能值得考虑改用外部键盘和鼠标。虽然可能需要一些调整,但投资回报是巨大的。这一变化将在导航代码库时释放更大的灵活性和准确性。你仍然可以使用键盘快捷键复制大多数触控板手势(如果你担心的话)。

以下是一些鼠标建议:

  • 优先考虑符合人体工程学的设计,使其舒适地适合你的手。
  • 选择至少带有导航按钮(上一个和下一个)的鼠标,这将极大地帮助代码导航。

我知道这个建议可能会给人一种居高临下的感觉,而且你可能已经对目前的设置感到高效了。不用担心,我们还有很多其他不那么固执己见的建议。

4. 考虑聚焦视图

许多开发人员选择多屏幕、多视图终端等。然而,您不太可能始终同时监控所有这些源。人类的认知负荷是有限度的。除非你正在处理一个需要聚合多个信息源的异常复杂的场景,否则缩小你的关注范围可能会更有成效。

您可以探索其他选择,例如使用关闭显示模式或对终端选项卡进行命名,以实现更精简的工作流程。

优化代码工作流程

5. 学习正则

我再怎么强调也不为过:正则表达式(Regex)是一个非常强大的重构和搜索工具。我知道它们很难完全掌握和记住,但你不需要把所有的东西都记在心里。重要的是理解概念,如分组、lookahead 和 lookahead。在那之后,只要需要就可以搜索语法。

正则表达式不一定是完美的,也不一定是为长期可维护性而设计的。他们可以随心所欲地为手头的特定任务完成任务。

6. 或许不需要浏览器

此建议主要适用于后端开发人员。在许多情况下,您可以高效地开发功能,而无需直接与浏览器交互。你可以完全依靠自动化测试来实现这一点。这就是像测试驱动开发(TDD)这样的东西非常方便的地方。虽然它最初可能会减慢开发速度,但最终在解决错误、引入新功能以及在收到 QA 反馈后进行更改时节省了时间。

有了经过良好测试的后端,您可以放心地进行修改,而无需繁琐的手动测试过程,以确保不会意外损坏。

7. 对你的测试和 QA 工程师有信心

这是对前面提示的补充。当你创建了强大的功能测试(或生态系统中的等效功能测试)时,手动点击在很大程度上就没有必要了。只要你的测试是决定性的,你就在正确的轨道上。

如果你还没有考虑将突变测试纳入你的工作流程。这种做法有助于准确指出不确定的测试,并增强您识别可能需要在代码中进行测试的其他场景的能力。

💡 免责声明

这并不意味着盲目地将代码推向生产环境。它只是意味着避免耗时的任务,这些任务可以通过测试自动化或在单独的过程中进行验证,例如 QA 阶段。

8. 优先考虑结果,之后再重构

这个概念与 TDD 密切相关。这个想法是,先实现结果,然后再重构代码会更快。不要第一次就把它做得完美。一旦您了解了代码的全貌并对其进行了彻底的测试,您就可以通过消除冗余并使其更加模块化和可维护来轻松地对其进行优化。

9. 你可能不需要文档

可能看起来像标题党,但这里的概念是,有时深入研究 vendor 方法的定义来理解其功能会更有效(也更有益)。根据我的经验,这种方法有两个显著优势:

  • 它允许深入理解这段代码是如何工作的。
  • 它可以让你发现未归档的的低级助手函数和技术。

因此,这不仅仅是理解一种方法的作用;这也是一个学习新东西的机会。无数次,我仅仅通过检查源代码就深入了解了新的低级助手、技术和方法。

10. 休息

我们经常盯着屏幕,努力处理复杂的功能或解决顽固的错误。随着时间的推移,这可能会变得令人沮丧,有时最有效的解决方案就是休息一下。你可以把注意力转移到 PR 评审或规范撰写等任务上,甚至可以出去散步、喝杯咖啡或短暂地凝视窗外。关键是以全新的心态回到你的问题上来,这可能会提供不同的视角,并有助于顺利处理这个过程。

这种方法类似于 Pomodoro 技术,但没有严格预定义的时间框架,这可能会偶尔扰乱你的生产流程。

11. 使用 GitHub 在线编辑器

对于那些在 GitHub 上托管存储库的人,你可以利用 GitHub.dev 上的在线 VSCode 编辑器。这可以帮助进行 PR 评审(包括留下评论、建议等)和小规模提交,而无需在本地切换分支。

您可以简单地将 PR 的 URL 从 github.com 修改为 github.dev,或者再 PR 上按下 . 键直接访问在线 IDE。

让调试更机智

12. 尽早调试查询

当使用 ORM 时,处理复杂的 SQL 查询不总是那么简单。当你在处理新特性时,碰到注入测试失败或者非预期行为这样的问题,请首先检查 ORM 在幕后生成的内容。验证生成的查询是否与应该执行的查询一致。

13. 掌握错误信息

遗憾的是,并不是所有的错误都有明确的解释,尤其是那些源于低等级 vendor 代码的错误。因此,在理解错误及其根本原因方面投入额外的精力是至关重要的。

下次遇到类似错误时,您应该及时识别根本原因或有助于理解的原因。这种主动的方法可以为您节省宝贵的时间来排除故障和解决问题。

14. 将每个调试会话转化为学习机会

对任何减缓进度的事情保持警惕,并确保将调试经验转化为宝贵的学习机会。因此,您可以根据上次错过的内容调整调试策略。

例如:

假设你是一个 Laravel 开发人员,投入了大量时间调试深度嵌套代码,结果令人困惑。您最终发现 Eloquent 的默认行为是让查询中未选择的属性返回 null。下次当您发现自己处于涉及 Eloquent 的复杂调试会话中时,请考虑暂时启用 Eloquet 严格模式。调试策略中的这种适应性可以帮助您避免将来出现类似的陷阱。

锻炼软技能

15. 永远不要忘记你做过的和你必须再次做的

你是否曾经在会议上难以回忆起昨天或度假前完成的工作?或者忘记完成一些重要的任务,比如拼写卡片或回答问题?如果是这样的话,还有一个补救办法,那就是建立一个强大的待办事项工作流程。

个人记事

我首选的工具是 Notion。我创建了一个每日任务板,在那里我列出了我需要做的一切,我目前正在处理的事情,以及我已经完成的事情。我还使用它来跟踪正在进行的对话或需要我输入的日程。

每当分配任务时,无论是指定工单还是解决合并冲突,而我无法立即解决,我只需将其添加到我的待办事项列表中,以便稍后跟踪。这种方法使我始终领先于任务。

让我很喜欢使用 Notion 另一个特性是,我可以为这些日常任务附上注释和评论。这使我可以使用搜索栏轻松地从过去的任务中检索上下文或有用的链接,这在许多场合都是非常宝贵的。

16. 利用日历

谷歌日历或类似工具对于高效的日常组织来说是非常宝贵的。确保你有效地使用它们来安排你的日常任务。

在每个工作日结束时留出 15 分钟来计划第二天的日程。这种做法可以为你的任务和优先级提供一个结构化的计划,从而大大提高你的生产力。

17. 安排小任务的时间

花一整天的时间完成一项任务可能并不总是最有效的方法。为了提高你的工作效率,在日历中为诸如 PR 审查、卡片细化(拼写)等任务分配反复的时间段。此外,安排按需时间段来处理小的特别请求,如审查 RFC 或临时代处理 PR 。这种策略将使你能够完成更多任务,不用屏蔽同事,并保持清晰的心态。

当碰到这些任务的时间时,可以考虑短暂地暂停你正在进行的工作来解决它们。

18. 安排专门的专注时间

为你进入“禅模式”的时间分配特定的集中时间。这是一个消除干扰、集中精力创建或完成任务而不受干扰的时间。

记住暂停你的通知并更新你的状态,向其他人发出你处于专注状态的信号,这样他们就不太可能打断你。

19. 提问以节省时间

虽然探索和学习新事物是有价值的,但它并不总是最节省时间的方法。当面临挑战或不熟悉的任务时,可以考虑寻求捷径,向同事寻求指导,集思广益,了解如何完成任务。这可以节省大量时间,防止不必要的挫折。

20. 让他人别屏蔽你

屏蔽带来延迟会损害你的生产力和团队效率。在等待他人时,轻轻地推动他们采取行动。确保需要他们输入的任务及时完成,有利于所有相关人员,并有助于防止任务突然堆积,这可能会扰乱您的工作流程,并使上下文切换具有挑战性。

结语:找到适合自己的方法

要记住,这里分享的技巧是我个人观点和对我有用的东西。虽然其中一些可能会引起你的共鸣,有一些则可能不会。真正重要的是将这些技巧与其他技巧一起作为寻找自己独特方式的垫脚石。

我希望你觉得这篇文章对你有用!