<audio id="audio" title="结束语 | 学会从优秀项目的源代码中挖掘知识" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/bb/63/bb3b84ba1c27b3f7646ad49a98858d63.mp3"></audio>

你好，我是何小锋。

今天是咱们专栏的最后一课。首先，我的读者，非常感谢你对这个专栏的支持。当你看到这儿，恭喜你“毕业”了，我也“毕业”了！从专栏筹备到结课，转眼已经过去了半年的时间。这段经历令我很难忘，可以说是痛苦与快乐并存吧，今天结课我还真想和你说道说道。

我其实不太善言辞，挺典型的一类技术人，做这件事的出发点还是对技术的热爱，我希望能把自己这些年的经验去沉淀一下，分享出去供更多的人参考，与更多的人探讨和交流，很开心我做到了，有一种成就感和满足感在。但写作的过程确实还挺难的，有点出乎我的意料，讲课和写技术文档的差别不小，我觉得这其中最大的区别就是讲课我需要去设计内容，怎么让内容“既浅又深”，让不同阶段的人都能“看得懂、学得会、用得着”，就是我的标准。

**我们应该学会分享与交流，这是我在写作过程中最大的一个感触。**

在写的过程中，我会不停地调动自己积累的知识和经验，每一节课，每一个问题，都需要我在脑子里一遍遍梳理好才能成文，对我自己的知识体系是一次很好的加固和升级的机会。当然，我也会碰到新的疑惑和问题，甚至是自我否定，但这不重要，重要的是我解决了它，我的知识面得到了拓展。还有就是，我会感觉到一种快乐，别人会因为我的分享而有收获，这是一种肯定。

当然，分享和兴趣虽是初衷，但我打的也是“有准备之仗”。在写这个专栏之前，我曾对我所运营的RPC框架进行了重定义，整体架构完全重新设计，代码也完全重写，这里面的主要原因还是在于旧版本的RPC框架由于一次次的代码迭代，已经有了太多的补丁，代码维护起来已经十分困难了，它很难再满足业务新增的需求。

在设计与编写RPC框架的过程中，我从业界的RPC框架中吸取经验，我先对自己的认知做了一次全面的升级。正如我在[[开篇词]](https://time.geekbang.org/column/article/199649) 里说的，RPC是解决分布式系统通信问题的一大利器，在我所接触的分布式系统中，基本都离不开RPC。这一点令我自己都是兴奋的。

决定了重定义RPC框架，我就坚持对每一行代码，甚至是每一行注释进行review，对代码的扩展性、可阅读性以及性能都尽量做到完美。但是在写专栏的时候，我并没有写到太多的代码，因为在我看来，在设计整体框架、实现每个功能、解决某一个难题时，我们首先要有一个或多个完整的并且可行的思路和想法，而编码的过程不过是将解决问题的思路和想法以代码的形式翻译出来。当然编码也需要很扎实的基本功，这一点我们不能否认。

那讲到这儿，我还是想再强调一下咱们专栏的重点，以免你迷路。我把重点放在了RPC框架的一些基础功能与高级功能的实现思路上，以及某一类问题的解决办法上。

从内容结构上来说，为了能让你更好地学习RPC框架，整个专栏的内容设计还是比较系统的，我们从RPC框架的基础功能，讲到集群、治理等相关的高级功能，再到RPC框架的性能优化以及问题排查等等，整个学习过程由浅入深。

希望看到最后一课的你，已经完全理解了我的用意和用心！

那最后，我还想给你一个小建议，那就是**你一定要学会从优秀项目的源代码中挖掘知识，结合自己的见解与经验，去解决一个又一个的难题，形成自己的知识体系**，而我前面所说的分享就是检验成果的一个好办法。

最后的最后，还是要感谢你，我的读者，多谢你的支持，你的鼓励和批评是我前进的最大动力。如果你有什么意见或建议，欢迎你通过结课问卷告知我，我会正视大家的声音。

我是何小锋，我们后会有期！

[<img src="https://static001.geekbang.org/resource/image/a5/yy/a59c95f9ee9e238119265531d12058yy.jpg" alt="">](https://jinshuju.net/f/u49Ljk)
