短暂的假期里抽空整理了一份书单,以个人的见解这些应该是值得.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
人件,在软件管理领域,很少有著作能够与本书媲美。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人的因素并不容易解决,一旦解决了,你将更有可能获得成功。本书是软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的最大问题——人(而不是技术),以得到高效的项目和团队。