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

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

內(nèi)容概要

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

作者簡(jiǎn)介

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

書(shū)籍目錄

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

章節(jié)摘錄

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

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

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

編輯推薦

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

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


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


用戶(hù)評(píng)論 (總計(jì)5條)

 
 

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

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7