下面推荐都是我看过并且我觉得值得推荐的书籍。

不过，这些书籍都比较偏理论，只能帮助你建立一个写优秀代码的意识标准。 如果你想要编写更高质量的代码、更高质量的软件，还是应该多去看优秀的源码，多去学习优秀的代码实践。

### 《重构》

![img](file:///Users/guide/Documents/GitHub/JavaGuide/docs/books/images/7ab7af22-d9ff-4fa8-9ffb-f5ba73e8b128.png?lastModify=1615696092)

**必看书籍！无需多言。编程书籍领域的瑰宝。** 

世界顶级、国宝级别的 Martin Fowler 的书籍，可以说是软件开发领域最经典的基本书之一。目前已经出了第二版。

这是一本值得你看很多遍的书籍。

### 《Clean Code》

![img](file:///Users/guide/Documents/GitHub/JavaGuide/docs/books/images/5d94f552-5815-4b9e-aed4-623b88273355.png?lastModify=1615696092)

[《Clean Code》](https://book.douban.com/subject/4199741/)是 Bob 大叔的一本经典著作，强烈建议小伙伴们一定要看看。

Bob 大叔将自己对整洁代码的理解浓缩在了这本书中，真可谓是对后生的一大馈赠。 

### 《 The Clean Coder》

![](https://img-blog.csdnimg.cn/20210314191210273.png)

[《 The Clean Coder》](https://book.douban.com/subject/26919457/)是 Bob 大叔的又一经典著作。

《Clean Code》和《 The Clean Coder》这两本书在国内都翻译为 《代码整洁之道》，我觉得这个翻译还是不够优雅的。

另外，两者的内容差异也很大。《Clean Code》这本书从代码层面来讲解如何提高自己的代码质量。而《 The Clean Coder》这本书则是从如何成为一名更优秀的开发者的角度来写的，比如这书会教你如何在自己的领域更专业、如何说不、如何做时间管理、如何处理压力等等。

### 《代码大全》

![](https://img-blog.csdnimg.cn/20210314173253221.png)

其实，[《代码大全（第2版）》](https://book.douban.com/subject/1477390/)这本书我本身是不太想推荐给大家了。但是，看在它的豆瓣评分这么高的份上，还是拿出来说说吧！

这也是一本非常经典的书籍，第二版对第一版进行了重写。

我简单地浏览过全书的内容，感觉内容总体比较虚，对于大部分程序员的作用其实不大。如果你想要切实地提高自己的代码质量，《代码整洁之道》和 《代码整洁之道》我觉得都要比《代码大全》这本书更好。

不过，最重要的还是要多看优秀的源码，多学习优秀的代码实践。

### 《编写可读代码的艺术》

![](https://img-blog.csdnimg.cn/20210314175536443.png)

[《编写可读代码的艺术》](https://book.douban.com/subject/10797189/) 这本书要表达的意思和《代码整洁之道》很像，你看它俩的目录就可以看出来了。

![](https://img-blog.csdnimg.cn/20210314174853141.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzM3Mjcy,size_16,color_FFFFFF,t_70)

在我看来，如果你看过 《代码整洁之道》 的话，就不需要再看这本书了。当然，如果你有时间和精力，也可以快速过一遍。

另外，我这里还要推荐一个叫做 **[write-readable-code](https://github.com/biezhi/write-readable-code)** 的仓库。这个仓库的作者免费分享了一系列基于《编写可读代码的艺术》这本书的视频。这一系列视频会基于 Java 语言来教你如何优化咱们的代码。

在实践中学习的效果肯定会更好！推荐小伙伴们都抓紧学起来啊！

![](https://img-blog.csdnimg.cn/20210314180405396.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzM3Mjcy,size_16,color_FFFFFF,t_70)

### 《架构整洁之道》

![](https://img-blog.csdnimg.cn/2021031412342771.png)

你没看错，[《架构整洁之道》](https://book.douban.com/subject/30333919/) 这本书又是 Bob大叔的经典之作。

这本书我强烈安利！认真读完之后，我保证你对编程本质、编程语言的本质、软件设计、架构设计可以有进一步的认识。

国内的很多书籍和专栏都借鉴了《架构整洁之道》 这本书。毫不夸张地说，《架构整洁之道》就是架构领域最经典的书籍之一。

正如作者说的那样：

> 如果深入研究计算机编程的本质，我们就会发现这50年来，计算机编程基本没有什么大的变化。编程语言稍微进步了一点，工具的质量大大提升了，但是计算机程序的基本构造没有什么变化。
>
> 虽然我们有了新的编程语言、新的编程框架、新的编程范式，但是软件架构的规则仍然和1946年阿兰·图灵写下第一行机器代码的时候一样。
>
> 这本书就是为了把这些永恒不变的软件架构规则展现出来。

### 《Effective java 》

![Effective Java中文版（第3版）](file:///Users/guide/Documents/GitHub/JavaGuide/docs/books/images/s32282160.png?lastModify=1615696092)

**Java程序员必看！**

又是一本 Java 领域国宝级别的书，非常经典。这本书主要介绍了在 Java 编程中很多极具实用价值的经验规则，这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。这篇文章能够非常实际地帮助你写出更加清晰、健壮和高效的代码。本书中的每条规则都以简短、独立的小文章形式出现，并通过例子代码加以进一步说明。

### 《人月神话》

![img](file:///Users/guide/Documents/GitHub/JavaGuide/docs/books/images/8ece325c-4491-4ffd-9d3d-77e95159ec40.png?lastModify=1615696092)

这本书主要描述了软件开发的基本定律：**一个需要10天才能干完的活，不可能让10个人在1天干完！**

看书名的第一眼，感觉不像是技术类的书籍。但是，就是这样一个看似和编程不沾边的书名，却成了编程领域长久相传的经典。

**这本书对于现代软件尤其是复杂软件的开发的规范化有深刻的意义。**

### 《领域驱动设计:软件核心复杂性应对之道》

![img](file:///Users/guide/Documents/GitHub/JavaGuide/docs/books/images/7e80418d-20b1-4066-b9af-cfe434b1bf1a.png?lastModify=1615696092)

这本领域驱动设计方面的经典之作一直被各种推荐，但是我还来及读。

### 其他

- 《深入浅出设计模式》 
- [《代码的未来》](https://book.douban.com/subject/24536403/) ：作者是Ruby之父松本行弘。
- 《系统架构》
- 《软件架构设计:大型网站技术架构与业务架构融合之道》 ：
- 《微服务架构设计模式》 ：这本书是世界十大软件架构师之一、微服务架构先驱Chris Richardson亲笔撰写，豆瓣评分9.6。示例代码使用Java语言和Spring框架。帮助你设计、实现、测试和部署基于微服务的应用程序。

最后再推荐两个相关的文档：

- **阿里巴巴 Java 开发手册** ：https://github.com/alibaba/p3c
- **Google Java 编程风格指南：** http://www.hawstein.com/posts/google-java-style.html

