代碼大全(第2版)

出版時間:2006-3  出版社:電子工業(yè)出版社  作者:[美] 史蒂夫·邁克康奈爾  頁數:914  譯者:金戈,湯凌,陳碩,張菲 譯,裘宗燕 審校  
Tag標簽:無  

前言

普通的軟件工程實踐與最優(yōu)秀的軟件實踐差距巨大——多半比其他工程學科中的這種差距都要大。因此傳播優(yōu)秀實踐經驗的工具是十分重要的?!狥red Brooks 我寫這本書的首要目的,就是希望縮小本行業(yè)中一般商業(yè)實踐與大師級人物及專家們之間的知識差距。許多強大的編程技術在被編程領域的大眾接觸之前,都已在學術論文和期刊里塵封了多年。雖然近年來前衛(wèi)的軟件開發(fā)實踐迅速發(fā)展,但普通的實踐手段并沒有太大變化。很多程序的開發(fā)仍然是漏洞百出、遲于交付并且超出預算,還有很多根本就無法滿足用戶的需求。軟件業(yè)界以及學術界的研究人員們已經發(fā)現(xiàn)了不少行之有效的實踐經驗,足以解決自20世紀70年代以來編程領域中日益蔓延的大多數問題??墒沁@些實踐經驗很少在高度專業(yè)化的技術期刊之外對外發(fā)表,所以時至今日大多數編程的機構和組織還沒能用上這些技術。有研究表明,一項研發(fā)成果從其誕生之日起,到進入商業(yè)實踐階段,通常要經歷 5到15年的時間甚至更長(Raghavan和Chand 1989;Rogers 1995;Parnas 1999)。這本手冊就是想縮短這一漫長的過程,讓那些關鍵性的研發(fā)成果現(xiàn)在就能為更多編程人員所用。Who Should Read This Book 誰應當閱讀本書 本書中所匯集的研究成果和編程經驗,將幫助你創(chuàng)建更高質量的軟件,使你能更快速地進行開發(fā),遇到的問題更少。本書將幫你弄明白過去為什么會遇到那些問題,并告訴你如何在將來避免它們。這里所描述的編程實踐將幫助你把控更大型的項目,還能在項目的需求發(fā)生變動時幫助你成功地維護并修改已經開發(fā)出來的軟件。Experienced Programmers 經驗豐富的程序員 對于經驗豐富的程序員而言,本書正是他們想要的一本翔實、易用的軟件開發(fā)指南。本書關注的是“構建(construction)”,即整個軟件生命周期中最為人熟知的部分;本書把強大的軟件開發(fā)技術寫得讓自學的程序員和參加過正規(guī)訓練的程序員都能讀懂。Technical Leads 技術領導 許多技術領導(或者說是技術帶頭人)都曾在他們的團隊中使用《代碼大全》(第一版)培訓經驗不足的程序員。當然,本書也可以用來填補你自己的知識缺陷。如果你是一位經驗豐富的程序員,你不一定會同意我給出的所有結論(如果不是這樣,我倒會覺得奇怪)。但如果你閱讀本書并思索其中的每一個問題之后,那么幾乎不會有人再能提出什么你未曾思考過的軟件構建方面的問題了。Self-Taught Programmers 自學的程序員 如果你沒有受過太多的正規(guī)訓練,本書正是你的良伴。每年約有50000 個新手進入這一專業(yè)領域(BLS 2004, Hecker 2004),但每年卻只有35000 個人獲得與軟件相關的學位(NCES 2002)。從這些數據中我們可以很快得出一個結論——很多程序員并沒有接受過軟件開發(fā)方面的正規(guī)教育。在許多新興的專業(yè)人員社群中都可以看到自學的編程人員——工程師、會計師、科學家、教師以及小公司的老板們;編程序是他們工作的一部分,但他們并不一定把自己看作是程序員。無論你在編程方面受過何種程度的教育,本手冊都會讓你能對各種行之有效的編程實踐有深入的了解。Students 學生 與有經驗但缺乏正規(guī)培訓的程序員對應的,是那些剛剛畢業(yè)的大學生。新近畢業(yè)的學生大多擁有豐富的理論知識,但卻缺乏創(chuàng)建產品級的程序( production programs)的實踐技術。關于編寫優(yōu)秀代碼的實踐知識,就像部落里祭祀儀式上的舞蹈一樣,只能慢慢地從軟件架構師、項目負責人、分析師以及更有經驗的程序員那里傳承下來。更多的時候,這些知識就是程序員個人反復的嘗試和犯錯后的結晶。本書則是這些緩慢、傳統(tǒng)的智慧傳承方式的一種替代方案,它匯集了以往只能從他人經驗中獵取和收集的大量實用的經驗技巧和有效的開發(fā)策略。對于那些正在從學術環(huán)境轉向專業(yè)環(huán)境的學生來說,這是一本必備的讀物。Where Else Can You Find This Information 還能從何處找到這些信息 本書綜合整理了來自四面八方的多種軟件構建技術。這些技術是軟件構建領域長年累月積聚下來的智慧財富,它們不僅分散,而且其中大部分素材常年散落于紙面之外(Hildebrand 1989,McConnell 1997a)。其實,內行的程序員們所用的那些強大有效的編程技術并不神秘。但是這些內行人士面對手頭日復一日緊張沖刺的項目,幾乎沒有誰花些時間和大家分享他們所學到的知識和技能。因此,程序員們可能很難找到很好的關于編程的信息來源。而本書所描述的技術則填補了入門圖書和高級編程圖書之間的空白。當你讀過了《Java編程入門》、《高級Java編程》和《高高級Java編程》之后,如果你還想學更多的編程知識,那還能讀點什么呢?你可以閱讀Intel或 Motorola的硬件參考手冊,閱讀Microsoft Windows或Linux操作系統(tǒng)的函數手冊,甚至是去閱讀講另外一門編程語言的書籍——你確實無法在一個缺乏這種詳細參考資料的環(huán)境中使用語言或者程序。但本書是為數不多的探究編程本質的書籍之一。無論你在何種環(huán)境下、用何種語言編寫程序,書中某些最有益處的編程技術都能派上用場。其他的書一般都忽略了這些實踐知識,而這也正是本書專注于這些知識的原因。本書中的信息是從許多來源中提煉出來的,如下圖所示。想完全獲得在本書中看到的這些信息的另外途徑只有一條,那就是通讀堆積如山的書籍和成百上千本技術期刊,還得再加上大量的實際經驗。即便你把這些事情都做到了,本書仍然會對你很有益處,因為它把所有這些資料都集于一處,便于查閱。Key Benefits of This Handbook 閱讀本書的收益 無論你是何種背景,本書都能助你在更短的時間內寫出更棒的程序,還不會那么頭疼。全面的軟件構建參考本書討論了軟件構建活動的方方面面,比如說軟件的質量,還有編程的思維方式。它還會深入闡述構建活動中的重要細節(jié),如創(chuàng)建一個類的步驟,使用數據和控制結構時的各種事項,還有調試、重構、代碼調優(yōu)的技術與策略等。你無須逐頁通讀所有主題。本書寫得讓你很容易就能找到感興趣的特定話題。隨時備用的核對表本書包括了大量的核對表(checklist),你可以用它來評估軟件架構、設計方法、類和子程序的質量、變量命名、控制結構、代碼格式、測試用例等等。與時俱進的信息本書介紹了一些當今最為入時的技術,其中有許多還未被廣泛采用。正因為本書擷取了實踐與研究兩者的精髓,它所介紹的這些技術將經久不衰,受用多年。以更廣的視角檢視軟件開發(fā)本書將給你一個機會,讓你凌駕于日復一日、忙于救火的混亂場面之上,看看到底什么是可行的,而什么又是不可行的。實踐中的程序員們很少有時間去閱讀數以百計的書籍與期刊,而本手冊萃取了其中的精華。本書所匯集的理論研究與實踐經驗將活躍你的思維,激勵你對自己項目的思考,使你的行動更有策略,避免反復陷入完全一樣的戰(zhàn)斗。絕不注水有些軟件書籍,其中精髓部分的凈重也就1克,卻注入了重達 10克的水分。本書則會公平地探討每項技術的優(yōu)劣。關于你自己項目的特定需求,你了解得要比任何人都清楚。因此本書僅是給你公正客觀的信息,讓你能夠具體情況具體分析,做出正確的決策。有關概念適用于大多數常見的語言本書中介紹的技術能讓你可以更好地利用你的編程語言,無論是C++、C#、Java、VisualBasic,還是其他類似語言。豐富的代碼示例本書中收集了近500個用于展現(xiàn)優(yōu)、劣代碼之差異的示例。之所以給出這么多示例也是出于個人的偏好。因為從示例中我最能學到東西,我想其他程序員也該可以通過這種方式學得更好吧。這些示例是用了多種不同的語言所寫成,因為學習并掌握不止一門語言通常是專業(yè)程序員職業(yè)生涯中的分水嶺。一旦一名程序員意識到編程原則是超越特定語言語法的東西時,通往能夠實質地改善編程質量并提高工作效率的知識的大門也就向他敞開了。為了避免以多種語言寫成的例子成為讀者的負擔,我會盡量避免使用各語言中那些深奧的特性——除非當時就是需要探討它。為了弄懂一個代碼片段要表達的問題,你無須完全理解所有的細枝末節(jié)。如果你集中關注示例所展示的問題,那么無論它是用什么語言寫成的,你都能讀懂。為讓你更容易理解這些示例,我還給其中的關鍵部分加了注解。引用其他信息來源本書匯集了為數眾多關于軟件構建方面的可用信息,但這并不算完。在本書所有的章節(jié)中,“更多資源”一節(jié)都會介紹其他一些書籍和文章,你希望進一步深入了解感興趣的話題時可以閱讀它們。配套網站在本書的配套網站cc2e.com上會提供更新的核對表、參考書目、雜志文章、網頁鏈接等內容。要訪問《代碼大全》(第二版)中的相關信息,請如本段文字左側所示,在瀏覽器中輸入“cc2e.com/”,后跟一個四位阿拉伯數字即可。這樣的網址參考鏈接在本書中會有很多。Why This Handbook Was Written 為什么要寫這本手冊 在軟件工程界,人們都清楚地認識到,應該把軟件開發(fā)中行之有效的實踐知識歸納、編撰成一本開發(fā)手冊。計算機科學與技術委員會( ComputerScienceandTechnologyBoard)的一份報告指出,要想大幅提高軟件開發(fā)的質量和工作效率,需要把已知的行之有效的軟件開發(fā)實踐知識歸納、統(tǒng)一并廣為傳播(CSTB1990,McConnell1997a)。該委員會還指出,傳播這些知識的策略應建立在軟件工程手冊這個概念的基礎之上。The Topic of Construction Has Been Neglected 軟件構建的話題常被忽視 曾幾何時,軟件開發(fā)和編寫代碼被認為是同一件事情。但隨著軟件開發(fā)周期中的各個活動被人們逐漸認識,該領域中一些最棒的頭頭腦腦們就開始花更多時間去分析和爭論諸如項目管理方法、需求、設計、測試等問題了。在這場學習研究新興領域的浪潮中,代碼構建這個與軟件開發(fā)骨肉相連的環(huán)節(jié)反而被忽視了。關于軟件構建的討論之所以步履蹣跚,也是因為有人認為,如果將構建活動視作軟件開發(fā)中的一項特定活動,就暗示著也必須把它視作其中一個特定階段。然而實際上,軟件開發(fā)中的各項活動和各個階段無須以特定的關系一一對應起來;而且無論其他的軟件活動是分階段(phase)進行、還是迭代式(interation)進行,或者以某種其他方式進行,都不妨礙我們探討“ 構建活動”。Construction Is Important 構建活動是重要的 構建活動被學者和作者所忽略的另一個原因是源于一個錯誤的觀念,他們認為與其他軟件開發(fā)活動相比,構建是一個相對機械化的過程,并沒有太多可改進的機會。然而事實并非如此?!按a構建”一般占據了小型項目65%的工作量,而在中型項目上也達到了50%。同時,“構建”也要為小型項目中75%的錯誤負責,在中到大型項目上這一比例為50%到75%。任何一個要為50%到75%的錯誤負責的活動環(huán)節(jié)顯然都是應該加以改善的。(第27章中對這些統(tǒng)計數據有更多詳細的探討。) 也有一些評論家指出,雖然構建階段發(fā)生的錯誤在所有錯誤中占有很大的比例,但修正這些錯誤的代價往往比“修正那些由于需求和架構所導致的錯誤”要低很多,這也就暗示著構建活動因此不那么重要。誠然,修正由構建活動所導致的錯誤的代價比較低這一說法是正確的,但它也引起了誤導— —因為如果不修正這些錯誤,代價反而會高得令人難以置信。研究人員發(fā)現(xiàn),軟件中一些代價最為昂貴的錯誤,其罪魁禍首常常是一些小范圍的代碼錯誤,其代價甚至可以飆至上億美元的程度(Weinberg1983,SEN1990)??梢杂幂^低代價修正的錯誤,并不意味著這些錯誤的修正不重要。人們忽視構建活動的另一種原因則頗具諷刺意味——就因為它是軟件開發(fā)中唯一一項肯定能完成的活動。對于需求,人們可以自以為是而不去潛心分析;對于架構,人們可以偷工減料而不去精心設計;對于測試,人們可以短斤少兩甚至跳過不做,而不去整體計劃并付諸實施。但只要寫出來的是程序,總歸要進行構建活動,這也說明,只要改進軟件構建這一環(huán)節(jié),就一定對軟件開發(fā)實踐有好處。No Comparable Book Is Available 沒有可媲美的同類書籍 既然看到構建活動有著如此清晰的重要性,我曾相信,當我構思此書時已有人寫過關于有效的軟件構建實踐的書籍了。對這樣一本介紹如何有效地進行編程的書籍的需求是顯而易見的,但是我卻只找到很少幾本關于軟件構建這一題材的書,而且那些書也僅是涉及到這個話題的一部分罷了。有些書寫于15年前,還是和一些深奧的語言——如ALGOL、PL/I、Ratfor以及 Smalltalk等——緊密相關的。有些則是出自并不實際編寫產品代碼的教授之手。教授們寫出來的技術內容對于學生們的項目而言還行得通,但他們通常不知道如何在完整規(guī)模的開發(fā)環(huán)境中施展這些技術;還有些書是為了宣傳作者最新鐘情的某種方法論,卻忽略了那些被時間反復證明是行之有效的成熟實踐技術的巨大寶庫。簡而言之,我沒有找到哪怕是一本試圖歸納總結來自專家經驗、業(yè)界研究以及學術成果的實踐編程技術的書籍。關于這個話題的討論要能和現(xiàn)今的編程語言、面向對象編程技術以及前沿的開發(fā)實踐緊密結合。很明顯需要有人寫出一本這樣的書出來,而他必須了解當今的理論發(fā)展水平,同時也編寫過足夠多的能反映實踐狀況的產品級代碼。我把本書構思成關于代碼構建活動的完整探討——一個程序員給其他程序員寫的書。AuthorNote 作者注 歡迎您對本書中所探討的話題進行質詢,例如您的勘誤報告,或其他相關的內容。請發(fā)郵件與我聯(lián)系,我的郵箱是stevemmc@construx.com,也可以訪問我的網站:www.SteveMcConnell.com。

內容概要

代碼大全(第2版)是著名Ⅱ暢銷書作者、《IEEESoftware》雜志前主編、具有20年編程與項目管理經驗的SteveMcConneU十余年前的經典著作的全新演繹:第2版做了全面的更新,增加了很多與時俱進的內容,包括對新語言、新的開發(fā)過程與方法論的討論,等等。這是一本百科全書式的軟件構建手冊,涵蓋了軟件構建活動的方方面面,尤其強調提高軟件質量的種種實踐方法。
作者特別注重源代碼的可讀性,詳細討論了類和函數命名、變量命名、數據類型和控制結構、代碼布局等編程的最基本要素,也討論了防御式編程、表驅動法、協(xié)同構建、開發(fā)者測試、性能優(yōu)化等有效開發(fā)實踐,這些都服務于軟件的首要技術使命:管理復雜度。為了培養(yǎng)程序員編寫高質量代碼的習慣,書中展示了大量高質量代碼示例(以及用作對比的低質量代碼),提高軟件質量是降低開發(fā)成本的重要途徑。除此之外,本書歸納總結了來自專家的經驗、業(yè)界研究以及學術成果,列舉了大量軟件開發(fā)領域的真實案例與統(tǒng)計數據,提高本書的說服力。
本書中所論述的技術不僅填補了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關軟件開發(fā)技術的信息來源。本書對經驗豐富的程序員、技術帶頭人、自學的程序員及沒有太多編程經驗的學生都是大有裨益的。可以說,只要您具有一定的編程基礎,想成為一名優(yōu)秀的程序員,閱讀本書都不會讓您失望。

作者簡介

史蒂夫·邁克康奈爾(Steve
McConnell)被公認為軟件開發(fā)社區(qū)中的首要作者和發(fā)言人之一。他是Construx
Software公司的首席軟件工程師。他所編著的圖書包括曾被《軟件開發(fā)》雜志授予優(yōu)異產品震撼大獎的《代碼大全》和《快速軟件開發(fā)》,以及《軟件項目生存指南》等。

書籍目錄

前言
鳴謝
核對表目錄
表目錄
圖目錄
第1部分 打好基礎
 第1章 歡迎進入軟件構建的世界“
1.1 什么是軟件構建
1.2 軟件構建為何如此重要
1.3 如何閱讀本書
 第2章 用隱喻來更充分地理解軟件開發(fā)
2.1 隱喻的重要性
2.2 如何使用軟件隱喻
2.3 常見的軟件隱喻
 第3章 三思而后行:前期準備
3.1 前期準備的重要性
3.2 辨明你所從事的軟件的類型
3.3 問題定義的先決條件
3.4 需求的先決條件
3.5 架構的先決條件
3.6 花費在前期準備上的時間長度
 第4章 關鍵的“構建”決策
4.1 選擇編程語言
4.2 編程約定
4.3 你在技術浪潮中的位置
4.4 選擇主要的構建實踐方法
 第5章 軟件構建中的設計
5.1 設計中的挑戰(zhàn)
5.2 關鍵的設計概念
5.3 設計構造塊:啟發(fā)式方法
5.4 設計實踐
5.5 對流行的設計方法的評論
 第6章 可以工作的類
6.1 類的基礎:抽象數據類型(ADTs)
6.2 良好的類接口
6.3 有關設計和實現(xiàn)的問題
6.4 創(chuàng)建類的原因
6.5 與具體編程語言相關的問題
6.6 超越類:包
 第7章 高質量的子程序
7.1 創(chuàng)建子程序的正當理由
7.2 在子程序層上設計
7.3 好的子程序名字
7.4 子程序可以寫多長
7.5 如何使用子程序參數
7.6 使用函數時要特別考慮的問題
7.7 宏子程序和內聯(lián)子程序
 第8章 防御式編程
8.1 保護程序免遭非法輸入數據的破壞
8.2 斷言
8.3 錯誤處理技術
8.4 異常
8.5 隔離程序,使之包容由錯誤造成的損害
8.6 輔助調試的代碼
8.7 確定在產品代碼中該保留多少防御式代碼
8.8 對防御式編程采取防御的姿態(tài)
 第9章 偽代碼編程過程
9.1 創(chuàng)建類和子程序的步驟概述
9.2 偽代碼
9.3 通過偽代碼編程過程創(chuàng)建子程序
9.4 偽代碼編程過程的替代方案
第3部分 變量
 第10章 使用變量的一般事項
10.1 數據認知
10.2 輕松掌握變量定義
10.3 變量初始化原則
10.4 作用域
10.5 持續(xù)性
10.6 綁定時間
10.7 數據類型和控制結構之問的關系
10.8 為變量指定單一用途
 第11章 變量名的力量
11.1 選擇好變量名的注意事項
11.2 為特定類型的數據命名
11.3 命名規(guī)則的力量
11.4 非正式命名規(guī)則
11.5 標準前綴
11.6 創(chuàng)建具備可讀性的短名字
11.7 應該避免的名字
第12章 基本數據類型
12.1 數值概論
12.2 整數
12.3 浮點數
12.4 字符和字符串
12.5 布爾變量
12.6 枚舉類型
12.7 具名常量
12.8 數組
12.9 創(chuàng)建你自己的類型(類型別名)
第13章 不常見的數據類型
13.1 結構體
  ……
第4部分 語句
第5部分 代碼改善
第6部分 系統(tǒng)考慮
第7部分 軟件工藝
參考文獻
索引

章節(jié)摘錄

書摘  相對于前面那個呆板的用寫作所做的隱喻,一些軟件開發(fā)人員則認為應當將創(chuàng)造軟件想象成類似播種和耕作的情形。你一次設計系統(tǒng)的一小部分、寫出一段代碼、做一點測試,并將成果一點點添加到整個系統(tǒng)中。通過這種小步前進,你可以把每次可能遇到的麻煩減到最小?! ∮袝r候人們會用很糟的隱喻去描述一種很好的技術,此時需要保全這一技術,并去尋找更好的隱喻。這個例子里的增量技術是很有價值的,但把它比作播種和耕作卻非常糟糕?!  懊看巫鲆稽c”這個主意可能在某些方面與農作物生長類似,但把軟件開發(fā)類比為耕作就很不貼切,也沒有太多意義,而且我們很容易用下面即將介紹的更好的隱喻替代它。人們也很難把耕作這個隱喻引申到“一次做一點事情”之外?! ∪绻阏J同耕作這種隱喻,就請想象一下圖2—2的情況:你會發(fā)現(xiàn)自己談論的是:對系統(tǒng)計劃施肥、對細節(jié)設計疏果,并通過有效的管理土地來增加代碼的產量,最終取得代碼大豐收。你還會說“輪種C++和大麥”,或者讓土地閑置一年以增加硬盤里面氮肥的供應量?! ≤浖鬟@一隱喻的弱點在于它暗示了人們將無法對開發(fā)軟件的過程和方式進行任何直接的控制。你在春天播下代碼的種子,然后按照農歷節(jié)氣向土地佬兒許幾個愿,你將會在秋天收獲到豐盛的代碼。P14-15看《代碼大全》鬧程序革命!

媒體關注與評論

書評“《代碼大全》第1版在我看來堪稱軟件工程領域的經典之作一而第2版則更棒!”    ——Ralph Johnson,伊利諾伊州立大學;  《設計模式》(Design Patterns)作者之一    “無論您是新手還是經驗豐富的開發(fā)人員,《代碼大全》(第2版)都能教會您思考編程的最佳方法?!?   ——Jeffrey Richter(www.wintetlect.com),((Microsoft NET框架實用編程》(Appfied     Microsoft.NET    FrameworkProgramming)作者    “這本書是講述軟件構建的權威指南一準備孤身前往荒島的程序員只要帶上這本書就足夠了?!?   ——Diomidis Spinellis,《代碼閱讀方法與實踐》(Code Reading:The Open Source Perspective)作者    “Steve McConnell是一位既在一線實踐,又能把其中奧妙講個明白的少數人之一。”    ——John Vlissides,IBM研究院;  《設計模式》(Design Patterns)作者之一    “Steve McConnell比任何人都懂得如何構建軟件;我們十分慶幸他能把其所有的深邃見解和實踐經驗寫成這樣一本重要而新穎的圖書。”    ——“Visual Basic之父”Alan Cooper,《軟件觀念革命》(About Face 2.0)作者

編輯推薦

兩屆震撼大獎得主,數十年軟件開發(fā)智慧,十二年前的經典,十二年后再鑄輝煌!《代碼大全(第2版)》——Amazon全五星一致推薦!開發(fā)者必讀著作!圖書館必備典藏!

名人推薦

“《代碼大全》第1版在我看來堪稱軟件工程領域的經典之作——而第2版則更棒!” ——Ralph Johnson,伊利諾伊州立大學;《設計模式》(Design Pattems)作者之一 “無論您是新手還是經驗豐富的開發(fā)人員, 《代碼大全》(第2版)都能教會您思考編程的最佳方法?!?——Jeffrey Richter,《Microsoft.NET框架實用編程》(Applied Microsoft.NET Framework Programming)作者 “這本書是講述軟件構建的權威指南——準備孤身前往荒島的程序員只要帶上這本書就足夠了。” ——Diomidis Spinellis,《代碼閱讀方法與實踐》(Code Reading:The Open Source Perspective)作者 “Steve McConnell是一位既在一線實踐,又能把其中奧妙講明白的少數人之一?!?——John Vlissides,IBM研究院;《設計模式》(Design Patterns)作者之一 ”Steve McConnell比任何人都懂得如何構建軟件;我們十分慶幸他能把其所有的深邃見解和實踐經驗寫成這樣一本重要而新穎的圖書?!?——“Visual Basic之父”Alan Cooper,《軟件觀念革命》(About Face 2.0)作者

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    代碼大全(第2版) PDF格式下載


用戶評論 (總計139條)

 
 

  •   代碼大全——兩屆Software Jolt Award震撼大獎得主!軟件開發(fā)世界的地圖,經典中的經典 代碼大全——兩屆Software Jolt Award震撼大獎得主!軟件開發(fā)世界的地圖,經典中的經典
  •   以前從來沒有聽說過這些書,自從知道了這些經典書的存在后,我一口氣買了八本。代碼大全是我開始看的第一本,非常非常贊,書中講的編程思想特別實用,特別中肯。以前我以為編碼是件隨意的事情,是要靠自己去悟的(⊙﹏⊙b汗),開始看這本書之后,覺得編碼不是那么簡單的,它所涵蓋的內容方方面面,借鑒別人強大的編程技術,比自己苦苦思索要實惠多了。書中講的每句話都值得仔細推敲,并不是看完就可以放一邊了,而要自己去思考,去實踐,去總結。真正把書中講的知識放進自己的“工具箱”,用的時候能信手拈來。這就是我一個菜鳥的想法,希望自己的技術能快快提高~Fighting!再次感謝翻譯人員,zzang!
  •   書名叫《代碼大全》太容易誤導人了,我還以為是一部實用代碼庫呢,建議更名為《軟件編程思想與實踐》。

    Peter
  •   任何想成為程序員的人必看的一本書,其中的偽代碼編程、命名規(guī)范部、代碼排版部分等等都是經典!
  •   評價如下:
    1.紙品和印刷質量上乘,線裝,用墨均勻;
    2.本人目前只閱讀了該書的第七部分__軟件工藝。對內容評價如右:作者引經據典形成的軟件工藝Tips具有權威性、可信性和實用性。
    本人評價只針對本人從當當網購得的《代碼大全2》。
  •   該書以最優(yōu)化軟件設計的思路介紹了代碼書寫,程序設計的方方面面,對于從事軟件開發(fā)和實現(xiàn)人員很有參考價值。
  •   書如其名,大全,幾乎囊括了軟件開發(fā)的各個階段。很適合系統(tǒng)的學習軟件的構建過程
  •   這本書和任何一本軟件書都不一樣,程序員絕對值得擁有,后悔沒有早點看到,待修煉啊它不是談論一種具體的技術,反正我買的時候是因為目前項目非?;靵y,從需求到架構再到編碼規(guī)范,沒有一個是有用的。因為在小公司,頭也不給力,自己水平有限。沒有辦法,很想找到能幫助我重新梳理的書,包括該從什么方面考慮軟件架構、包括程序怎么分層,怎么模塊化,編碼風格如何統(tǒng)一,單元測試驅動編程是怎么一回事blabla的。。。沒看完,但我覺得這本書應該能解決問題
  •   你果想成為優(yōu)秀的程序員,這是一本必讀的書。當然你不要被翻譯的中文書名所迷惑,這本書不是針對某門語言來講的,也不是講程序算法之類的技巧的。它主要是針對代碼質量來講的,所以無論你是程序老鳥還是菜鳥,希望你都能認真的多讀幾遍,這不是那種看一遍就可以丟到一邊的書……
  •   作為一個即將步入軟件開發(fā)行業(yè)的人,這本堪稱行業(yè)圣經的書是必須一看的,扎扎實實看看書,明天才能寫出更好的代碼。
  •   對于這個本“代碼大全”,我唯一感到遺憾的就是這么遲才想起來買來看。經典啊
  •   經典中的經典。高質量代碼必讀之物。大家都說了,這里就不必啰嗦了。
  •   代碼大全講述的是方法 思路
  •   代碼大全,通向大師必看之書,非常好??!
  •   本書絕對是一本可以隨時隨地隨心所欲翻閱的隨身寶典,就算不能一一記牢,只一步一步按照書中所示去做,也會發(fā)現(xiàn)代碼質量在一點一點提高,自己看著都爽。
  •   代碼大全當然是好書。
  •   代碼大全!
  •   很喜歡閱讀和收藏經典的技術書籍,這本書不錯,可以從編程思想上有所改進,適合各個階段的所有程序員,共勉
  •   從開始項目的構建開始描述軟件開發(fā)過程中遇到的種種問題,以及解決辦法。
  •   內容非常豐富,既不會是理論概念一篇那種,也不是一個代碼工具。是實實在在的經驗。說得很到位。
  •   感覺像是對代碼規(guī)范 章程的深厚積累后的經驗 沒有太多知識 適合當百科全書在需要時翻閱
  •   之前在網上對本書有了大概的了解,本書在軟件設計和編程領域有獨到的見解和精辟的論述。這次在本店購得此書,一定要從頭至尾認真仔細地反復閱讀幾遍,相信自己能夠從中獲得相當多收益。
  •   看了下,適合有一定工作經驗的人看,不是講具體代碼的。
  •   書中內容講了軟件構建的方方面面,很多內容都值得我們去思考,非常有價值,無論是新手還是技術水平已經不錯的人都適合!!!
  •   剛拿到沒多久,看了六章左右,發(fā)現(xiàn)還是非常不錯的。對編寫代碼有思想上的幫助,如果再結合設計模式類的書會更有幫助。另外書的印刷也很好,很滿意。
  •   這本書是每個程序員應當看一遍的書,對各個細節(jié)的分析和總結會改變你的編程習慣
  •   不用說自己想要了,整個公司人手一本啊!無語了!想要寫好代碼,請看它!
  •   編寫大量代碼后,會有所迷茫么?該書將會引導你的方向,解答你心中可能會出現(xiàn)的困惑 不可多得的好書
  •   講的很細,從各方面講述一個開發(fā)者應該注意的,對自身代碼規(guī)范等方面幫助很大
  •   本書詳細介紹了編程中的各種問題,特別是構建時的問題,這本書就是編程的百科全書,只要有問題就可以翻看。它不是基于某一種語言的,介紹的是思想
  •   確實是本好書,剛到手,包裝沒我想想的好,不過好在內容夠吸引人
    里面的示例代碼以Java,C++和VB為主,準備購買的朋友要考慮好~
  •   神級書!是程序員~是軟件工程師必須得看的書?。?!
  •   軟件開發(fā)世界的地圖,經典中的經典
  •   有點難看懂!對各類語言代碼進行了分析應用!不過推薦基礎比較牛的人看!
  •   里面的實例代碼使用各種語言寫的,具體內容還沒看,不知道好不好,不過大家都推薦。
  •   這本書對我組織代碼有非常大的益處!
  •   就喜歡沒事研究研究代碼
  •   很好的書 很久就聽過 最近寫代碼遇到瓶頸 所以買本進修下
  •   代碼的百科全書
  •   代碼挺全的
  •   講解很細,著重講解思想而不是代碼!值得一看
  •   書的質量非常高(內容和紙張);老外寫的書真是很用心,這本書適合每一個程序員
  •   非常經典的書,值得反復閱讀。
    如果周圍的同事都看過這本書,就不會那么痛苦了
    如果所有的程序員都看過這本書,這個世界就真的和諧了。
  •   這本書介紹了軟件開發(fā)過程的方方面面,而且給出了很具參考性的建議。
  •   適合基本上所有的軟件開發(fā)人員去看,更適合想提高的人員去看。
  •   書寫的很好,涵蓋了軟件開發(fā)的各個方面,很全面,推薦購買!
  •   發(fā)貨很快。

    書印刷質量上佳,贊一個!

    關鍵是書的內容對于程序員提升內力是相當不錯的,“九陽神功”!
  •   有時鞏固了你以前已經思考出來結果,有時解答了你以前猶豫的問題,這是本教你寫出高質量程序的書。非針對特定語言,而是對面向構建程序時遇到的普遍性問題給出了指導性的方法和原則,是我需要的書。
  •   這本書是我讀過的最好的計算機圖書之一,但建議初學者不要讀,因為內容以經驗居多,沒有編程的1、2、3、4、5,有的是智慧。另外這本書不是教材,而像是一篇隨筆
  •   印刷不錯,內容經典,適合程序員收藏
  •   什么都講了,軟件開發(fā)相關職業(yè)都能找到對應的部分。就是書太厚,看著壓力打,犯困。。
  •   一直聽說這本書,可當了兩年的程序員了還是沒有找出機會來仔細看一看,這確實是一本很好的書,是每一個程序員都值得去花心思看的書!
  •   Jolt大獎,無數好評。我想不用什么贅述了。
  •   語言簡練有趣,干貨也多,適合初學者,或者想重頭梳理軟件開發(fā)知識的老手
  •   它把開發(fā)編程的細節(jié)講得詳細,是本很好的必備書。
  •   軟件開發(fā)中的神書,非常好 支持
  •   如果你想成為一名優(yōu)秀的程序員,而不是只想做個碼農,去看這本書吧.......
  •   對于這樣的經典圖書,編程人員必須經常溫習。
  •   書很經典,開闊思路。用到哪里看哪里,不必從頭到尾看完。
    個人覺得,書中講的不是技術,而更重要的是告訴你正確的觀念,對一些細節(jié)方面正確的做法,經驗性很強,適合有經驗的人,碰到過類似問題的人仔細閱讀。
    總之,很經典。
  •   不論在做何種軟件開發(fā) 對你來說都是一本好書
  •   不管是軟件開發(fā)人員還是管理人員都可以找到你所需要的,不錯的書,值得學習收藏
  •   書很厚很重,知識點也較詳細,仔細研讀將對自己的軟件水平有很大的提高。
  •   作為一名程序員,此書是必備的,作為一本手冊,隨時查閱,非常有用
  •   長期軟件開發(fā)的人必備
  •   對此書是早有耳聞,作為程序員必修的十大著作之一,沒有理由不去擁有,讀懂此書,對程序的設計思想將有更深層次的理解。
  •   非常實用的IT編程書籍,詳細,全面,可以全面提高編程能力。純屬騙積分,請勿參考
  •   對于初學或有經驗的程序員都很有幫助
  •   編程2年了,有一些迷茫的問題,希望能從高人的經驗里得到解決,支持本書
  •   一個程序員離優(yōu)秀的距離就在這本書
  •   書涵蓋的內容很廣,內容涵蓋了編程思想、編程風格、架構等方方面面,值得一讀。
  •   這是一本程序員可以帶到孤島上的唯一一本書,值得多次閱讀的一本書
  •   剛看了前3章,感覺收獲很大,系統(tǒng)地講解了編程各階段的注意事項,很實用
  •   這本書毋庸置疑,是對程序員很有啟發(fā)的書,適合各個階段的人
  •   這是一本很好的軟件工程的書籍,如果你不想一直當程序,請看這本書吧。它會給你很多幫助的。
  •   程序員必備,常讀常新。
  •   這本書適合所有軟件工作人員
  •   軟件工程師必學
  •   jolt出品 絕對經典
  •   如果說大學老師只教了語言的語法的話,那么這本書告訴我們怎么運行這些編程語言才能編出更好的程序。
  •   內容專業(yè),適合程序員細細揣摩。
  •   這些天一直很忙,忘記評價了??爝f有些慢不過不能接受,畢竟東北這邊下雪交通不太方便可以理解:)之前沒有地方寫些要求什么的,還擔心會不會給我寄本卷頁之類的書呢,不過接到后發(fā)現(xiàn)這些擔心完全沒有必要,書很新,根本沒有什么卷頁破損什么的。很開心!
    看了幾章,感覺不錯。作者寫得很通俗,有些地方還舉些有趣的例子。感覺很貼近讀者。唯獨覺得價格好像比原先第二版貴了。
    總之這次購物很滿意。
  •   書很厚, 但是很實用 各種編程語言都有
  •   程序員必須書籍之一啊
  •   程序員必修之道
  •   超級厚,程序員必備此書
  •   別人推薦的,然后買的,很不錯,程序員必看。
  •   軟件領域的葵花寶典
  •   剛開始讀,但是聽說這本書非常好,正在進一步學習。希望喜歡編程的朋友都看看。
  •   確實非常有用,所有學習編程的人都應該看看
  •   一直想買這本書,礙于價格太貴,遲遲未下手。這次當當做活動,果斷拿下,可是最后幾頁居然裂開,不知是沒裝訂好還是工作人員不小心撕裂了,心疼啊!希望書本的內容能讓我大有裨益吧!
  •   對于了解軟件研發(fā)全過程有很大的幫助
  •   看了好久才看完,有些內容讓人醍醐灌頂,糾正了好多之前的編程陋習
  •   什么叫做經典,我想這本書就可以說明這兩字的意義。。真得非常好,慢慢品味,經久耐看。
  •   當當的服務整體4.9,扣分原因是因為書到貨有點卷邊,這個我可以理解。書本身沒的說,經典。
  •   覺得像是編程人員 的一本字典,感覺很有用~~
  •   編程人士必備書,看一遍收獲一遍。
  •   都說這本書很經典,想買好久了,今天終于出手了,太貴
  •   送貨很快,書的質量也很好,這次活動買的太值了。目前還沒開始看,心得以后再寫吧。
  •   當當的配送速度好快。書質量也不錯,好厚的一本書,還沒開始看。
  •   經典書籍,開發(fā)必備
    終于到貨,趕快搶購
 

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

京ICP備13047387號-7