l

2011年7月12日 星期二

還少一本書:Software Build Systems: Principles and Experience

July 12 21:05~22:12

上禮拜六晚上在南陽街附近吃完『本格派』的親子丼之後,順道去天瓏逛一下。去年到美國出差買回來的書都還沒看完,原本也沒打算要買新書,想說瞄一下看看天瓏最近有沒有進什麼新書。看著,看著,Teddy 的眼睛突然被某本書的書名『刺』了 一下。是何書如此大膽,居然敢行刺 Teddy,原來是...


***

Teddy 在『CI 之看來看去少了一點什麼  』提到 Continuous Integration 這本書寫得雖好,但是看來看去覺的少了一點什麼,少了什麼?就是少了『你打算要開發一個(中大型)軟體,要如何將該軟體放到 CI 系統上?』的答案。其實 Teddy 這樣說也並不公平,在 Continuous Integration 第 94 頁 Build System Components Separately 這一小節中其實有提到:

Sometimes integration builds take a long time to execute because of the time it takes to integrate the source code and other associated files. In this case, you can break apart the software into smaller subsystems (modules) and build each of the subsystems separately. 

算是對於上述問題有稍微『點到為止』指點了一個方向,但是關於要如何『實做』卻沒有提供答案。而今天 Teddy 要介紹的這本書,算是鉅細靡遺的將如何建構一個 build system 這件事從頭到尾清清楚楚的交代一遍。有些書,就算是從頭到尾讀上好幾遍,都無法給它按一個讚。有些書,看完前言就已經是讚讚讚讚讚.....『連讚不絕』啦。Software Build Systems 就是屬於後者。

這本書到底好在哪裡...簡單歸納以下幾點:
  • 可以當 build systems 的教科書:這算是優點嗎?是滴,Teddy 覺的作者有點像是在寫『Journal papers』的精神來寫這本書,不但介紹了許多 build systems 領域的術語,並且用了許多『歸納』的方法來介紹 build systems domain knowledge。舉個例子,作者在第 xxviii 頁提到兩種建構大型軟體產品的方法,分別是 Monolithic buildsComponent builds 。說真的,這兩種方法其實 Teddy 早就知道了,但是就是沒辦法像本書作者一樣可以明白的告訴你這兩種方法的名稱與作法。以上特點,讓 Teddy 可以把這本書當作寫 papers 的參考資料,真是太讚了...找你好久了....XD。
  • 用很簡單的方法介紹 make file 的寫法:話說 Teddy 活到這把年紀,對於 C/C++ 的 make file 裡面一堆奇怪的符號總是搞不懂。本書裡面的例子,連 Teddy 都看得懂,相信各位鄉民們也一定看得懂。
  • 介紹五種不同的 build tools:包含 MAKE, ANT, SCons, CMAKE, ECLIPSE (Teddy 內心獨白:這個也算?)。個別去了解這些 tools 是滿花時間的,有人幫你準備的好好地,又是一個讚。對 Teddy 這種需要開發跨平台軟體的人而言,能夠看到同時介紹 MAKE 與 ANT 算是滿實用的(Teddy 內心獨白:你不一定要會寫 build scripts,但是至少要看的懂...不會寫詩,至少也要會吟啊)。
  • Advanced Topics 與 Scaling Up 更是精彩:本書最後兩個部份介紹 Dependencies, Building with Metadata, Software Packaging and Installation, Version Management, Build Machines, Tool Management, Reducing Complexity for End Users, Managing Build Size, Faster Builds。這些內容,對於深入了解 build systems 以及 CI 都是非常實用的資訊。尤其書中還有提到對於開發跨平台軟體需要注意的地方,這一點更是符合 Teddy 的口味啊,真是 好吃 好看。
介紹到這邊,書的內容還是要請有興趣的鄉民們自行挖掘。這本書寫得很好,還滿容易閱讀的。想買的鄉民們手腳要快,有人看到這一篇可能明天就衝去買了,晚到可是會搶不到滴。

***

友藏內心獨白:如果幫忙推薦書也有錢可以賺那該多好...XD。

沒有留言:

張貼留言