短暫的假期裡抽空整理了一份書單,以個人的見解這些應該是值得.NET工程師至少去看一遍的書籍。但所羅列的僅包括國內目前已出版的國外書籍的英文版,並不包含中文翻譯及相關領域的中文書籍。這裡沒有任何歧視之意,只是更推薦工程師具備熟練閱讀英文文獻的能力,尤其是.NET方向的工程師——考慮到國內的.NET生態圈,所以需要更廣大的視野。
C#
- Essential C# 7.0
C# 7.0本質論,作為歷年來深受各層次開發人員歡迎的C#權威指南,本書討論了從C# 3.0到7.0的最重要特性,包含了現代程式設計模式,可以幫助讀者編寫簡潔、強大、健壯、安全和易於維護的C#程式碼。
- Effective C#: 50 Specific Ways to Improve Your C#
Effective C#:編寫高質量C#程式碼的50條有效方法——第3版,本書圍繞一些關於C#和.NET的重要主題,包括C#語言元素、.NET資源管理、使用C#表達設計、建立二進位制元件和使用框架等,講述了最常見的50個問題的解決方案,為程式設計師提供了改善C#和.NET程式的方法。
SQL
- Effective SQL: 61 Specific Ways to Write Better SQL
Effective SQL:編寫高質量SQL語句的61條有效方法,本書通過對案例問題的分析與解決方案的實現,向讀者展示瞭如何通過SQL編寫解決複雜問題,以及如何通過資料庫設計簡化資料管理。這是一本將SQL高階功能實踐與SQL實際應用示例完美結合的、面向所有版本SQL方言(其中包括IBM DB2、Access、SQL Server、MySQL、Oracle、PostgreSQL)的程式設計指南。此外,SQL語法只是本書的一小部分內容,從資料庫設計與優化,到分層資料與後設資料管理,本書都有所涉及。
- NoSQL Distilled
NoSQL精粹,本書由世界級軟體開發大師和軟體開發“教父”Martin Fowler與Jolt生產效率大獎圖書作者Pramod J. Sadalage共同撰寫。全方位比較了關係型資料庫與NoSQL資料庫的異同;分別以Riak、MongoDB、Cassandra和Neo4J為代表,詳細講解了鍵值資料庫、文件資料庫、列族資料庫和圖資料庫這4大類NoSQL資料庫的優劣勢、用法和適用場合;深入探討了實現NoSQL資料庫系統的各種細節,以及與關係型資料庫的混用。
Algorithm
- Algorithm Design
演算法設計,這是一本關於演算法設計和分析的經典教材。本書圍繞演算法設計進行組織,對每種演算法技術選擇了多個典型範例進行分析,把演算法的理論跟實際存在的問題結合起來,具有很大的啟發性。本書側重演算法設計思路,每章都從實際問題出發,經過深入具體的分析引出相應演算法的設計思想,並對演算法的正確性和複雜性進行合理的分析和論證。
Design
- Head First Design Patterns
深入淺出設計模式,本書的編寫運用許多最新的研究,包括神經生物學、認知科學以及學習理論,這使得其能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。你將會更擅長於解決軟體設計中的問題,並能夠和你的團隊成員用模式的語言來更好地溝通。
- Implementing Domain-Driven Design
實現領域驅動設計,本書分別從戰略和戰術層面詳盡地討論瞭如何實現DDD,其中包含了大量的優秀實踐、設計準則和對一些問題的折中性討論。
- Clean Architecture:A Craftsman's Guide to Software Structure and Design
Clean Architecture:軟體架構與設計匠藝,通過合理運用軟體架構的通用法則,可以顯著提升開發者在所有軟體系統全生命週期內的生產力。
- Designing Data-Intensive Applications
設計資料密集型應用,書中包含以下內容:深入分析你已經在使用的系統,並學習如何更高效地使用和運維這些系統;通過識別不同工具的優缺點,作出更明智的決策;瞭解一致性、可伸縮性、容錯性和複雜度之間的權衡;理解分散式系統研究,這些研究是現代資料庫構建的基石;走到一些主流線上服務的幕後,學習它們的架構。
- Refactoring: Improving the Design of Existing Code
重構:改善既有程式碼的設計,軟體開發的不朽經典;生動闡述重構原理和具體做法;普通程式設計師進階到程式設計高手必須修煉的祕笈。
DevOps
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
持續交付:釋出可靠軟體的系統方法,本書講述如何實現更快、更可靠、低成本的自動化軟體交付,描述瞭如何通過增加反饋,並改進開發人員、測試人員、運維人員和專案經理之間的協作來達到這個目標。
Management
- Git for Teams
用於團隊協作的Git,本書是一本軟體團隊協作指南,採用以人為本的方式講解版本控制,強調如何利用Git促進團隊協作。
- The Mythical Man-Month: Essays on Software Engineering
人月神話,本書內容源於作者Brooks在IBM公司任System/360計算機系列以及其龐大的軟體系統OS/360專案經理時的實踐經驗。在本書中,Brooks為人們管理複雜專案提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟體工程的實踐,為每個複雜專案的管理者給出了自己的真知灼見。
- Peopleware
人件,在軟體管理領域,很少有著作能夠與本書媲美。作為經久不衰的暢銷書,本書深刻地洞察到軟體開發的最大問題不在於技術,而在於人。人的因素並不容易解決,一旦解決了,你將更有可能獲得成功。本書是軟體管理領域的傳奇經典,被譽為“對美國軟體業影響最大的一本書”。全書從管理人力資源、建立健康的辦公環境、僱用並留用正確的人、高效團隊形成、改造企業文化和快樂工作等多個角度闡釋瞭如何思考和管理軟體開發的最大問題——人(而不是技術),以得到高效的專案和團隊。