基本信息
作 者:(美)邁克康奈爾(McConnell,S.)著,金戈等譯
出版社:電子工業出版社
出版時間:2006-3-1
字 數:1000000
版 次:1
頁 數:914
紙 張:膠版紙
ISBN:9787121022982
包 裝:平裝
所屬分類:圖書>>計算機/網路>>程式設計>>其他
定價:¥98.00
編輯推薦
《代碼大全(第二版)》第3次印刷,新增中文索引及勘誤信息,增量不加價,值得收藏。
代碼大全(第二版)是著名IT暢銷書作者SteveMcConnell十一年前的經典著作的全新演繹,該作者是兩屆SoftwareDevelopmentMagzineJoltAward震撼大獎得主。
兩屆震撼大獎得主,數十年軟體開發智慧,十二年前的經典,十二年後再鑄輝煌!
Amazon全五星一致推薦!開發者必讀著作!圖書館必備典藏!
《程式設計師》雜誌海量篇幅專題報導(2006年第3期)。
第二書店/噹噹網;中國互動出版網;瀋陽華儲網上書店;·北京蔚藍網上書城四大權威網上書店鼎力推薦!
“《代碼大全》第1版在我看來堪稱軟體工程領域的經典之作一而第2版則更棒!”——RalphJohnson,伊利諾州立大學;《設計模式》(DesignPatterns)作者之一
“無論您是新手還是經驗豐富的開發人員,《代碼大全》(第2版)都能教會您思考編程的最佳方法。”——JeffreyRichter(www.wintetlect.com),《MicrosoftNET框架實用編程》(AppfiedMicrosoft.NETFrameworkProgramming)作者
“這本書是講述軟體構建的權威指南一準備孤身前往荒島的程式設計師只要帶上這本書就足夠了。”——DiomidisSpinellis,《代碼閱讀方法與實踐》(CodeReading:TheOpenSourcePerspective)作者“SteveMcConnell是一位既在一線實踐,又能把其中奧妙講個明白的少數人之一。”
——JohnVlissides,IBM研究院;《設計模式》(DesignPatterns)作者之一
“SteveMcConnell比任何人都懂得如何構建軟體;我們十分慶幸他能把其所有的深邃見解和實踐經驗寫成這樣一本重要而新穎的圖書。”
——“VisualBasic之父”AlanCooper,《軟體觀念革命》(AboutFace2.0)作者
內容簡介
代碼大全(第二版)是著名IT暢銷書作者SteveMcConnell十一年前的經典著作的全新演繹:第二版不是第一版的簡單修訂增補,而是完全進行了重寫;增加了很多與時俱進的內容。這也是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體質量和編程思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程式示例。本書中所論述的技術不僅填補了初級與高級編程技術之間的空白,而且也為程式設計師們提供了一個有關編程技巧的信息來源。本書對經驗豐富的程式設計師、技術帶頭人、自學的程式設計師及幾乎不懂太多編程技巧的學生們都是大有裨益的。可以說,無論你是什麼背景,閱讀本書都會讓你在更短的時間內、更容易地寫出更好的程式。
作者簡介
史蒂夫·邁克康奈爾(SteveMcConnell)被公認為軟體開發社區中的首要作者和發言人之一。他是ConstruxSoftware公司的首席軟體工程師。他所編著的圖書包括曾被《軟體開發》雜誌授予優異產品震撼大獎的《代碼大全》和《快速軟體開發》,以及《軟體項目生存指南》和《專業軟體開發》等等。
媒體評論
MikeRiley,asp.netPRO,“此書的每一頁都提供了注重實效的見解,這些真知灼見是從數年的有效編碼經驗中總結而得出的,並繼而成為軟體設計者成功的主要指導。項目負責人應該從頭到尾認真閱讀此書,然後購買他們的每一項直接報告的副本。”EdSchaefer,UnixReview,“《代碼大全》已經影響了我思考軟體發展的方式,這在其他的書來說是沒有過的。我知道這樣說有些老套,但是如果有一本書應被稱作“本月傑作”的話,那就是它。我稱讚McConnell不只是因為他編纂法典--把這些知識寫下來--還因為此書涵蓋了重點與檢索目錄。”PanPantziarka,TechBookReport,“SteveMcConnell的《代碼大全》獨具匠心,第一版被譽為經典之作可謂實至名歸。現在,隨著第二版的出版,更新更詳細的表述和再編內容的擴展,其傑出地位被證實......。書中包含了太多實用可靠的素材,所以要想在一篇評論中給予它公正的評價是相當困難的。對於任何想有所提高的編譯人員來說,這都是一本值得一看的好書。我們全力推薦!”SamGentile,Blog,“我敢說它甚至比第一版更好。利用“現代語言”如C++和JAVA更新之後,它完全稱得上是軟體設計的教科書……讀過本書之後,我發現自己仍然有很多東西需要學習。強烈推薦!”
書摘插圖
相對於前面那個呆板的用寫作所做的隱喻,一些軟體開發人員則認為應當將創造軟體想像成類似播種和耕作的情形。你一次設計系統的一小部分、寫出一段代碼、做一點測試,並將成果一點點添加到整個系統中。通過這種小步前進,你可以把每次可能遇到的麻煩減到最小。有時候人們會用很糟的隱喻去描述一種很好的技術,此時需要保全這一技術,並去尋找更好的隱喻。這個例子裡的增量技術是很有價值的,但把它比作播種和耕作卻非常糟糕。“每次做一點”這個主意可能在某些方面與農作物生長類似,但把軟體開發類比為耕作就很不貼切,也沒有太多意義,而且我們很容易用下面即將介紹的更好的隱喻替代它。人們也很難把耕作這個隱喻引申到“一次做一點事情”之外。如果你認同耕作這種隱喻,就請想像一下圖2—2的情況:你會發現自己談論的是:對系統計畫施肥、對細節設計疏果,並通過有效的管理土地來增加代碼的產量,最終取得代碼大豐收。你還會說“輪種C++和大麥”,或者讓土地閒置一年以增加硬碟裡面氮肥的供應量。軟體耕作這一隱喻的弱點在於它暗示了人們將無法對開發軟體的過程和方式進行任何直接的控制。你在春天播下代碼的種子,然後按照農曆節氣向土地佬兒許幾個願,你將會在秋天收穫到豐盛的代碼。
精彩書摘
相對於前面那個呆板的用寫作所做的隱喻,一些軟體開發人員則認為應當將創造軟體想像成類似播種和耕作的情形。你一次設計系統的一小部分、寫出一段代碼、做一點測試,並將成果一點點添加到整個系統中。通過這種小步前進,你可以把每次可能遇到的麻煩減到最小。有時候人們會用很糟的隱喻去描述一種很好的技術,此時需要保全這一技術,並去尋找更好的隱喻。這個例子裡的增量技術是很有價值的,但把它比作播種和耕作卻非常糟糕。“每次做一點”這個主意可能在某些方面與農作物生長類似,但把軟體開發類比為耕作就很不貼切,也沒有太多意義,而且我們很容易用下面即將介紹的更好的隱喻替代它。人們也很難把耕作這個隱喻引申到“一次做一點事情”之外。如果你認同耕作這種隱喻,就請想像一下圖2—2的情況:你會發現自己談論的是:對系統計畫施肥、對細節設計疏果,並通過有效的管理土地來增加代碼的產量,最終取得代碼大豐收。你還會說“輪種C++和大麥”,或者讓土地閒置一年以增加硬碟裡面氮肥的供應量。軟體耕作這一隱喻的弱點在於它暗示了人們將無法對開發軟體的過程和方式進行任何直接的控制。你在春天播下代碼的種子,然後按照農曆節氣向土地佬兒許幾個願,你將會在秋天收穫到豐盛的代碼。
在這場學習研究新興領域的浪潮中,代碼構建這個與軟體開發骨肉相連的環節反而被忽視了。
關於軟體構建的討論之所以步履蹣跚,也是因為有人認為,如果將構建活動視作軟體開發中的一項特定活動,就暗示著也必須把它視作其中一個特定階段。然而實際上,軟體開發中的各項活動和各個階段無須以特定的關係一一對應起來;而且無論其他的軟體活動是分階段(phase)進行、還是疊代式(interation)進行,或者以某種其他方式進行,都不妨礙我們探討“構建活動”。
ConstructionIsImportant構建活動是重要的構建活動被學者和作者所忽略的另一個原因是源於一個錯誤的觀念,他們認為與其他軟體開發活動相比,構建是一個相對機械化的過程,並沒有太多可改進的機會。然而事實並非如此。
“代碼構建”一般占據了小型項目65%的工作量,而在中型項目上也達到了50%。同時,“構建”也要為小型項目中75%的錯誤負責,在中到大型項目上這一比例為50%到75%。任何一個要為50%到75%的錯誤負責的活動環節顯然都是應該加以改善的。(第27章中對這些統計數據有更多詳細的探討。)也有一些評論家指出,雖然構建階段發生的錯誤在所有錯誤中占有很大的比例,但修正這些錯誤的代價往往比“修正那些由於需求和架構所導致的錯誤”要低很多,這也就暗示著構建活動因此不那么重要。誠然,修正由構建活動所導致的錯誤的代價比較低這一說法是正確的,但它也引起了誤導——因為如果不修正這些錯誤,代價反而會高得令人難以置信。研究人員發現,軟體中一些代價最為昂貴的錯誤,其罪魁禍首常常是一些小範圍的代碼錯誤,其代價甚至可以飆至上億美元的程度(Weinberg1983,SEN1990)。可以用較低代價修正的錯誤,並不意味著這些錯誤的修正不重要。
人們忽視構建活動的另一種原因則頗具諷刺意味——就因為它是軟體開發中唯一一項肯定能完成的活動。對於需求,人們可以自以為是而不去潛心分析;對於架構,人們可以偷工減料而不去精心設計;對於測試,人們可以短斤少兩甚至跳過不做,而不去整體計畫並付諸實施。但只要寫出來的是程式,總歸要進行構建活動,這也說明,只要改進軟體構建這一環節,就一定對軟體開發實踐有好處。
盤點程式語言與程式設計書籍
程式語言(programming language),又稱程式設計語言(program design language,簡稱PDL),是一組用來定義電腦程式的語法規則。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動 |