降低專案複雜度


專案發展時間長了,難免在架構上或程式碼上複雜度增加。因此,對於追 code 者而言,若直接從最新一個 commit 開始追,則可能會因整個專案太複雜而不知從何處下手。為此,筆者觀察到,絕大多數專案在初始階段,架構與程式碼都相對簡單、容易理解。因此,建議使用 git 搭乘時光機,回到早期的 commit 探索。相信能更有效率掌握專案核心。

既然要回到早期 commit 探索,此時有個問題浮現。那該怎麼挑選 commit 呢?筆者建議有二:

  1. 挑選早期重大版本號
  2. 簡單可運作之版本

選擇重大版本號的好處有 1. 運行起來穩定 2. code 有較高可能性被認真整理過。讀者可使用 github 頁面直接查找,或是可透過 command line 查找。以 viper 為例。

github 頁面查找

command line 查找

$ git show-ref --tags
d58aead06e421f6e73e09dfe6d0d15602932f37c refs/tags/1.0
b850fdb5ab6d5b9edd761d81dfec58d0a893c479 refs/tags/1.1
4585bc0878f92dc59fb65261dbf014f126024c92 refs/tags/v1.2

假設鎖定版本是 v 1.0 則可輸入

git checkout d58aead06e421f6e73e09dfe6d0d15602932f37c

切換至該版本。

但其實很多時候,重大版本號的專案不管在架構上或程式碼上都還是相當複雜。對此,我們就持續往前找。但要找也要有個原則,筆者的經驗是尋找「盡量簡單且可運作之版本」。簡單的意思就是看到程式碼或架構時,厭煩度已大減。可運作版本就是鎖定某個功能,並實際將該版本安裝、測試該功能是否可運作。若上述兩條件皆成立,則可挑選此版本為切入版本。以 viper 專案來說,筆者挑選的是 46a2a 版本。

在尋找「盡量簡單且可運作版本」時,可搭配前章節介紹之 tig 工具,相信效率可大幅提昇。

但很不幸的,若「盡量簡單且可運作之版本」還是搞的你心浮氣躁時該怎麼辦?

results matching ""

    No results matching ""