[買起來書單] 那些最常在Stack Overflow 被提到的30 本工程師 ...

文章推薦指數: 80 %
投票人數:10人

深入淺出設計模式 跳到主要內容 [買起來書單]那些最常在StackOverflow被提到的30本工程師必備書籍 7/30/2019 最近WorkingEffectivelywithLegacyCode終於有了正體中文版,才想到是該來整理一篇了。

有國外網友用爬蟲抓了超過四千萬篇StackOverflow的問題,統計網友在這些解答中提到的書籍。

這次的新翻譯本就是本次列表中的第一名,可見其在國外網友的重要性。

雖然有些書籍看似過時,但還是有很多歷久不衰的經典書籍值得收藏。

統計結果排名如下:1 (以中文版的書籍名為主,簡介與書籍封面來自天瓏網路書店) #1WorkingEffectivelywithLegacyCode:管理、修改、重構遺留程式碼的藝術(中文版) #2物件導向設計模式-可再利用物件導向軟體之要素 #3無瑕的程式碼-敏捷軟體開發技巧守則 #4Javaconcurrencyinpractice #5領域驅動設計:軟體核心複雜度的解決方法 #6JavaScript-優良部份 #7企業應用架構模式 #8CODECOMPLETE:軟體開發實務指南 #9重構|改善既有程式的設計 #10深入淺出設計模式 #11C語言程式設計 #12EffectiveC++:改善程序與設計的55個具體做法 #13Test-DrivenDevelopment #14演算法導論 #15精通正規表達式 #16CLRViaC #17CocoaProgrammingforMacOSX #18EffectiveSTL:50SpecificWaystoImproveYourUseoftheStandardTemplateLibrary #19ModernC++Design:GenericProgrammingandDesignPatternsApplied #20大型C++軟體設計 #21InsidetheMicrosoftBuildEngine:UsingMSBuildandTeamFoundationBuild #22ProgrammingASP.NETCore #23xUnitTestPatterns:RefactoringTestCode #24ConcurrentProgrammingonWindows #25編譯原理 #26FrameworkDesignGuidelines:Conventions,Idioms,andPatternsforReusable.NETLibraries #27C++編程規範:101個準則、指導方針,和最佳實踐 #28UNIX網絡編程 #29PurelyFunctionalDataStructures #30單元測試的藝術 #1WorkingEffectivelywithLegacyCode:管理、修改、重構遺留程式碼的藝術(中文版) 原文書名:WorkingEffectivelywithLegacyCode 作者:MichaelC.Feathers 天瓏連結 【名家名著】19 RobertC.MartinSeries 軟體工程師必讀的十大好書之一 《無瑕的程式碼》作者Bob大叔親自撰文推薦! 遺留程式碼是每個coder在職場上幾乎都會遇到的難題, 且讓本書幫助您披荊嶄棘,殺出一條軟體變更的康莊大道! 讓你更能妥善處理你的遺留程式碼:使它有更多表現、更多功能、更具可依賴性以及更易於管理 你的程式碼容易修改嗎?當你修改它的時候,可以即時得到回饋嗎?你了解它的運作嗎?如果有任何一個答案為否定,那麼你面對的就是遺留程式碼,而且它會拖垮你的開發成效,使你浪費更多寶貴的時間與金錢。

在本書中,MICHAELC.FEATHERS提供了許多整套的策略,使讀者能夠更有效率地使用遺留程式碼,以及未經測試的遺留codebase。

這本書取材於作者為他知名的ObjectMentor研討會所撰寫的內容。

作者在指導時所提到的技巧,已經幫助數以百計的開發者、技術管理者以及測試人員,使他們的遺留系統維持在掌控之中。

本書內容包括: ☛了解軟體修改的機制:增加特性、修正bug、改善設計、調整性能。

☛使遺留程式碼進入測試控制工具(testharness)。

☛編寫測試來保護你免於引入新的問題。

☛可用於任何語言或平台的技術──以Java、C++、C與C#為範例。

☛正確分辨程式碼應該修改的地方。

☛處理非物件導向的遺留系統。

☛處理看來似乎沒有任何結構的應用程式。

這本書也包含24個解依賴技術的目錄,可協助你讓程式的要素獨立,並且使變動更加安全。

#2物件導向設計模式-可再利用物件導向軟體之要素 原文書名:DesignPatterns:ElementsofReusableObject-OrientedSoftware 作者:ErichGamma,RichardHelm,RalphJohnson,JohnVlissides 天瓏連結 本書探討的是在物件導向軟體設計領域裡,用以描述對特定問題精簡優雅的解決方案: 設計模式。

主要分兩個部份, 第一、它展示patterns在建構複雜系統時可以扮演什麼腳色模式; 第二、它提供非常實用的參考資料讓軟體開發者可以將這些精良的patterns運用在自己的專案上。

作者以豐富的物件導向軟體設計經驗,將頻繁出現卻又非常精簡的解決方案彙編成型錄,因此書籍一出版立刻成為物件導向圈內人手一冊的聖經。

#3無瑕的程式碼-敏捷軟體開發技巧守則 原文書名:CleanCode:AHandbookofAgileSoftwareCraftsmanship 作者:RobertC.Martin 天瓏連結 本書榮獲iThome年度百大好書推薦 本書的原文書名為《CleanCode:AHandbookofAgileSoftwareCraftsmanship》,根據作者的說法,《無瑕的程式碼》為Jolt得獎著作《敏捷軟體開發:原則、樣式及實務》的前傳。

在台灣另一本銷售極佳的書籍《重構─改善既有程式的設計》,根據亞馬遜Amazon網站的統計,購買該書原文版《Refactoring:ImprovingtheDesignofExistingCode》,又同時購買的其他書籍第一名,正是《CleanCode:AHandbookofAgileSoftwareCraftsmanship》這一本書。

第一章作者開宗明義說明什麼是CleanCode,他詢問了包含C++發明人BjarneStroustrup、Eclipse策略教父DaveThomas、極限程式設計大師RonJeffries、維基與極限程式設計發明人,WardCunningham等等的大師,從他們的眼光來描述什麼是CleanCode,最後才說到作者本人認為的CleanCode應該長成什麼樣子,有什麼好處,以及學習撰寫CleanCode的基本原則。

小編只能說,能和那麼多大師對談,就已經證明了作者也是一位大師 其餘部分本書分成三部份。

第一部份 包含有許多章節,這些章節將描述撰寫cleancode的原則、模式及實踐,這些章節包含了不少的程式碼篇幅,閱讀它們頗具有挑戰性。

這些章節替你準備好閱讀第二部份所需的背景知識。

第二部份 這裡包含許多複雜性不斷增加的案例討論。

在這個部分,作者會直接帶領您進行整個重構的過程,每次的修改,作者都會說明原因,重構的對象並不僅止於一般的程式,甚至還包含了著名的框架,例如JUnit(哇!把開放原始碼框架拿來重構,真酷)。

第三部份 終於到了成果收割的時候。

最後一章列出了案例討論時搜集到的程式啟發和氣味。

在案例討論裡走過和清理程式碼時,紀錄了每個行為的原因,並整理成一種程式啟發或氣味,成了一個知識庫,這個知識庫可以說是整本書的精華與交互參照。

#4Javaconcurrencyinpractice (無中文版) 作者:BrianGoetz,TimPeierls,JoshuaBloch,JosephBowbeer,DavidHolmes,DougLea 天瓏連結(原文書) ThreadsareafundamentalpartoftheJavaplatform.Asmulticoreprocessorsbecomethenorm,usingconcurrencyeffectivelybecomesessentialforbuildinghigh-performanceapplications.JavaSE5and6areahugestepforwardforthedevelopmentofconcurrentapplications,withimprovementstotheJavaVirtualMachinetosupporthigh-performance,highlyscalableconcurrentclassesandarichsetofnewconcurrencybuildingblocks.InJavaConcurrencyinPractice,thecreatorsofthesenewfacilitiesexplainnotonlyhowtheyworkandhowtousethem,butalsothemotivationanddesignpatternsbehindthem. However,developing,testing,anddebuggingmultithreadedprogramscanstillbeverydifficult;itisalltooeasytocreateconcurrentprogramsthatappeartowork,butfailwhenitmattersmost:inproduction,underheavyload.JavaConcurrencyinPracticearmsreaderswithboththetheoreticalunderpinningsandconcretetechniquesforbuildingreliable,scalable,maintainableconcurrentapplications.RatherthansimplyofferinganinventoryofconcurrencyAPIsandmechanisms,itprovidesdesignrules,patterns,andmentalmodelsthatmakeiteasiertobuildconcurrentprogramsthatarebothcorrectandperformant. Thisbookcovers: Basicconceptsofconcurrencyandthreadsafety Techniquesforbuildingandcomposingthread-safeclasses Usingtheconcurrencybuildingblocksinjava.util.concurrent Performanceoptimizationdosanddon’ts Testingconcurrentprograms Advancedtopicssuchasatomicvariables,nonblockingalgorithms,andtheJavaMemoryModel #5領域驅動設計:軟體核心複雜度的解決方法 原文書名:Domain-DrivenDesign:TacklingComplexityintheHeartofSoftware 作者:EricEvans 天瓏連結 【名家名著18】  領域驅動設計:軟體核心複雜度的解決方法 Domain-DrivenDesign:TacklingComplexityintheHeartofSoftware 『這本書應該出現在每位軟體開發人員的書架上。

』(Thisbookbelongsontheshelfofeverythoughtfulsoftwaredeveloper.) -KentBeck 軟體大師,JUnit的創始人,XP與TDD專家 『Eric的這本書太棒、太神奇了,他準確地告訴你如何讓軟體設計滿足你的模型需求……本書讀起來趣味無窮。

Eric有許多有趣的故事,而且描述起來很有一套……它將成為軟體開發人員必讀的經典之作。

』 -RalphJohnson GoF的《DesignPatterns》的作者 『如果你認為自己在物件導向程式設計中的投入沒有得到回報,讀了這本書你就會知道自己漏掉什麼。

』 -WardCunningham 設計模式和敏捷軟體開發方法的先驅 『EricEvans成功證明了作為開發核心的領域模型的重要性。

他搭建了一個穩固的框架,並提供一套實作技術和技巧。

這裡沉澱下來的是亙古不變的智慧,在流行的方法論都淪為明日黃花之後,它依然光華璀璨。

』 -DaveCollins 《DesigningObject-OrientedUserInterfaces》的作者 『Eric完全從實戰者的角度著手,描述了通用的語言、與使用者共享模型的好處、物件生命週期的管理、深度重構的過程和結果,這是對我們這個領域的巨大貢獻。

』 -LukeHohmann 《BeyondSoftwareArchitecture》的作者 『Eric成功抓住了經驗豐富的物件設計師在設計過程中會使用的那一部分……我們從未有組織地和有系統地把建立領域邏輯的原則制度化。

這是一本非常重要的著作。

』 -KyleBrown 《EnterpriseJavaProgrammingwithIBMWebSphere》的作者 『講解DDD的書籍並不多,而這本書是當中公認最好的一本。

如果您對於DDD有任何疑問,這本書將會提供最佳解答』 -陳錦輝 博碩文化《名家名著》總編輯 #6JavaScript-優良部份 原文書名:JavaScript:TheGoodParts 作者:DouglasCrockford 天瓏連結 大多數程式語言都包含好與不好的兩類成分,但JavaScript的後者似乎佔了不少比例,因為它是個開發與發表都很匆促、沒有時間精雕細琢的語言。

這本權威書籍刮除了JavaScript中最可怕的功能,為大家呈現較為可靠、較可讀解、也較可維護的部分JavaScript-我們能用這部分功能建立真正具擴充性、又有效率的原始碼。

本書作者DouglasCrockford,一位獲程式開發社群中許多人公認的JavaScript專家,分辨出了讓JavaScript成為傑出物件導向程式設計語言的優良部分。

但很可惜,這些優良的部分(例如函式、寬鬆型別、動態物件、富表達性的物件實字註記)都與糟糕到家的想法混在一起(例如以全域變數為基礎的程式設計模型)。

當Javaapplets失敗後,JavaScript變成全球資訊網上的預設程式語言;它的流行程度,完全與它的程式語言品質無關。

在《JavaScript:優良部分》中,Crockford從龍蛇雜處的良好意圖與錯誤失敗中,仔細挖出JavaScript所有真正優雅的部分,包括: 語法 繼承性 方法 物件 陣列 Style 函式 正規式 漂亮的功能 一本《JavaScript:優良部分》在手,你將發現一個美麗、優雅、輕量,且高度表達性的語言,可建立有效率的程式碼;無論你在管理物件函式庫,或只是想讓Ajax跑得更快。

如果你為全球資訊網開發網站或應用程式,一定要閱讀本書。

DouglasCrockford是Yahoo!的資深JavaScript架構師,因為他對JSON(JavaScriptObjectNotation)格式的引進與維護而相當知名。

經常於JavaScript深度研討會上演講,也是ECMAScript委員會的成員。

#7企業應用架構模式 (僅有簡體版) 原文書名:PatternsofEnterpriseApplicationArchitecture 作者:MartinFowler 天瓏連結(簡體版) 企業應用開發的實踐得益於多種新技術的出現,多層的面向對象平臺(如Java、.NET)已經日漸平常。

這些新工具和新技術有能力構建更強大的企業應用程序,但是在實現上還不太容易。

由於開發人員未能充分理解有經驗的對象程序開發人員在架構方面的經驗和教訓,因此企業應用中經常存在一些共同的錯誤。

本書就是面向企業應用開發者的,可幫助他們迎接這種艱難挑戰。

本書的作者MartinFowler註意到,儘管技術本身存在變化——從Smalltalk到CORBA,再到Java和.NET,但基本的設計思想並沒有太多變化,可以加以適當調整,用來解決那些共同的問題。

在一組專家級合作者的幫助下,作者將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用於任何一種企業應用平臺的、關於解決方案的、不可或缺的手冊。

本書曾於2002年榮獲美國軟件開發雜誌圖書類的生產效率獎和讀者選擇獎。

本書涉及兩部分內容。

第一部分是關於如何開發企業應用的簡單介紹。

在閱讀這部分時,讀者可以從頭到尾通讀,以掌握本書的範圍。

第二部分是本書的主體,是關於模式的詳細參考手冊,每個模式都給出使用方法和實現信息,並配有詳細的Java代碼或C#代碼的示例。

此外,整本書中還用大量UML圖來進一步闡明有關概念。

本書是為致力於設計和構建企業應用的軟件架構師、設計人員和編程人員而寫的,同時也可作為高等院校電腦專業及軟件學院相關課程的參考教材。

#8CODECOMPLETE:軟體開發實務指南 原文書名:CodeComplete:APracticalHandbookofSoftwareConstruction 作者:SteveMcConnell 天瓏連結 廣獲好評的程式設計實務指南,在過去十幾年間,由SteveMcConnell所原創的《CodeComplete》已幫助許許多多的開發者,開發出更完善的軟體。

本書包含最新的更新與修訂內容,以及數百項全新的程式碼範例,充分闡明軟體建構的科學與藝術。

McConnell匯集了來自學術研究與商業實務的各項知識,歸納出最有效的工作技巧、以及最關鍵的實踐原則,轉化成一系列清晰且務實的指引。

無論你的知識水準、工作環境或專案規模如何,本書都能提昇你的智慧,幫助你建構出最佳品質的程式碼。

發掘各項歷久彌新的技巧與策略,使你能夠: 建構出低複雜性,但卻有高可塑性的設計。

組織健全的協作式開發並從中獲益。

應用防禦性程式設計技巧,消弭發生錯誤的機會。

洞察合適的時機,妥善地對程式碼進行重構或演變。

依專案規模選擇合適的實踐方法。

快速且有效地進行除錯。

及早且正確地解決重大的建構問題。

從一而終保持高品質的軟體專案。

#9重構|改善既有程式的設計 原文書名:Refactoring:ImprovingtheDesignofExistingCode 作者:MartinFowler 天瓏連結 完全修訂及更新:包含新的重構方法和範例程式 二十多年來,世界各地經驗豐富的程式員都使用MartinFowler的《重構》來改善既有程式的設計、提升軟體的易維護性,以及讓既有的程式更容易被人瞭解。

為了反映程式設計領域的重大變化,作者全面翻新書籍內容,推出這本備受期待的新版本。

《重構第二版》提供了新的重構名錄,加入JavaScript範例程式以及新的實用範例來展示各種重構。

這個版本與第一版一樣,將解釋什麼是重構、為何重構、如何認出需要重構的程式,以及如何成功地重構,無論你是使用哪一種語言。

瞭解重構的程序與一般原則 快速運用實用的重構技術,讓程式更容易理解與修改 辨認暗示有待重構的程式碼“異味” 探討重構,每一個案例都包括說明、動機、作法與簡單的範例 為重構建立可靠的測試程式 認識重構的取捨與障礙 本書原文網站提供免費的web標準版本,包含更多重構資源,書中內容將說明如何取得。

#10深入淺出設計模式 原文書名:HeadFirstDesignPatterns 作者:EricFreeman,BertBates,KathySierra,ElisabethRobson 天瓏連結 你不想重新發明輪子(或者更差的是,沒有充氣的輪子),所以你從設計模式中尋求協助-設計模式是過去人們面對軟體設計問題所學來的經驗。

有了設計模式,你就可以利用其他人經驗和實務的精華,省下的時間可以用在…其他的事情上,像是:更有挑戰性的事情、更複雜的事情、更有趣的事情。

你想要學習: 事關緊要的模式 何時使用某個模式,為何使用該模式 如何在你自己的設計中馬上採用這些模式 何時不該使用模式(如何避免對模式過度狂熱) 某個模式是依據哪些OO設計守則而設計出來的 更重要的是,你想在學習設計模式的過程中,不會感覺到昏昏欲睡。

如果你曾經讀過任何一本一頭栽進系列書籍,你就會知道你能夠從本書中得到的是:透過豐富的視覺效果讓你的大腦充分地運作。

本書的編寫運用許多最新的研究,包括神經生物學、認知科學、以及學習理論,這使得這本書能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。

你將會更擅長於解決軟體設計的問題,並能夠和你的團隊成員用模式的術語來溝通。

#11C語言程式設計 原文書名:TheCProgrammingLanguage 作者:BrianW.Kernighan,DennisM.Ritchie 天瓏連結 詳細探討C語言的基本資料型別、運算子和運算式 內容涵蓋函數和程式結構、外變數、範圍規則等介紹 指標、結構、運算符號集、及標準程式庫等重要特性說明 提供完整且經過測試的程式範例 內含C語言參考手冊及最新C99標準 詳細探討C語言的基本資料型別、運算子和運算式 內容涵蓋函數和程式結構、外變數、範圍規則等介紹 指標、結構、運算符號集、及標準程式庫等重要特性說明 提供完整且經過測試的程式範例 內含C語言參考手冊及最新C99標準 #12EffectiveC++:改善程序與設計的55個具體做法 原文書名:EffectiveC++:55SpecificWaystoImproveYourProgramsandDesigns 作者:ScottMeyers 天瓏連結 《EffectiveC++》前兩個版本抓住了全世界無數程式員的目光。

原因十分顯明:ScottMeyers極富實踐意義的C++研討方式,描述出專家用以產出乾淨、正確、高效程式碼的經驗法則和行事法則—也就是他們幾乎總是做或不做的某些事。

本書一共組織55個準則,每一條準則描述一個編寫出更好的C++的方式。

每一個條款的背後都有具體範例支撐。

第三版有一半以上的篇幅是嶄新內容,包括討論資源管理和模板(templates)運用的兩個新章。

為反映出現代設計考量,對第二版論題做了廣泛的修訂,包括異常(exceptions)、設計範式(designpatterns)和多緒(multithreading)。

《EffectiveC++》的重要特徵包括: 高效的classes、functions、templates和inheritancehierarchies(繼承體系)方面的專家級指導。

嶄新的“TR1”標準程式庫功能應用,以及與既有標準程式庫組件的比較。

洞察C++和其他語言(例如Java、#C、C)之間的不同。

此舉有助於那些來自其他語言陣營的開發人員消化吸收C++式的各種解法。

#13Test-DrivenDevelopment (無中文版) 作者:KentBeck 天瓏連結(原文書) Test-drivendevelopment(TDD)isanewapproachtoapplicationdevelopmentthatisdesignedtoeliminatethefearoftenassociatedwithbuildingsoftware.Admittedly,somefearishealthy(oftenviewedasaconsciencethattellsprogrammersto“becareful!”),buttheauthorbelievesthatprogrammersbuildbettersoftwarewhentheyhavethefreedomtobecreative.Bybuildingtestsbeforecodingbegins,programmersensurethesuccessoftheirapplicationfromtheoutset.StudentsaremorelikelytoachievepositiveresultswithTDD.Theauthor’sexample-drivenapproachalsoteachesstudentstobebettercommunicators,andencouragesteammemberstoseekoutconstructivecriticism. #14演算法導論 (僅有簡體版,已絕版) 原文書名:IntroductiontoAlgorithms 作者:MartinFowler 天瓏連結(原文書) 本書深入淺出,全面地介紹了計算機演算法。

對每一個演算法的分析既易於理解又十分有趣,並保持了數學嚴謹性。

本書的設計目標全面,適用於多種用途。

涵蓋的內容有:演算法在計算中的作用,概率分析和隨機演算法的介紹。

本書專門討論了線性規劃,介紹了動態規劃的兩個應用,隨機化和線性規劃技術的近似演算法等,還有有關遞歸求解、快速排序中用到的劃分方法與期望線性時間順序統計演算法,以及對貪心演算法元素的討論。

本書還介紹了對強連通子圖演算法正確性的證明,對哈密頓回路和子集求和問題的NP完全性的證明等內容。

全書提供了900多個練習題和思考題以及敘述較為詳細的實例研究。

本書內容豐富,對本科生的資料結構課程和研究生的演算法課程都是很實用的教材。

本書在讀者的職業生涯中,也是一本案頭的數學參考書或工程實踐手冊。

#15精通正規表達式 原文書名:MasteringRegularExpressions 作者:JeffreyE.F.Friedl 天瓏連結 涵蓋Perl,PHP,Java,.NET,Ruby以及其他語言! 理解您的資料,增進生產力 這本書將帶您熟悉一套能讓您生活輕鬆許多的生產力秘密:正規表達式(regularexpressions)。

精細雕琢的正規表達式可以把數小時的勞力工作化為15秒搞定的解決法。

現在它已經是許多語言、著名工具的標準功能—Perl,PHP,Java,Python,Ruby,MySQL,VB.NET與C#(還有任何使用.NETFramework的語言)都有提供這個功能。

正規表達式將能讓您寫出複雜、精細的文字處理工作,這些工作可能是您以往絕不認為可以自動化的。

《精通正規表達式第三版》納入PHP以及它提供的強大正規表達式功能。

這個版本同時也徹底更新以反應其他語言的進展,像是擴充了深入討論Sun的java.util.regex相關內容,同時也特別提到許多Java1.4.2與Java1.5/1.6之間的差異。

本書涵蓋主題包括: 比較各種語言與工具提供的功能 正規表達式引擎如河運作 最佳化(效果明顯!) 只比對您要的資料,略過您不要的部份 各語言獨立的章節探討 全書以明快、有趣的風格撰寫,讓程式設計者能清楚理解這個複雜的主題,同時也充滿各種現實世界之中難解問題的解法。

《精通正規表達式第三版》提供許多有用的資訊讓您立刻發揮,為各種問題寫出優雅、節省時間的解決方案。

#16CLRViaC (僅有簡體版) 原文書名:CLRViaC# 作者:JeffreyRichter 天瓏連結(簡體版) 本書針對CLR和.NETFramework4.5進行深入、全面的探討,並結合實例介紹瞭如何利用它們進行設計、開發和調試。

全書5部分共29章。

第Ⅰ部分介紹CLR基礎,第Ⅱ部分解釋如何設計類型,第Ⅲ部分介紹基本類型,第Ⅳ部分以核心機制為主題,第Ⅴ部分重點介紹執行緒。

通過本書的閱讀,讀者可以掌握CLR和.NETFramework的精髓,輕鬆、高效地創建高性能應用程式。

#17CocoaProgrammingforMacOSX (無中文版) 作者:AaronHillegass,AdamPreble 天瓏連結(原文書) Ifyou’redevelopingapplicationsforMacOSX,Cocoa®ProgrammingforMac®OSX,FourthEdition,isthebookyou’vebeenwaitingtogetyourhandson.Ifyou’renewtotheMacenvironment,it’sprobablythebookyou’vebeentoldtoreadfirst. Coveringthebulkofwhatyouneedtoknowtodevelopfull-featuredapplicationsforOSX,writteninanengagingtutorialstyle,andthoroughlyclass-testedtoassureclarityandaccuracy,itisaninvaluableresourceforanyMacprogrammer.Specifically,AaronHillegassandAdamPrebleintroducethetwomostcommonlyusedMacdevelopertools:XcodeandInstruments.TheyalsocovertheObjective-ClanguageandthemajordesignpatternsofCocoa.AaronandAdamillustratetheirexplanationswithexemplarycode,writtenintheidiomsoftheCocoacommunity,toshowyouhowMacprogramsshouldbewritten.Afterreadingthisbook,youwillknowenoughtounderstandandutilizeApple’sonlinedocumentationforyourownuniqueneeds.Andyouwillknowenoughtowriteyourownstylishcode. UpdatedforMacOSX10.6and10.7,thisfourtheditionincludescoverageofXcode4,blocks,view-basedtableviews,Apple’snewapproachtomemorymanagement(AutomaticReferenceCounting),andtheMacAppStore.ThiseditionaddsanewchapteronconcurrencyandexpandscoverageofCoreAnimation.ThebooknowdevotesafullchaptertothebasicsofiOSdevelopment. #18EffectiveSTL:50SpecificWaystoImproveYourUseoftheStandardTemplateLibrary (無中文版) 作者:ScottMeyers 天瓏連結(原文書) C++‘sStandardTemplateLibraryisrevolutionary,butlearningtouseitwellhasalwaysbeenachallengeforstudents.InEffectiveSTL,best-sellingauthorScottMeyers(EffectiveC++,MoreEffectiveC++)revealsthecriticalrulesofthumbemployedbytheexperts–thethingstheyalmostalwaysdooralmostalwaysavoiddoing–togetthemostoutofthelibrary.Thisbookoffersclear,concise,andconcreteguidelinestoC++programmers.Whileotherbooksdescribewhat’sintheSTL,EffectiveSTLshowsthestudenthowtouseit.Eachofthebook’s50guidelinesisbackedbyMeyers’legendaryanalysisandincisiveexamples,sothestudentwilllearnnotonlywhattodo,butalsowhentodoit-andwhy. #19ModernC++Design:GenericProgrammingandDesignPatternsApplied (無中文版) 作者:ScottMeyers 天瓏連結(原文書) AchievemorewithC++thanyoueverimaginedpossible! Introducesgenericcomponents,whichofferbreakthroughpowerformaximizingexpressiveness,flexibility,andreuseofcode. Readerswilllearnexciting,powerfulnewC++idiomsthatwillhelpthemmasterthemostmodernlibrarywritingtechniques. ForewordsbyScottMeyers(EffectiveC++),oneoftheworld’sleadingC++experts,andbyJohnVlissides,oftheIBMT.J.WatsonResearchcenter,oneoftheworld’sleadingpatternsexperts. InModernC++Design,AndreiAlexandrescuopensnewvistasforC++programmers.Displayingextraordinarycreativityandvirtuosity,Alexandrescuoffersacutting-edgeapproachtosoftwaredesignthatunitesdesignpatterns,genericprogramming,andC++,enablingprogrammerstoachieveexpressive,flexible,andhighlyreusablecode.Thebookintroducestheconceptofgenericcomponents,reusabledesigntemplatesthatenableaneasierandmoreseamlesstransitionfromdesigntoapplicationcode,generatecodethatbetterexpressestheoriginaldesignintention,andsupportthereuseofdesignstructureswithminimalrecoding.Theauthorthenshowshowtoapplythisapproachtorecurring,real-worldissuesthatC++programmersfaceintheirday-to-dayactivity.AllcodeisavailableontheWeb,alongwithAlexandrescu’sdownloadableLokiC++library,whichprovidespowerfulout-of-the-boxfunctionalityforvirtuallyanyC++project.ForexperiencedC++programmerswhohaveatleastsomefamiliaritywiththeStandardTemplateLibrary(STL). #20大型C++軟體設計 原文書名:Large-ScaleC++SoftwareDesign 作者:JohnLakos 天瓏連結 開發大型C++軟體系統不只需要了解邏輯設計知識,為了專案成功,您更需要掌握實體設計的觀念,它是開發過程的技術面向,很多資深的軟體開發工程師都不一定很有這方面的經驗。

坊間書籍大多是探討邏輯設計,鮮少述及實體設計。

本書是需要大量專業C++開發工作如資料庫、作業系統、編譯器以及軟體框架的權威書籍,它也是教導如何開發大型系統的第一本書,更是少數幾本由C++程式語言的實際面來探討物件導向設計的其中之一。

在本書中,Lakos先生將傳授將大型系統拆解成由小型、易於維護的軟體元件所構成的實體(不是繼承)架構。

系統本身如果不具有環形實體相依性,對它維護、測試與重複利用會比對相互緊密相依的系統容易且經濟。

除了闡述好的實體設計就像好的邏輯設計一樣重要之外,作者也提供一系列技巧用以消除環形、編譯時期與連結時期相依關係。

作者接著會延伸這些觀念到非常非常大型的系統,而在本書後段將探討單一元件設計常見的top-down方式。

#21InsidetheMicrosoftBuildEngine:UsingMSBuildandTeamFoundationBuild (無中文版) 作者:SayedHashimi,WilliamBartholomew 天瓏連結(原文書) Assoftwarecomplexityincreases,properbuildpracticesbecomeevermoreimportant.Thisessentialreference—fullyupdatedforVisualStudio2010—drillsinsideMSBuildandshowsyouhowtomaximizeyourcontroloverthebuildanddeploymentprocess.LearnhowtocustomizeandextendbuildprocesseswithMSBuild—andscalethemtotheteam,product,orenterpriselevelwithTeamFoundationBuild. #22ProgrammingASP.NETCore (原始資料為2.0版,我替換成Core版本) (無中文版) 作者:DinoEsposito 天瓏連結 DinoEsposito’sProgrammingASP.NETCoreisthedefinitiveguidetopracticalsoftwaredevelopmentwithMicrosoft’sexcitingnewASP.NETCoretechnologies.UnlikecompetitivebooksthatfocusprimarilyonASP.NETCore’scross-platformcapabilitiesoronlywhat’schangedfromearlierversions,Espositooffersacompletelearningpathforeverydeveloperwhowantstobuildproductionsolutions.Esposito’sexpertcoverageincludes: ApplyingallkeyASP.NETCorecomponents,includingMVCforHTMLgeneration,.NETCore,EFCore,ASP.NETIdentity,dependencyinjection,andmore IntegratingASP.NETCorewithleadingclient-sideframeworks,includingBootstrap ASP.NETCorecodeforimplementingbusinesslogicanddatatransformations Handlingconfiguration,routing,controllers,views,andcommontasks(includingpostingformsandpresentingdata) Performingcomplementarytasks:errorhandling,logging,applicationdesign,authentication,localization,andmore Front-enddevelopment:ensuringresponsiveness,creatingmobileviews,andprovidingadvancedinteractivity Middleware,dataaccess,runtimearchitecture,anddeployment Takingfulladvantageofthebrand-newASP.NETCoreruntime #23xUnitTestPatterns:RefactoringTestCode (無中文版) 作者:GerardMeszaros 天瓏連結(原文書) Automatedtestingisacornerstoneofagiledevelopment.Testingcandelivernewfunctionalitymoreaggressively,accelerateuserfeedback,andimprovequality.However,formanydevelopers,creatingeffectiveautomatedtestsisauniqueandunfamiliarchallenge. XUnitTestPatternsisthedefinitiveguidetowritingautomatedtestsfortoday’spopularXUnittestautomationframeworks.RenownedtestingexpertGerardMeszarosintroducesmorethan120provenpatternsformakingtestseasiertowrite,understand,andmaintain.Hethenshowsyouhowtomakethemmorerobustandrepeatable,andfarmorecost-effective. Drawingonhisextensiveexperience,Meszarosilluminatestheevolvingroleofsoftwaretestingandclearlydefinesunit,componentandsystemtesting.Hethenlinkstheseconceptstothe“programmer”and“customer”testsrequiredbyagilemethods.You’lllearnhowtooptimizeyourtestautomationstrategy,organizeit,andimplementitwithXUnit.You’llalsolearnthreecategoriesofrecurringproblems,andhowtoovercomeeachofthese“testsmells.” Acomprehensivereferencetomorethan120testingpatternsisincluded,andMeszarosilluminatestheprinciplesunderlyingeachpattern,offeringstep-by-stepusageinstructions.You’llfindhigh-levelstrategypatterns,design-levelpatternsfortestingspecificfunctionality,andcodingidiomsforoptimizingspecifictests.Inaddition,anextensivelibraryofrelevantcodesamplesisavailableonline.Topicscoveredinclude: Writingbettertests–andwritingthemfaster Softwaretestingphases:fixturesetup,exerciseSUT,resultverification,andfixtureteardown Testingbusinesslogic,databases,userinterfaces,andmachine-to-machineinterfaces Isolatingsoftwaretotestitindependentlyfromitsenvironment Refactoringtestsforgreatersimplicity WorkingeffectivelywithXUnit,NUnit,JUnit,andotherimplementations Designingsoftwareforgreatertestability Thisbookwillbenefitdevelopers,managers,andtestersworkingwithanyagileorconventionaldevelopmentprocess,anytestingframework,andanytestingstrategy–from“testsasspecification”to“testsassafetynet.” #24ConcurrentProgrammingonWindows (無中文版) 作者:JoeDuffy 天瓏連結(原文書) AuthorJoeDuffyhasrisentothechallengeofexplaininghowtowritesoftwarethattakesfulladvantageofconcurrencyandhardwareparallelism.InConcurrentProgrammingonWindows,heexplainshowtodesign,implement,andmaintainlarge-scaleconcurrentprograms,primarilyusingC#andC++forWindows. Duffyaimstogiveapplication,system,andlibrarydevelopersthetoolsandtechniquesneededtowriteefficient,safecodeformulticoreprocessors.Thisisimportantnotonlyforthekindsofproblemswhereconcurrencyisinherentandeasilyexploitable—suchasserverapplications,compute-intensiveimagemanipulation,financialanalysis,simulations,andAIalgorithms—butalsoforproblemsthatcanbespeededupusingparallelismbutrequiremoreeffort—suchasmathlibraries,sortroutines,reportgeneration,XMLmanipulation,andstreamprocessingalgorithms. ConcurrentProgrammingonWindowshasfourmajorsections:Thefirstintroducesconcurrencyatahighlevel,followedbyasectionthatfocusesonthefundamentalplatformfeatures,innerworkings,andAPIdetails.Next,thereisasectionthatdescribescommonpatterns,bestpractices,algorithms,anddatastructuresthatemergewhilewritingconcurrentsoftware.Thefinalsectioncoversmanyofthecommonsystem-widearchitecturalandprocessconcernsofconcurrentprogramming. Thisistheonlybookyou’llneedinordertolearnthebestpracticesandcommonpatternsforprogrammingwithconcurrencyonWindowsand.NET. #25編譯原理 (僅有簡體版) 原文書名:Compilers:Principles,Techniques,andTools 作者:MonicaSLam,R.Sethi,JeffreyD.Ullman,A.V.Aho 天龍連結(簡體版) 《編譯原理(第2版)》全面、深入地探討了編譯器設計方面的重要主題,包括詞法分析、語法分析、語法制導定義和語法制導翻譯、運行時刻環境、目標代碼生成、代碼優化技術、並行性檢測以及過程間分析技術,並在相關章節中給出大量的實例。

與上一版相比,《編譯原理(第2版)》進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。

每章中都提供了大量的系統及參考文獻。

《編譯原理(第2版)》是編譯原理課程方面的經典教材,內容豐富,適合作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。

#26FrameworkDesignGuidelines:Conventions,Idioms,andPatternsforReusable.NETLibraries (無中文版) 作者:KrzysztofCwalina,BradAbrams 天瓏連結(原文書) FrameworkDesignGuidelines,SecondEdition,teachesdevelopersthebestpracticesfordesigningreusablelibrariesfortheMicrosoft.NETFramework.Expandedandupdatedfor.NET3.5,thisneweditionfocusesonthedesignissuesthatdirectlyaffecttheprogrammabilityofaclasslibrary,specificallyitspubliclyaccessibleAPIs. Thisbookcanimprovetheworkofany.NETdeveloperproducingcodethatotherdeveloperswilluse.Itincludescopiousannotationstotheguidelinesbythirty-fiveprominentarchitectsandpractitionersofthe.NETFramework,providingalivelydiscussionofthereasonsfortheguidelinesaswellasexamplesofwhentobreakthoseguidelines. MicrosoftarchitectsKrzysztofCwalinaandBradAbramsteachframeworkdesignfromthetopdown.Fromtheirsignificantcombinedexperienceanddeepinsight,youwilllearn Thegeneralphilosophyandfundamentalprinciplesofframeworkdesign Namingguidelinesforthevariouspartsofaframework Guidelinesforthedesignandextendingoftypesandmembersoftypes Issuesaffecting–andguidelinesforensuring–extensibility How(andhownot)todesignexceptions Guidelinesfor–andexamplesof–commonframeworkdesignpatterns Guidelinesinthisbookarepresentedinfourmajorforms:Do,Consider,Avoid,andDonot.Thesedirectiveshelpfocusattentiononpracticesthatshouldalwaysbeused,thosethatshouldgenerallybeused,thosethatshouldrarelybeused,andthosethatshouldneverbeused.Everyguidelineincludesadiscussionofitsapplicability,andmostincludeacodeexampletohelpilluminatethedialogue. FrameworkDesignGuidelines,SecondEdition,istheonlydefinitivesourceofbestpracticesformanagedcodeAPIdevelopment,directfromthearchitectsthemselves. AcompanionDVDincludestheDesigning.NETClassLibrariesvideoseries,instructionalpresentationsbytheauthorsondesignguidelinesfordevelopingclassesandcomponentsthatextendthe.NETFramework.AsampleAPIspecificationandotherusefulresourcesandtoolsarealsoincluded. #27C++編程規範:101個準則、指導方針,和最佳實踐 原文書名:C++CodingStandards:101Rules,Guidelines,andBestPractices 作者:HerbSutter,AndreiAlexandrescu 天瓏連結 堅實而高品質的編程規範(codingstandards)可以改善軟體品質,提早產品上市,助長團隊合作,把時間用在重要且合理的事情上,並且簡化維護。

當今全球最受矚目的兩位C++專家從全世界無數C++社群的豐富經驗中提煉出一整組編程規範,讓每一位開發人員和團隊都能夠了解並用來做為他們自己的編程規範的基礎。

兩位作者涵蓋了C++編程的幾乎每一個面向:設計和撰碼風格(designandcodingstyle)、函式(functions)、運算子(operators)、class設計、繼承(inheritance)、建構/解構(construction/destruction)、拷貝(coping)、賦值(assignment)、命名空間(namespaces)、模塊(modules)、模板(templates)、泛型(genericity)、異常(exceptions)、STL容器和演算法(containersandalgorithms),以及更多內容,並搭配實際範例。

從型別定義(typedefinition)到錯誤處理(errorhandling),本書呈現C++的最佳實踐,包括某些縱使你使用C++多年也不一定知曉,最近才獲確認及標準化的技術。

循此方向,你將發現諸如此類的問題解答: 什麼東西值得被標準化?什麼不值得? 什麼是寫出伸縮性程式碼(codeforscalability)的最佳手段? 什麼是合理的錯誤處理策略(errorhandlingpolicy)的要素? 如何(以及為什麼)避免非必要的初始化和循環相依(cyclicdependencies)? 何時(以及如何)應該同時使用靜態和動態多型(staticanddynamicpolymorphism)? 如何實踐安全的覆寫(“safe”overriding)? 何時應該提供一個no-failswap? 為什麼應該(以及如何)阻止異常跨模塊邊界(acrossmoduleboundaries)傳播? 為什麼不該在表頭檔內寫namespace的宣告式或指令(declarationsordirectives)? 為什麼應該使用STL的vector和string來取代arrays? 如何選擇正確的STLsearch或sort演算法? 應該遵循什麼規則來保證type-safe程式碼? 不論個人或團隊,本書助你寫出更乾淨的程式碼—而且更快寫出,帶著更少的困難和挫敗。

#28UNIX網絡編程 (僅有簡體版) 原文書名:UnixNetworkProgramming,Vol.1:TheSocketsNetworkingAPI 作者:W.RichardStevens,BillFenner,AndrewM.Rudoff 天瓏連結(簡體版) 史蒂文斯、芬納、魯道夫編著的《UNIX網絡編程(捲1套接字聯網API第3版)》是一部UNIX網絡編程的經典之作!書中全面深入地介紹瞭如何使用套接字API進行網絡編程。

全書不但介紹了基本編程內容,還涵蓋了與套接字編程相關的高級主題,對於客戶∕服務器程序的各種設計方法也作了完整的探討,最後還深入分析了流這種設備驅動機制。

本書內容詳盡且具權威性,幾乎每章都提供精選的習題,並提供了部分習題的答案,是網絡研究和開發人員理想的參考書。

#29PurelyFunctionalDataStructures (無中文版) 作者:Okasaki 天瓏連結(原文書) MostbooksondatastructuresassumeanimperativelanguagesuchasCorC++.However,datastructuresfortheselanguagesdonotalwaystranslatewelltofunctionallanguagessuchasStandardML,Haskell,orScheme.Thisbookdescribesdatastructuresfromthepointofviewoffunctionallanguages,withexamples,andpresentsdesigntechniquesthatallowprogrammerstodeveloptheirownfunctionaldatastructures.Theauthorincludesbothclassicaldatastructures,suchasred-blacktreesandbinomialqueues,andahostofnewdatastructuresdevelopedexclusivelyforfunctionallanguages.AllsourcecodeisgiveninStandardMLandHaskell,andmostoftheprogramsareeasilyadaptabletootherfunctionallanguages.Thishandyreferenceforprofessionalprogrammersworkingwithfunctionallanguagescanalsobeusedasatutorialorforself-study. #30單元測試的藝術 原文書名:TheArtofUnitTesting:withexamplesinC# 作者:RoyOsherove 天瓏連結 理解如何撰寫單元測試,以及讓它們變得可維護、可讀、可被信任,是這本書的主要內容,不管你使用的是何種程式語言跟編輯器。

這本書涵蓋了撰寫單元測試的基本知識,並且講解互動測試的基礎,介紹了在真實世界撰寫、管理和維護單元測試的最佳實踐。

」 參考資料:Topmentionedbooksonstackoverflow.com↩︎ 本著作由小克製作,以創用CC姓名標示-相同方式分享4.0國際授權條款釋出。

書 書單 stackoverflow 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 這個網誌中的熱門文章 小克的VisualStudioCode必裝擴充套件(Extensions)私藏推薦 6/03/2019 繼續閱讀 [筆記]Wi-Fi一直卡在「正在取得IP位址」解決辦法 2/26/2015 繼續閱讀 小克 瀏覽簡介 熱門文章 小克的VisualStudioCode必裝擴充套件(Extensions)私藏推薦 6/03/2019 繼續閱讀 [筆記]Wi-Fi一直卡在「正在取得IP位址」解決辦法 2/26/2015 繼續閱讀 文章列表 五月1 四月1 七月1 六月1 三月3 二月1 一月1 十月1 九月2 八月2 七月1 二月3 一月1 十二月2 十一月2 十月1 八月1 六月1 四月1 三月1 二月1 九月1 三月1 二月2 十月2 八月1 五月2 二月2 一月1 四月1 八月1 顯示更多 顯示較少 標籤 Laravel Linux Ubuntu OSX Mac MacOS Windows Windows10 Mint UbuntuGNOME Yosemite clone faker git vscode zsh 0xC03F7000 10.10 10.11 Add-on Addon BDD Beta Bitdefender BlockInternetConnectionSharing BootCamp CULV Chameleon Chimera Clover DHCP DPI ElCapitan Error ExtFS Firefox Firewall Fn GCIN GDK GDT GNOME GTK GoogleChrome HFS+ HIME Hackintosh HiDPI IP ISO8601 Javascript MBR MacBook MacBookProRetina Multi-boot NTFS NVIDIA OSx86 Office2016Preview OpenSource Optimus PATH PHPUnit POWERLEVEL9K_MODE Paragon ParallelsDesktop PhpStorm Player Proxy Python Retina RetinaDisplay SDK Sourcetree Squid Store TDD TakeOwnership Takingownershipofthisvirtualmachinefailed TencentQQ Thisvirtualmachineappearstobeinuse UL30Vt UnitTest VMware Wi-Fi WithFaker Workstation aptupdate apt-getupdate cfx cookie datetime debian docker dockerfile eCAP env extensions fastcgi_read_timeout github high-DPI home iBus installapps jessie jpm key lck libecap libecap2 libecap2-dev max_execution_time mt_rand nerdfont nginx numberBetween numberNumber numerify oh-my-zsh pd php php-fpm powerlevel9k random_int request_terminate_timeout serve server session shortcuts stackoverflow str_repeat testing tilde timedelta timezone trait valet visualstudiocode 並確認您擁有讀寫設定檔內容的權限 中文輸入 亮度 單元測試 快速鍵 新注音 新酷音 書 書單 正在取得IP位址 注音 測試 無法正確開啟您的設定檔 網路 詞音 請檢查該設定檔是否存在 輸入法 連不上 部分功能可能無法使用 酷音 防火牆 限免 限時免費 雙系統 顯示卡 黑蘋果 顯示更多 顯示較少 贊助 About 除另有註明,網站之內容皆由小克製作,以創用CC姓名標示-相同方式分享4.0國際授權條款釋出。



請為這篇文章評分?