iOS | 用 Xcode 做 Code Review

HAO-TI, FAN
5 min readMay 30, 2017

--

(Photo by Émile Perron on Unsplash)

一般我們在開發完一個 feature 後

會把 feature branch 推上 gitHub,接著在 gitHub 上發 PR (Pull Request)

然後針對這次有改動到的地方逐一審查 (?)

而通常會切到 Files changed ➝ Split mode

去一一的看每一個檔案、每一行有改動到的程式碼

而近期習得了一種很不錯的方法

可以直接用 Xcode 做 Code Review

首先,假設現在 remote 上有一位團隊夥伴推了一支 feature branch

: feature/mainpage-implementation

且他也已經在 gitHub 上發 PR 了

所以目前我在 local 端更新後所看到的線圖會長這樣

git remote update --prune

接著我開了一支新的 branch 去 track 這支 remote branch

git checkout -b feature/mainpage-implementation-code-review --track origin/feature/mainpage-implementation

另外在 branch name 的後面加上 code-review 以做區分

: feature/mainpage-implementation-code-review

主要也是讓自己知道我開這支 branch 的目的是要用來做 Code Review 的

接著,把這支 branch reset 至 develop branch

git reset develop

所以目前在這支 branch 上的狀態就會記錄著所有

developfeature/mainpage-implementation branch 間有被改動到的部分

接著,開啟 Xcode 專案

至左側專案目錄最下側點擊 — Show only files with source-control status

此時就可以看到在專案目錄下會列出你這兩支 branch 間有被改動到的檔案部分

先點擊其中一個你要 Review 的檔案後

接著點擊 Xcode 最右上角的 — Comparison

就可以看到這個檔案在這兩支 branch 間有被改動到程式碼的部分

此時就可以好好的逐一審查一番啦!😎

而這兒還有一個很好用的點就是

你可以隨時地去切換你想要比對的「基準點」狀態

比如說左側程式碼的部分我的基準點是 — Local Revision

就是我在 feature/mainpage-implementation (code-review) branch 上有改動到的部分

而右側程式碼的部分我的基準點則是 —27/5/2017 Henry Fan 23227e7 (HEAD)

就是這個檔案在 feature/mainpage-implementation (code-review) branch 改動前=最新 (上一次) 被改動到的部分

當然你也可以試著把基準點往前推,就可以看到這個檔案美妙的變化 ❤️

而 .xib 檔案當然也不例外,必須好好地逐一審查一番 😋 (?)

透過這種方式去做 Code Review 有幾個很不錯的點:

  • 可以更清楚地看到整個檔案以及程式碼間被改動到的來龍去脈

—在 gitHub 上 Review 時,他確實會顯示出你對於這個檔案改動到的部分沒錯,但有時會覺得程式碼改動部分的前後關係會比較難去對應,或是不明顯 — 這是在哪個 function 內做改動的? 他前後的程式碼關係是什麼?

  • 可以更方便地去追蹤程式碼

— 就是可以利用「command + 滑鼠左鍵」去方便快速地對整個 flow 和眾多的 function 做 trace,而這時也就可以去追蹤到專案內其他的程式碼部分

當然,Code Review 的方法有很多,其中也各有優缺點

最主要的還是要能夠找到一個團隊合作上的共識點

以此和其他團隊夥伴協作時能更加地 smoothly

這才會是更加重要的

筆記分享歡迎討論 😊

補充發現 bitbucket 的 Code Review 頁面,呈現的感覺就很像 Xcode 的 Comparison

--

--

HAO-TI, FAN

看起來還是屁孩的 iOS 工程師、介面設計師、思考發想者;平時喜歡穿梭於字裡行間,擺動身體,在不同時空下創作影片;時而冒出天馬行空的想法,用點子串聯人。