2020年5月25日

更好的心智圖有助於更好的編碼

Anne

作為一名軟體開發者和著名程式設計雜誌的編輯,Andrew 經常討論在編碼時做筆記的好處,以提供清晰可靠的代碼。他發現,將觀察和待完成的任務記錄在結構化文件中有助於他在項目中保持進度,並知道接下來應該做什麼。

在嘗試以智能方式記錄這些筆記的各種方法後,他發現心智圖是一種優雅的解決方案。他可以用心智圖展示他正在處理的項目部分,並用筆記和待辦事項裝飾它們,這樣就很容易找到。

這種方法為他騰出精神空間,使他能夠專注於手頭的代碼,同時不丟失任何他需要的上下文信息。他還使用心智圖來分析代碼,這在以下訪談中會有詳細解釋。

請介紹一下您自己。

過去五年,我一直擔任 Oracle 的 Java Magazine 編輯。更早之前,我是 Dr. Dobb’s Journal 的主編。再早一點,我曾擔任過多個程式設計刊物的編輯。我以軟體開發者的身份開始職業生涯,並在業餘時間繼續編程,為各種開源項目做出貢獻,並開發自己的項目。

閒暇時您喜歡做什麼?

我學習鋼琴。這比程序設計要難得多。成為鋼琴專家的道路確實艱難。我認為大多數程序員在他們的程序設計技能方面往往過於自信。我也不例外,直到看到舊代碼時才被現實擊回來,並想知道自己怎麼寫出那樣的代碼!但在鋼琴上下功夫,一路伴隨著謙遜。你一直意識到還有很多東西需要學習,而大鋼琴家的水平是多麼難以企及。

心智圖如何幫助您的生活或工作?

我在兩個不同的領域使用心智圖:


  1. 為我自己或與家人和朋友一起構思任務和項目;

  2. 編程。正如我稍後所述,我在軟體開發中主要有三個目的使用心智圖。

您使用 XMind 多久了?

可能已有六七年,也許更久。

您是如何想出在編程中使用 XMind 的,因為這對開發者來說並不常見?

這最初是由敏捷之父 Kent Beck 提出的,他曾經建議及時追蹤你在編程時做出的所有決定是一個好習慣。(例如一些重要的決定:“我將把這個變量的最大值定為 70。” “我會確保用戶可以在訂單中輸入分數值。”以及一些小的決定,例如“我需要擴展整合測試以覆蓋這段新代碼。”等等。)我發現僅僅把這些決定寫下來是不夠的。但將它們用於項目任務/缺陷追蹤器又過於繁瑣。因此,我開始了一個心智圖,我將我正在工作的項目的部分完善,並用這些微小的決定和筆記裝飾它,這樣當我開始處理其他部分時就能找到並回顧它們。我發現心智圖的表示方式對於快速找到筆記非常有用,這樣當我在處理其他部分時就能找到並回顧它們。

我還在設計功能時使用心智圖。我會以新功能作為頂層主題,然後將分支演化出子功能,並附加決策、實施筆記、提醒,可能甚至包括像對象和方法的擬議名稱等內容。這使得我在編寫代碼之前就能詳細考慮代碼。很多時候,我會將包含多個方法的某個分支移至另一個分支,這使得我可以輕鬆更改並增強我開始寫代碼時的方向和信心。

這是 HTML新增的一個新功能案例:

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

最後,我開始在閱讀不熟悉的代碼時使用心智圖。大多數程序具有層次結構,這意外地適合在心智圖中表示。這是一個名為 iText 7 的庫的分析,一個少見但實用的用例。

⚠️ miss image

這樣在我閱讀代碼的過程中,我可以在心智圖上看到我去過的地方以及如何到達現在的位置。我可以看到通向我當前位置的路徑。此外,隨著我閱讀,我在編寫可以以後回顧的文檔時不斷取得進展。我仍在試用這個用例。

您在 XMind 中最喜歡的功能有哪些?為什麼?

坦率地說,是其使用的便利性。我能快速行動,並將腦海中的想法放入心智圖中。我非常喜歡這一點,因為當你想要捕捉某些東西時,時間通常很重要。

您如何保持高效?您還在使用其他生產力應用程序嗎?

我在各種社論中多次撰寫這個話題。我認為消除干擾、使用良好的工具和聆聽古典音樂都很有幫助。


咖啡還是茶?

早上喝咖啡醒腦。然後大部分時間喝茶。至於其他兩難選擇:狗而不是貓,空格而不是製表符,喜愛布拉姆斯勝過瓦格納,莫奈勝過馬奈。

註:Bob Adler 提供的照片

更多文章