文件撰寫,描繪程式藍圖
這一個月
正確的來說應該是這兩個禮拜
依舊如火如荼地進行翻寫原生的工作
上個Sprint大概像是整裝
建立專案基本架構
開git,上test Flight
解決一些基本問題後
這一周才開始大步邁前
這次專案是我第三個Swift專案
寫code時
終於可以多考慮程式碼的架構了
而通常好的命名
對於程式碼的可讀性
就佔了一半
所以這一次在命名上
通常都會花比較久的時間
來思考怎樣的命名更清楚
寫起來就像是「散文」一樣
(Swift 官方建議~~)
另外一個花時間的
就是變數應該放在什麼地方
簡單來說就是程式的架構
全域變數能少就少
或是拆分到不同class
並且盡量不要讓資料和邏輯攪在一塊
建立資料中心
等新資料複製到快取後
才用Protocol的方式
通知頁面來資料中心取值
更新畫面
除了程式碼更清楚
也防止多執行緒亂七八糟的問題
而一份swift檔案也不會那麼肥大
日後要擴充也比較有方向
另外一個比較不一樣的地方
就是文件的撰寫
由於手機組之前的程式
大部分都沒有文件
就像一棟蓋好的建築物沒有藍圖一樣
出現問題時總是難以偵錯
尤其是不同人接code
這個問題又更加嚴重
所以主管都要求新的專案
都必須要附上流程圖
其實原本有一點點排斥
因為光寫code就趕不上進度了
何況還要寫文件
但是手頭上除了翻原生的專案
也有維護其他app
所以了解沒有文件的程式碼
難以釐清邏輯的來龍去脈
自然沒辦法培養好感情
只好還是乖乖寫文件
套件的部分選用Lucid Chart
不過都還在試驗階段
沒有硬性規定怎麼畫
不過在畫的過程中
就可以看見程式上的流程瑕疵
雖然不見得是錯誤
但是畫成流程圖就是會覺得怪怪的
雖然是同一份code
可是流程圖就像用另外一個人的角度
來審視整份程式碼
當作者無法用文件清楚描述流程時
更別說其他人來看這份code了
還有一個意料之外的點是
除了新的專案以外
我們也會安排時間
幫舊的文件畫流程圖
發現以前看不懂的程式碼
因為必須要畫流程圖的關係
終於看懂了
就像是聽課和講課的差異
要完整地描述程式邏輯
一定要非常清楚
否則流程圖一看就知道是錯的
算是意料之外的收穫
和文件功能相似
程式碼的註解
也是程式可讀性的一大指標
所以這一次新專案
我也花了很多時間在打註解
畢竟文件是大方向
好的註解才能真正引導使用者
詳細了解程式碼的邏輯
但是俗話說的好
註解會騙你,程式碼不會騙你
之前在修復BUG的時候
太相信註解而沒有實際去測試
才發現程式碼和註解的內容不一樣
上面說程式關閉就會消失
結果某次改版後變成用User Default存
(這個還是PM告訴我的…)
進入公司後
也開發了三四個手機專案
就想起以前大學時期
拍片時老師都會跟我們說
作品就像是我們的孩子
寫程式也是一樣
看著程式碼一行一行增加
功能一個一個完善
就像是看著孩子慢慢長大一樣
即使長得醜了點
或是偶爾耍叛逆閃退
但終究是自己寫的
像是把生命中最精華的歲月
都烙印在code裡面了
記錄了當下走過的痕跡
想當初一年前的這個時候
還在跟HTML,CSS奮鬥
現在已經是在跟Apple奮鬥了
每一次的專案
都會想著如何避免上一次的錯
但又總是會犯下更多不同的錯
程式碼也是一種遺憾的藝術
在dead line的期限下
交出一個自己不滿意
但是PM可接受的版本
只有不斷地修練
才能讓每次的遺憾變少
也讓自己的孩子越來越可愛