接下來談軟體開發階段要注意的事, 我舉出SCM(Source Code Control Management)和Coding style來討論.
接下來談軟體開發階段要注意的事, 我舉出SCM(Source Code Control Management)和Coding style來討論.
版本控管是很重要的事, 做的好不好跟使用哪一套工具有蠻大的關係. 軟體版本管理的工具有很多, 有要錢的, 也有免費的. 取決用哪一套工具要看你的預算, 平台, 軟體團隊規模等因素.
好的SCM至少要包含幾個功能: 軟體版本控管 (廢話), 權限控管, 版本間的比較工具, 衝突時合併(Merge)的機制, 日誌(Log)的機制 , 分支(Branch)的機制, 版號與標籤的機制.
市面上常見的Source code control 軟體, 以管理方式來區分, 可以分為兩類, 列舉出幾個比較有名的如下:
集中式版本管理: CVS, SVN, Sourcesafe, Clearcase
分散式版本管理: Mercural, GIT
其中我用過的是 Sourcesafe, Clearcase, SVN 和 GIT. Sourcesafe 和 CVS 都是比較古老的產品, 現在用的人應該也慢慢減少了. 如果你只要管理你自己的軟體版本, 你又懶得去學, 恰恰好你是在Windows平台開發, 那也許你可以選擇用Sourcesafe, 不然我就找不到用他的理由了. 至於CVS已經由SVN (subversion) 繼承了, 所以用的人應該也不多了.
再來則是Clearcase, 他是Rational (現併到IBM內)的產品, 如果你是它的愛用者, 搭配 Rose, Soda, Clearquest 使用, 也許還不錯用. 但是它價格昂貴 (真的很貴), 除非是大公司, 一般小公司和個人應該不太會碰到它. 另外它客製化不易, 需要和IBM另外談, 也是一個問題.
所以我個人比較推的是SVN, 和 GIT. 這兩者的差別如下:
SVN 和 GIT 有許多功能或外掛可以拿來跟軟體開發流程結合, 如Commit log , Review board 等等, 這部分留待後面章節再來詳述.
另外提醒一點, 工具是死的, 人是活的, 所以團隊務必要對你所使用的SCM十分了解, 並且有"良好的習慣", 這樣才能真正發揮它的效益.
接下來談談Coding Style. Coding style 有兩個面相, 一個是寫程式的風格, 一個是寫程式的技巧:
風格-包括對變數, 函式的命名方法, 寫程式時的排版, 寫註解的方式與格式.
技巧-包括對Design Pattern的了解與應用, 以及好的程式撰寫習慣, 以避免一些看不見的錯誤.
好的Coding Style對軟體團隊的影響是:
有人把Coding Style 看成一門藝術, 有人是看成一種習慣, 不管如何, 有很多公司都有所謂的Coding Standard 來協助軟體團隊寫出可讀性更高的程式碼. 如果你的軟體團隊沒有, 那麼試著訂立一套吧!