菜单...

2020年5月25日

更好的思维导图助力更好的编码

Loading...

作为一名软件开发人员和著名编程杂志的编辑,Andrew 经常讨论在编写代码时做笔记的好处,以交付清晰、可靠的代码。他发现,在编码过程中,将观察结果和待办任务记录在一个结构化的文档中有助于他跟踪自己在项目中的位置以及下一步需要去的方向。

在尝试了各种智能记录笔记的方法后,他发现思维导图是一种优雅的解决方案。他可以将自己正在进行的项目部分布置在思维导图中,并用笔记和待办任务装饰它们,从而能够轻松找到这些信息。

这种方法为他清理了心灵空间,使他能够专注于正在处理的代码,同时不会丢失所需的上下文信息。他还使用思维导图来分析代码,具体说明见下文访谈。

请告诉我们一些关于您的信息。

过去五年,我一直担任 Java Magazine(来自 Oracle)的编辑。在此之前,我是 Dr. Dobb's Journal 的主编。在之前的职业生涯中,我曾担任多本编程出版物的编辑。我最初的职业是软件开发人员,并一直以副业身份参与编程,为各类开源项目做贡献,并进行我自己的项目。

您平时的娱乐活动是什么?

我学习钢琴。比编程难多了。成为钢琴专家的道路确实艰难。我觉得大多数程序员倾向于对自己的编程技能过于自信。我也是这样的,直到我被看到旧代码让人怀疑我怎么会写出那样的东西而回到现实。但在钢琴方面,谦逊始终存在。你不断意识到还有许多东西需要学习,意识到大师们的不可能达到的水平。

思维导图如何帮助您的生活或工作?

我在两个不同的领域使用思维导图:


  1. 为我自己或与家人朋友一起进行任务和项目的头脑风暴;

  2. 编程。正如我稍后描述的那样,我在软件开发中使用思维导图有三个主要目的。

您使用 XMind 多久了?

大概有六七年了;可能更长。

您是如何想到在编码中使用 XMind 的,因为对开发人员来说这不常见?

最初是从 Agile 的奠基人 Kent Beck 开始的,他曾建议在编程时养成记录所有决定的好习惯。(包括一些重要的决定,比如:“我将此变量的最大值保持在 70。” “我将确保用户可以在订单中输入分数值。” 以及一些较小的决定,比如“我需要扩展集成测试以覆盖这段新代码。” 等等。)我发现仅仅将这些决定写下来是不够的。但将它们放入项目任务/缺陷跟踪器则过度了。因此,我开始用思维导图记录我正在处理的项目部分,并用这些微观决策和笔记装饰它,以便在处理项目的其他部分时能够找到并回顾它们。我发现思维导图的表示对于快速找到笔记非常有用,以便在处理项目的其他部分时能够找到并回顾它们。

我还在进行特性设计时使用思维导图。我会将新特性作为核心主题,然后分支为子特性,并附加决策到这些分支,如实现笔记、提醒,甚至可能提出对象和方法的名称。这让我在撰写代码之前就能详细考虑代码。很多时候,我会将包含几个方法的分支移动到另一个分支上,这让我轻松进行更改,并提高了在编写代码时对进展方向的信心。

这是一个新特性个例——将 HTML 添加到现有工具中:

Mind map illustrating HTML5 support, covering output verification, plugin details, and startup process.

最后,我开始在阅读不熟悉的代码时使用思维导图。大多数程序都有层级结构,非常适合在思维导图中表示。这是来自名为 iText 7 的库的分析,一种不常见但实用的用例。

⚠️ 图片缺失

通过这种方式,当我在阅读代码时,我能在思维导图上看到我曾到访的地方和我现在所处的位置。我能看到通向当前位置的路径。此外,在阅读过程中,我也在编制文档,以便今后参阅。我仍在试验这种用例。

您在 XMind 中最喜欢的功能是什么?为什么?

老实说,是其易用性。我能快速移动,把我脑海中的东西放入思维导图。我非常喜欢这一点,因为在有事情需要记录时,时间往往至关重要。

您如何保持高效?您还在使用其他提高效率的应用吗?

在多个社论中,我对此话题写了很多。我发现消除干扰、使用好工具以及听古典音乐都很有帮助。


咖啡还是茶?

早上用咖啡提神。然后大部分时间喝茶。至于其他二元选择:喜欢狗甚于猫,喜欢空格甚于制表符,喜欢勃拉姆斯甚于瓦格纳,喜欢莫奈甚于马奈。

注:照片由 Bob Adler 提供

更多文章

Xmind logo - mind map and brainstorming tool

功能

解决方案

资源

Xmind logo - mind map and brainstorming tool
Xmind logo - mind map and brainstorming tool
Xmind logo - mind map and brainstorming tool