深入理解軟件構(gòu)造系統(tǒng)

出版時間:2012-6-15  出版社:機械工業(yè)出版社華章公司  作者:Peter Smith  頁數(shù):406  譯者:仲田  
Tag標(biāo)簽:無  

內(nèi)容概要

  《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》分為四部分。第一部分:基礎(chǔ)知識,第1~5章分別從構(gòu)造系統(tǒng)的高層概念、基于Make的構(gòu)造系統(tǒng)、程序的運行時視圖、文件類型與編譯工具、子標(biāo)的與構(gòu)造變量等方面介紹構(gòu)造系統(tǒng)的概念和相關(guān)主題。第二部分:構(gòu)造工具,第6~10章結(jié)合實際場景案例,對GNU
Make、Ant、SCons、CMake和Eclipse
IDE這五種構(gòu)造工具進行分析比較,品評優(yōu)劣,幫助讀者了解構(gòu)造工具的當(dāng)前狀況,并理解每種工具的優(yōu)缺點。第三部分:高級主題,第11~16章對依賴關(guān)系、元數(shù)據(jù)、軟件打包與安裝、構(gòu)造機器、工具管理等高級主題進行討論,幫助讀者理解關(guān)于建設(shè)構(gòu)造系統(tǒng)的許多高級主題,并了解最佳實踐。第四部分:提升規(guī)模,第17~19章討論了在大規(guī)模構(gòu)造系統(tǒng)的環(huán)境下,如何降低復(fù)雜性.提高構(gòu)造運行速度,幫助讀者理解如何設(shè)計出能夠適應(yīng)規(guī)模增長的小型構(gòu)造系統(tǒng),從而對軟件構(gòu)造系統(tǒng)有更好的認(rèn)識。
  本書適合軟件開發(fā)相關(guān)人員,包含軟件開發(fā)人員、項目經(jīng)理、軟件構(gòu)造專業(yè)人士等閱讀。

作者簡介

  Peter
Smith,資深軟件開發(fā)工程師和軟件構(gòu)造系統(tǒng)專家,專注于軟件生產(chǎn)效率的探索和研究,對各種新型軟件工具的選用與開發(fā)、軟件項目管理、IT基礎(chǔ)設(shè)施項目管理、基于軟件工具的流程改進,以及如何使企業(yè)的現(xiàn)有流程實現(xiàn)自動化等能幫助企業(yè)提高軟件生產(chǎn)效率的一系列核心問題都有非常深入的認(rèn)識,實踐經(jīng)驗極為豐富。
  Peter畢業(yè)于哥倫比亞大學(xué),擁有計算機科學(xué)博士學(xué)位,研究方向是編譯器和語言設(shè)計。他曾在大學(xué)任教,主要教授編譯器設(shè)計、編程語言設(shè)計、軟件工程和計算機網(wǎng)絡(luò)等方面的課程。此外,他還是OOPSLA(面向?qū)ο缶幊獭⑾到y(tǒng)、語言與應(yīng)用)協(xié)會的委員。

書籍目錄

對本書的贊譽
譯著序
前言
致謝
第一部分 基礎(chǔ)知識
 第1章 構(gòu)造系統(tǒng)概述
  1.1 什么是構(gòu)造系統(tǒng)
  1.2 構(gòu)造系統(tǒng)的各個組成部分
  1.3 構(gòu)造過程和構(gòu)造描述
  1.4 如何使用構(gòu)造系統(tǒng)
  1.5 構(gòu)造系統(tǒng)的質(zhì)量
  本章小結(jié)
 第2章 基于Make的構(gòu)造系統(tǒng)
  2.1 Calculator示例
  2.2 創(chuàng)建一個簡單的make6le
  2.3 對這個makefile進行簡化
  2.4 額外的構(gòu)造任務(wù)
  2.5 框架的運用
  本章小結(jié)
 第3章 程序的運行時視圖
  3.1 可執(zhí)行程序
  3.2 程序庫
  3.3 配置文件和數(shù)據(jù)文件
  3.4 分布式程序
  本章小結(jié)
 第4章 文件類型與編譯工具
  4.1 C/C++
  4.2 JaVa
  4.3 C#
  4.4 其他文件類型
  本章小結(jié)
 第5章 子標(biāo)的與構(gòu)造變量
  5.1 針對子標(biāo)的進行構(gòu)造
  5.2 針對軟件的不同版本進行構(gòu)造
  5.3 針對不同的目標(biāo)系統(tǒng)架構(gòu)進行構(gòu)造
  本章小結(jié)
第二部分 構(gòu)造工具
第三部分 高級主題
第四部分 提升規(guī)模

章節(jié)摘錄

版權(quán)頁:插圖:14.2.2生成的文件被納入到版本控制中如果目標(biāo)文件或自動生成的源文件已經(jīng)被提交到版本控制系統(tǒng),這很可能是個錯誤。開發(fā)人員可能因為沒看清楚,誤將生成的文件當(dāng)做源代碼提交到版本控制系統(tǒng)中。如上文所述,如果生成的文件被不正確地與源代碼保存在同一目錄,開發(fā)人員就很容易犯這種錯誤。把生成的文件檢入到版本控制系統(tǒng),產(chǎn)生的一個副作用是:當(dāng)?shù)谝粋€開發(fā)人員將這些文件提交后,所有其他開發(fā)人員都可能錯誤地提交這些文件。由于生成的文件是由構(gòu)造系統(tǒng)自動寫入的,當(dāng)有人執(zhí)行構(gòu)造時,這些問題文件總會被修改。版本控制系統(tǒng)會注意到文件已修改,并準(zhǔn)備再次將它提交到版本控制倉庫中。如果開發(fā)人員不夠細(xì)心,他們就會一次又一次地提交這些文件。為了盡快發(fā)現(xiàn)這一問題,可以考慮以只讀模式檢出文件(有些版本控制工具默認(rèn)要求采用此模式)。當(dāng)重新構(gòu)造源樹時,構(gòu)造系統(tǒng)就無法寫入這些生成的文件,從而導(dǎo)致構(gòu)造失敗。開發(fā)人員就會明白,這些文件是被誤提交的,因此他們可以先從版本控制系統(tǒng)中刪除這些文件,再繼續(xù)進行構(gòu)造。在某些情況下,把生成的文件提交到版本控制系統(tǒng)確實有意義,盡管這種想法一般是有問題的。例如,可以對構(gòu)造樹中不常變化的部分(例如第三方程序庫)進行預(yù)編譯,從而加速構(gòu)造過程。通過預(yù)編譯程序庫并將結(jié)果提交到版本控制系統(tǒng),就可以避免讓每個開發(fā)人員都自行編譯這些程序庫。構(gòu)造程序庫必須使用特殊構(gòu)造標(biāo)的,從而使構(gòu)造系統(tǒng)不會默認(rèn)重新創(chuàng)建程序庫,因此不會被標(biāo)為“已修改”(進而不會被再次提交到版本控制系統(tǒng))。某些版本控制工具對這種想法作了進一步擴展,它們可以自動緩存生成的文件,以節(jié)省開發(fā)人員的時間,不必重新構(gòu)造這些文件。第19章將詳細(xì)討論這種機制。14.2.3構(gòu)造管理腳本不應(yīng)當(dāng)納入版本控制系統(tǒng)的最后一種場景,是當(dāng)腳本或工具相對于產(chǎn)品源代碼,更依賴于外部環(huán)境(例如構(gòu)造機器或磁盤)時。把這種性質(zhì)的工具提交到版本控制系統(tǒng),會增加修正工具缺陷的維護工作量。例如,某腳本建議開發(fā)人員,當(dāng)前何種構(gòu)造機器是最快的,或何種文件系統(tǒng)有最大磁盤空間,那么該腳本不應(yīng)提交到版本控制系統(tǒng)。軟件的版本1和版本2沒必要分別使用該腳本的不同版本。事實上,當(dāng)修正該腳本的缺陷時,可能導(dǎo)致源代碼的每個分支版本都必須修改。這當(dāng)然是我們不希望看到的。因此,該腳本不應(yīng)當(dāng)納入版本控制,而是應(yīng)當(dāng)保存為常規(guī)磁盤文件,例如/TOOLS/BIN/DISK-ADVISOR。對該腳本的任何修改(例如增加新的構(gòu)造機器信息或新磁盤信息),可以單獨進行。這同一個腳本可以用于所有代碼分支,每個分支不需要分別使用不同的腳本。而且,該腳本只關(guān)注自身所處的當(dāng)前構(gòu)造環(huán)境,并不關(guān)心過去怎樣。如果該腳本的某些行為依賴于代碼的特定分支版本,那么還可以把該腳本所需的配置信息保存在版本控制系統(tǒng),但把腳本主體仍放在/TOOLS/BIN目錄。例如,如果DISK-ADVISOR腳本需要知道構(gòu)造過程創(chuàng)建了哪些輸出目錄,則可以創(chuàng)建一個配置文件來列出這些信息。

媒體關(guān)注與評論

《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》深入徹底地解析了軟件的構(gòu)造過程,包括軟件構(gòu)造過程中需要做出的各種選擇、可能遇到的各種困難,以及原理與最佳實踐。我不僅要向所有的軟件構(gòu)造工程師推薦這《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》,還要向所有的軟件開發(fā)人員推薦,因為軟件開發(fā)過程中有效性的關(guān)鍵在于具備一套精心設(shè)計的構(gòu)造過程?!狵evin Bodie Pitney Bowes公司軟件開發(fā)總裁《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》向我們清晰地展示了軟件構(gòu)造的原理與細(xì)節(jié),內(nèi)容涵蓋構(gòu)造軟件產(chǎn)品需要用到的所有工具和技術(shù),以及要避免的各種錯誤。無論是構(gòu)造系統(tǒng)新手,還是經(jīng)驗豐富的構(gòu)造系統(tǒng)工程師,《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》對他們來說都具有足夠的吸引力?!狹onte Davidoff Alluvial軟件公司軟件開發(fā)咨詢師

編輯推薦

《深入理解軟件構(gòu)造系統(tǒng):原理與最佳實踐》深入解析高效軟件構(gòu)造系統(tǒng)的實現(xiàn)原理和運作機制,及其可伸縮性和性能優(yōu)化系統(tǒng)講解實現(xiàn)和維護軟件構(gòu)造系統(tǒng)所需的理論、工具、流程、方法和技巧,以及各種常見的錯誤和陷阱,包含大量最佳實踐?!渡钊肜斫廛浖?gòu)造系統(tǒng):原理與最佳實踐》深入解析了高效構(gòu)造系統(tǒng)背后的核心原理,并調(diào)查研究了系統(tǒng)的特性和使用場景?!渡钊肜斫廛浖?gòu)造系統(tǒng):原理與最佳實踐》是作者多年創(chuàng)建并維護各種構(gòu)造系統(tǒng)的經(jīng)驗結(jié)晶,能幫助我們在選擇工具和方法時做出依據(jù)充分的決策,并避開常見的陷阱和錯誤?!渡钊肜斫廛浖?gòu)造系統(tǒng):原理與最佳實踐》還提供了豐富的實用示例,以及在JAVA、C、C++和C#等多種環(huán)境中總結(jié)的經(jīng)驗教訓(xùn)?!渡钊肜斫廛浖?gòu)造系統(tǒng):原理與最佳實踐》主要內(nèi)容:系統(tǒng)講解造系統(tǒng)的基礎(chǔ)知識,包括源樹、構(gòu)造工具以及編譯工具。比較5種領(lǐng)先的構(gòu)造工具:GNUMake、Ant、SCons、CMake和EclipseIDE的集成構(gòu)造特性。確保準(zhǔn)確進行依賴關(guān)系檢查,高效進行增量式構(gòu)造。使用元數(shù)據(jù)幫助進行調(diào)試、性能分析和為源代碼編制文檔。打包軟件,以備在目標(biāo)機器上安裝。包含管理復(fù)雜的版本控制系統(tǒng)、構(gòu)造機器和編譯工具的最佳實踐。功能欠缺的構(gòu)造系統(tǒng)可能會對開發(fā)人員的生產(chǎn)效率產(chǎn)生巨大的影響。錯誤的依賴關(guān)系、中斷的編譯錯誤、失效的軟件實體、緩慢的編譯速度,以及費時費力的手工處理,這些都是被人詬病的構(gòu)造系統(tǒng)存在的問題。在本書中,軟件生產(chǎn)效率專家Peter Smith向我們展示了如何實現(xiàn)能夠解決以上所有問題的構(gòu)造系統(tǒng),使我們以更快的速度和更低的成本交付可靠的軟件產(chǎn)品。如果你是一名開發(fā)人員,本書將向你展示在構(gòu)造系統(tǒng)的建設(shè)和維護過程中涉及的各種問題,使之最符合團隊的需要;如果你是一名管理人員,你會學(xué)習(xí)如何對團隊的構(gòu)造系統(tǒng)進行評估和效能改進;如果你是一名軟件構(gòu)造專家,無論面臨多么嚴(yán)苛的要求,通過學(xué)習(xí)本書,你都能很好地優(yōu)化構(gòu)造系統(tǒng)的性能和可伸縮性。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    深入理解軟件構(gòu)造系統(tǒng) PDF格式下載


用戶評論 (總計5條)

 
 

  •   以前很少關(guān)注底層的東東,同事推薦買的,粗略看了一遍,很有收獲。基礎(chǔ)還是要打牢靠了,才能往上蓋高樓
  •   介紹了軟件系統(tǒng)設(shè)計過程中所需要用到的一系列工具
  •   花幾個小時翻了一下,感覺很泛泛。很全很淺
  •   書還可以,但是有錯誤
  •   開發(fā)一個爛的軟件構(gòu)造也許成本很低,但其維護的成本比開發(fā)的費用高的多。軟件系統(tǒng)的構(gòu)造很重要!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7