程式設計師修煉之道
《程式設計師修煉之道》由一系列的獨立的部分組成,涵蓋的主題從個人責任、職業發展,直到用於使代碼保持靈活、並且易於改編和復用的各種架構技術。利用許多富有娛樂性的奇聞軼事、有思想性的例子以及有趣的類比,全面闡釋了軟體開發的許多不同方面的最佳實踐和重大陷阱。無論你是初學者,是有經驗的程式設計師,還是軟體項目經理,本書都適合你閱讀。
代碼整潔之道
《代碼整潔之道(英文版)》提出一種觀念:代碼質量與其整潔度成正比。乾淨的代碼,既在質量上較為可靠,也為後期維護、升級奠定了良好基礎。作為編程領域的佼佼者,《代碼整潔之道(英文版)》作者給出了一系列行之有效的整潔代碼操作實踐。這些實踐在《代碼整潔之道(英文版)》中體現為一條條規則(或稱「啟示」),並輔以來自現實項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。
代碼大全
史蒂夫·邁克康奈爾(Steve McConnell)被公認為軟體開發社區中的首要作者和發言人之一。他是Construx Software公司的首席軟體工程師。他所編著的圖書包括曾被《軟體開發》雜誌授予優異產品震撼大獎的《代碼大全》和《快速軟體開發》,以及《軟體項目生存指南》和《專業軟體開發》
重構
重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是本書原版的出版,使重構終於從編程高手們的小圈子走出,成為眾多普通程式設計師日常開發工作中不可或缺的一部分。本書也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界範圍內暢銷不衰。
本書凝聚了軟體開發社區專家多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與本書最初出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反覆咀嚼,而且往往能夠常讀常新。
深入淺出設計模式
《深入淺出設計模式》(影印版)的編寫運用許多最新的研究,包括神經生物學、認知科學以及學習理論,這使得《深入淺出設計模式》(影印版)能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。你將會更擅長於解決軟體設計中的問題,並能夠和你的團隊成員用模式的語言來更好地溝通
人月神話
20餘年暢銷不衰的經典巨作,軟體工程領域的聖經寶典!IBM大型電腦之父Fred Brooks20餘年開發經驗的匯集,遠謀深慮,字字珠璣!技術之巧與人文之美的完美結合!純正原版影印,真正理解大師的睿智思維,再無譯文之歧義困擾!更收錄包括《No Silver Bullet》(沒有銀彈)在內的最新四篇經典論文!
代碼整潔之道-程式設計師的職業素養
1. 匯聚編程大師40餘年編程生涯的心得體會
2. 闡釋軟體工藝中的原理、技術、工具和實踐
3. 助力專業軟體開發人員具備令人敬佩的職業素養
成功的程式設計師在以往的工作和生活中都曾經歷過大大小小的不確定性,承受過永無休止的壓力。他們之所以能夠成功,是因為擁有一個共同點,都深切關注創建軟體所需的各項實踐。他們將軟體開發視為一種需要精雕細琢加以修煉的技藝,他們以專業人士的標準要求自己,他們具有職業素養。
軟體開發大師Robert C. Martin在書中介紹了真實軟體技藝中的各項原則、技術、工具和實踐,展示了怎麼以自豪、自尊和自信的心態進行軟體開發,怎麼取得卓越表現和豐碩成果,怎麼做到有效溝通和確切估算,怎麼以坦誠的心態面對困難,並引導讀者認識到專業程式設計師肩負的責任重大,闡述了什麼才是程式設計師的職業素養。
書中的具體內容包括:
● 成為真正的軟體專業人士需要具備哪些條件,如何應對彼此衝突又緊張的進度表和不近情理的管理人員;
● 如何做到流暢編程,克服阻塞狀態;
● 如何應對無休止的工作壓力,避免崩潰;
● 如何培養堅持不懈的態度,如何擁抱新的開發範式;
● 如何管理好時間,避免身陷泥潭無法自拔;
● 如何培育有利於程式設計師和開發團隊茁壯成長的環境;
● 什麼時候應該說「不」,怎麼說;
● 什麼時候應該說「是」,承諾意味著什麼。
軟體強大、優雅而實用,讓人驚嘆不已,不論是開發者還是用戶都樂於使用這樣的軟體。它們並非是由機器編寫出來的,而是出自那些對軟體技藝擁有堅定信念的專業軟體開發者之手。本書將幫助讀者成為專業軟體開發者中的一員,並贏得只有他們才能擁有的榮譽感和成就感。
修改代碼的藝術
世界級計算機專家Michael C. Feathers的經典之作,軟體開發大師Robert C. Martin作序傾情推薦,修改遺留代碼的權威指南。深入剖析修改遺留代碼的各種方法和策略,從理解遺留代碼、為其編碼測試、重構及增加特性等方面給出大量實用建議,是所有程序開發人員必讀之作。
設計模式
這本書結合設計實作例從面向對象的設計中精選出23個設計模式,總結了面向對象設計中最有價值的經驗,並且用簡潔可復用的形式表達出來。書中分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特別有用。此書適合大學計算機專業的學生、研究生及相關人員參考。
書中涉及的設計模式並不描述新的或未經證實的設計,只收錄了那些在不同系統中多次使用過的成功設計
程式設計師的面試經典
本書是原谷歌資深面試官的經驗之作,層層緊扣程式設計師面試的每一個環節,全面而詳盡地介紹了程式設計師應當如何應對面試,才能在面試中脫穎而出。第1~7 章主要涉及面試流程解析、面試官的幕後決策及可能提出的問題、面試前的準備工作、對面試結果的處理等內容;第8~9 章從數據結構、概念與算法、知識類問題和附加面試題4 個方面,為讀者呈現了出自微軟、蘋果、谷歌等多家知名公司的150 道編程面試題,並針對每一道面試題目,分別給出了詳細的解決方案。
軟技能
這是一本真正從「人」(而非技術也非管理)的角度關注軟體開發人員自身發展的書。書中論述的內容既涉及生活習慣,又包括思維方式,凸顯技術中「人」的因素,全面講解軟體行業從業人員所需知道的所有「軟技能」。本書聚焦於軟體開發人員生活的方方面面,從揭秘面試的流程到精耕細作出一份殺手級簡歷,從創建大受歡迎的博客到打造你,從提高自己工作效率到與如何與「拖延症」做鬥爭,甚至包括如何投資不動產,如何關注自己的健康。本書共分為職業篇、自我營銷篇、學習篇、生產力篇、理財篇、健身篇、精神篇等七篇,概括了軟體行業從業人員所需的「軟技能」。通過閱讀本書,軟體工程人員、編程人員和其他技術人員能夠積極思考自己的職業生涯,豐富自己的生活,讓自己更接近成功。
電腦程式的構造和解釋
《電腦程式的構造和解釋(原書第2版)》1984年出版,成型於美國麻省理工學院(MIT)多年使用的一本教材,1996年修訂為第2版。在過去的二十多年裡,《電腦程式的構造和解釋(原書第2版)》對於計算機科學的教育計劃產生了深刻的影響。第2版中大部分重要程序設計系統都重新修改並做過測試,包括各種解釋器和編譯器。作者根據其後十餘年的教學實踐,還對其他許多細節做了相應的修改。
編碼:隱匿在計算機軟硬體背後的語言
本書講述的是計算機工作原理。作者用豐富的想像和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度的
算法導論
這本書深入淺出,全面地介紹了計算機算法。對每一個算法的分析既易於理解又十分有趣,並保持了數學嚴謹性。本書的設計目標全面,適用於多種用途。涵蓋的內容有:算法在計算中的作用,概率分析和隨機算法的介紹。書中專門討論了線性規劃,介紹了動態規劃的兩個應用,隨機化和線性規劃技術的近似算法等,還有有關遞歸求解、快速排序中用到的劃分方法與期望線性時間順序統計算法,以及對貪心算法元素的討論。此書還介紹了對強連通子圖算法正確性的證明,對哈密頓迴路和子集求和問題的NP完全性的證明等內容。全書提供了900多個練習題和思考題以及敘述較為詳細的實例研究。
人件
在軟體管理領域,很少有著作能夠與本書媲美。作為經久不衰的暢銷書,本書深刻地洞察到軟體開發的最大問題不在於技術,而在於人。人的因素並不容易解決,一旦解決了,你將更有可能獲得成功。
本書是軟體管理領域的傳奇經典,被譽為「對美國軟體業影響最大的一本書」。全書從管理人力資源、創建健康的辦公環境、僱用並留用正確的人、高效團隊形成、改造企業文化和快樂工作等多個角度闡釋了如何思考和管理軟體開發的最大問題——人(而不是技術),以得到高效的項目和團隊。
作者在第3版中添加了6章內容,並對先前的內容做了調整,使其更能應對當今軟體的開發環境和挑戰。例如,第3版討論了一些領導力上的病理症狀,這些是先前版本中沒有作為病理來歸納的;書中還講述了會議文化的演進,以及如何管理新舊成員水火不容的混合團隊,討論了為何一些日常使用的工具會成為團隊前進的阻力而非動力。任何需要管理軟體項目或軟體組織的人員都能從本書中尋找到有價值的建議
編程珠璣
本書是計算機科學方面的經典名著。書的內容圍繞程序設計人員面對的一系列實際問題展開。作者Jon Bentley 以其獨有的洞察力和創造力,引導讀者理解這些問題並學會解決方法,而這些正是程式設計師實際編程生涯中至關重要的。本書的特色是通過一些精心設計的有趣而又頗具指導意義的程序,對實用程序設計技巧及基本設計原則進行了透徹而睿智的描述,為複雜的編程問題提供了清晰而完備的解決思路。本書對各個層次的程式設計師都具有很高的閱讀價值。.多年以來,當程式設計師們推選出最心愛的計算機圖書時,《編程珠璣》總是位列前列。正如自然界裡珍珠出自細沙對牡蠣的磨礪,計算機科學大師Jon Bentley以其獨有的洞察力和創造力,從磨礪程式設計師的實際問題中凝結出一篇篇不朽的編程「珠璣」,成為世界計算機界名刊《ACM通訊》歷史上最受歡迎的專欄,最終結集為兩部不朽的計算機科學經典名著,影響和激勵著一代又一代程式設計師和計算機科學工作者。本書為第一卷,主要討論計算機科學中最本質的問題:如何正確選擇和高效地實現算法。..在書中,作者選取許多具有典型意義的複雜編程和算法問題,生動描繪了歷史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的歷程,引導讀者像真正的程式設計師和軟體工程師那樣富於創新性地思考,並透徹闡述和總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。解決方案的代碼均以C/C++語言編寫,不僅有趣,而且有很大的實戰示範意義。每章後所附習題極具挑戰性和啟發性,書末給出了簡潔的解答。
企業應用架構模式
《企業應用架構模式》作者是當今面向對象軟體開發的權威,他在一組專家級合作者的幫助下,將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用於任何一種企業應用平臺的、關於解決方案的、不可或缺的手冊。《企業應用架構模式》獲得了2003年度美國軟體開發雜誌圖書類的生產效率獎和讀者選擇獎。《企業應用架構模式》分為兩大部分。第一部分是關於如何開發企業應用的簡單介紹。第二部分是《企業應用架構模式》的主體,是關於模式的詳細參考手冊,每個模式都給出使用方法和實現信息,並配以詳細的Java代碼或C#代碼示例。此外,整《企業應用架構模式》中還用了大量UML圖來進一步闡明有關概念。
《企業應用架構模式》是為致力於設計和構建企業應用的軟體架構師、設計人員和編程人員而寫的,同時也可作為高等院校計算機專業及軟體學院相關課程的參考教材。
算機程序的構造和解釋(原書第2版)》1984年出版,成型於美國麻省理工學院(MIT)多年使用的一本教材,1996年修訂為第2版。在過去的二十多年裡,《電腦程式的構造和解釋(原書第2版)》對於計算機科學的教育計劃產生了深刻的影響。第2版中大部分重要程序設計系統都重新修改並做過測試,包括各種解釋器和編譯器。作者根據其後十餘年的教學實踐,還對其他許多細節做了相應的修改。
電腦程式設計藝術
首先介紹編程的基本概念和技術,然後詳細講解信息結構方面的內容,包括信息在計算機內部的表示方法、數據元素之間的結構關係,以及有效的信息處理方法。此外,書中還描述了編程在模擬、數值方法、符號計算、軟體與系統設計等方面的初級應用。此第3版增加了數十項簡單但重要的算法和技術,並根據當前研究發展趨勢在數學預備知識方面做了大量修改。
領域驅動設計
《領域驅動設計:軟體核心複雜性應對之道》是領域驅動設計方面的經典之作。全書圍繞著設計和開發實踐,結合若干真實的項目案例,向讀者闡述如何在真實的軟體開發中應用領域驅動設計。書中給出了領域驅動設計的系統化方法,並將人們普遍接受的一些最佳實踐綜合到一起,融入了作者的見解和經驗,展現了一些可擴展的設計最佳實踐、已驗證過的技術以及便於應對複雜領域的軟體項目開發的基本原則。《領域驅動設計:軟體核心複雜性應對之道》適合各層次的面向對象軟體開發人員、系統分析員閱讀。
編程人生
業界頂尖的程式設計師是怎麼走上編程道路的?
他們的編程工作創造和改變了人類歷史,在這一過程中都有哪些經驗和教訓?
他們對計算機軟體行業的過去、現在和未來有什麼獨到的看法和見解?
他們對培養、發現、選拔、面試優秀的程式設計師有什麼建議?
放下手頭的工作,聽聽這些軟體先驅們的故事和建議,眼界可以更開闊,思路可以更清晰,方向可以更明確,人生可以更精彩。
作者Peter Seibel採訪了下面這15位世界級編程大師,本書是他在近80個小時的訪談錄音基礎上整理彙編而成的。
Jamie Zawinski:Lisp程式設計師,XEmacs開發者,Netscape瀏覽器和Mozilla核心開發者。
Brad Fitzpatrick:書中唯一的80後,LiveJournal和memcached開發者。現效力於Google。
Douglas Crockford:JavaScript權威,JSON之父。現任Yahoo架構師。
Brendan Eich:JavaScript之父。Mozilla公司CTO。
Joshua Bloch:如果說Gosling是Java之父,那Bloch就是使Java真正成熟的教父,Java 2到5的核心架構師。現為Google首席Java架構師。
Joe Armstrong:Erlang和OTP(開放電信平臺)框架之父。
Simon Peyton Jones:Haskell先驅。ACM會士。現為微軟劍橋研究院研究員。
Peter Norvig:Google研發總監。ACM會士。
Guy Steele:精通多門語言,Common Lisp和Scheme開發者之一,Java語言規範作者之一,Common Lisp、Fortran、C、ECMAScript和Scheme等語言標準化委員會成員。高性能科學計算的語言Fortress設計者。ACM會士,美國工程院院士。Sun公司院士。
Dan Ingalls:與Alan Kay合作開發了Smalltalk,是該語言的真正實現者。現為Sun公司傑出工程師。
L. Peter Deutsch:JIT(即時)編譯技術發明者之一,PostScript文件瀏覽器GhostScript的作者。ACM會士。Sun公司院士。
Ken Thompson:圖靈獎得主。Unix之父。UTF-8 Unicode編碼設計者。
Fran Allen:圖靈獎第一位女得主。編譯技術公認權威。IEEE院士,ACM會士,美國工程院院士。IBM院士。
Bernie Cosell:Internet奠基人,ARPANET最早的路由計算機IMP設計者之一。
Donald Knuth:多卷本經典巨著《電腦程式設計藝術》的作者,排版軟體TeX的作者,圖靈獎得主。
快速軟體開發
提高軟體開發的速度,按進度計劃完成項目,是軟體開發項目管理最常見和最難解決的問題。這本書在總結了包括微軟公司在內的美國軟體業成千上萬個軟體開發項目的實踐經驗、研究成果、經驗教訓的基礎上,詳細列出了幾十種經實踐證明可以直接在軟體開發中應用,以提高開發速度的最佳實踐方法、開發策略、實用技巧等,幫助開發人員和項目經理在了解軟體開發中最常見錯誤的基礎上,根據自身實際情況,制定出滿足項目進度、成本、質量與其他目標要求的最佳方案。
算法
《算法(英文版第4版)》作為算法領域經典的參考書,全面介紹了關於算法和數據結構的必備知識,並特別針對排序、搜索、圖處理和字符串處理進行了論述。第4版具體給出了每位程式設計師應知應會的50個算法,提供了實際代碼,而且這些Java代碼實現採用了模塊化的編程風格,讀者可以方便地加以改造。本書配套網站提供了本書內容的摘要及更多的代碼實現、測試數據、練習、教學課件等資源。
持續交付
Jez Humble編著的《持續交付(發布可靠軟體的系統方法)》講述如何實現更快、更可靠、低成本的自動化軟體交付,描述了如何通過增加反饋,並改進開發人員、測試人員、運維人員和項目經理之間的協作來達到這個目標。《持續交付(發布可靠軟體的系統方法)》由三部分組成。第一部分闡述了持續交付背後的一些原則,以及支持這些原則的實踐。第二部分是本書的核心,全面講述了部署流水線。第三部分圍繞部署流水線的投入產出討論了更多細節,包括增量開發技術、高級版本控制模式,以及基礎設施、環境和數據的管理和組織治理。 《持續交付(發布可靠軟體的系統方法)》適合所有開發人員、測試人員、運維人員和項目經理學習參考。
軟體架構設計
《軟體架構設計:大型網站技術架構與業務架構融合之道》圍繞軟體架構設計,系統化地梳理技術架構與業務架構的方法論與實踐。《軟體架構設計:大型網站技術架構與業務架構融合之道》內容分為5 大部分,第1 部分定義架構的概念和範疇;第2 部分從程式語言、作業系統、網絡、資料庫、框架、中間件等方面入手,介紹架構學的基礎知識;第3 部分從高並發、高可用與穩定性、一致性、CAP 理論等角度,分析技術架構知識;第4 部分從業務架構思維、技術架構與業務架構的融合角度,闡述業務架構知識;第5 部分從個人素質、團隊能力兩大方面,詮釋從技術到管理的轉變方法。通過本書,讀者可以對業務軟體的架構方法學有全局的認識,同時對軟體架構的核心能力有深刻的理解,對個人的技術成長起到一定的借鑑作用。
《軟體架構設計:大型網站技術架構與業務架構融合之道》不僅適合工程師、架構師閱讀,也適合企業系統開發人員在內的軟體開發從業人員閱讀。