概述
每天阅读一篇英语的编程文章
每天看一条英文的 C++ Core Guideline
每天看 5 页 C++ 之父的 The C++ Programming Language (或其他的英文编程书籍)
每天在 Stack Overflow 上看 3 问题
通常来说,阅读大型项目的源码无外乎两种方法。
自上而下(Top-Down):从最顶层或最外层的代码一步步深入。通俗地说,就是从 main 函数开始阅读,逐渐向下层层深入,直到抵达最底层代码。这个方法的好处在于,你遍历的是完整的顶层功能路径,这对于你了解各个功能的整体流程极有帮助。
自下而上(Bottom-Up):跟自上而下相反,是指先独立地阅读和搞懂每个组件的代码和实现机制,然后不断向上延展,并最终把它们组装起来。该方法不是沿着功能的维度向上溯源的,相反地,它更有助于你掌握底层的基础组件代码。
这两种方法各有千秋,不过,在学习 Kafka 源码的过程中,我发现,将两者结合的方法其实是最高效的,即先弄明白最细小单位组件的用途,然后再把它们拼接组合起来,掌握组件组合之后的功能。
具体怎么做呢?首先,你要确认最小单位的组件。我主要是看 Kafka 源码中的包结构(package structure),比如 controller、log、server 等,这些包基本上就是按照组件来划分的。我给这些组件确定的优先级顺序是“log–>network–>controller–>server–>coordinator–>……”,毕竟,后面的组件会频繁地调用前面的组件。
等你清楚地了解了单个组件的源码结构,就可以试着切换成自上而下的方法,即从一个大的功能点入手,再逐步深入到各个底层组件的源码。得益于前面的积累,你会对下沉过程中碰到的各层基础代码非常熟悉,这会带给你很大的成就感。比起单纯使用自上而下或自下而上的方法,这套混合方法兼具了两者的优点。
关于如何选择大的功能点,我建议你从 Kafka 的命令行工具开始这种串联学习,搞明白这个工具的每一步都是怎么实现的,并且在向下钻取的过程中不断复习单个组件的原理,同时把这些组件结合在一起。
你很快会发现,克服心理障碍之后,学习英语比起编程来是不费吹灰之力的事,不需要动什么脑筋。把自己沉浸到一个英文环境里,英语能力的提高是件自然而然的事。听说读写,其他方面缺乏训练还情有可原,读是应该最容易被解决的。为了能和世界各地的其他优秀程序员网上交流,写也需要多加练习——不要怕有错误,用简单的词把意思表达清楚,就是很好的第一步。多读多写,基本的网上阅读和交流就不会是一个难题了。
最后
以上就是鳗鱼月饼为你收集整理的学习感悟-710的全部内容,希望文章能够帮你解决学习感悟-710所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复