我开始抄代码来学编程
之前研究 Hadoop 源码,把 hadoop-common 模块下的 RPC 模块源码通读一遍,又花了 3 个月抄了一遍 Hadoop RPC 代码,学到很多东西。我觉得学习编程最有效的方式就是抄代码,我觉得这个过程对正在学编程的朋友很有帮助,所以想做成教程,以下是周末写的一个开头,后续教程的形式以及进展会发布在公众号,有兴趣的朋友欢迎文末关注 。 1. 起源 故事得从19年上半年说起,那时候我正打算研究一下Hadoop源码。 现在大家都听说过Hadoop,它是一个分布式存储和计算的框架。作为分布式系统,节点之间的通信、交互式必不可少的。Hadoop自己实现了RPC(Remote Procedure Call,远程过程调用)模块来满足这样的需求。带着好奇,我便阅读了整个Hadoop RPC模块的源代码,读完后发现这个模块设计的非常好,与其他模块无耦合,完全可以独立出来当成一个独立的框架。为了能够学习相关的编程知识,同时还可以看到Apache 顶级开源项目的代码如何编写的,因此我便把Hadoop RPC模块做成教程。 虽然这个项目是实现RPC功能,但我觉得我们重点不应该过多关注RPC本身,而应该重点学习RPC所涉及的客户端开发、服务端开发、网络编程、多线程、并发编程、设计模式等核心知识,尤其是对于刚学习Java没有接触线上实战项目的朋友,掌握好了这些知识,写其他项目也会更有思路。