源码解读
前言
看代码其实是一件很考验个人整体组合能力的一件事情,像上学时一样都是从小的公式开始一点一点再去看复杂的东西。不仅如此对于代码来说,function 的定义也是代表了本身的一个能力,那一个个小的 function 可以定位一个小的点,组合起来成为类成为线,然后将线连接起来变成一个个的面(也就是一个个项目的小组件),最后将面组装成体(也就是项目)。
预备
那现在项目的组成和点都已经齐了就只差切入点了,怎么找呢。emmmmmmmm… 这个嘛说句实话只能凭自己的平时积累。如果是纯中间件项目大家都从 main 开始基本上都是没有错的, 但是像非中间件的项目我们大家就只能找官方给的 guide 了。不过本人见过最厉害的大佬都是基于项目功能来反推项目设计的本人也是望尘莫及。
建议
对于中间件项目来说,总结下来可以分为四大块。网络,存储,功能逻辑。可能大家觉得你这说的太宽泛了没法具体到什么事情上,但是对于一个项目来说这恰恰是大家应该去多想的东西。
网络
网络可以涉及到一个项目的方方面面,比如对外提供的长连接,短连接,项目对外、对内的交互,
存储
存储一般呢可以理解成一个小房子,有东西要存放并且还要排好整理好,如果一开始都不整理好的话,后期再次整理可能就是一件很麻烦的事情。这里就需要有对自己项目的把控和前瞻性。 最基本的比如对业务的体量估计,对自己选择的数据库要有一定的估量和最坏打算。对可能扩展的预防单一化+冗余等等。
功能逻辑
功能逻辑呢最基本的就是我们要让看代码的人看得懂。
- 你可以行行注释也可以模块readme 都是一个很好的方式。
- 或者追随代码作者的思路去一点点的看,但是这种方式可能会让你看不到作者的细节点。
- 原因很简单,就是你没办法站在一个解决问题人的视角上去完成问题。
- 这种可能是对要求比较高的人来说了就是直接看项目的功能来反推代码是如何实现的。从代码中找到答案,对比和自己的想法是否一致。可以更好的提升自己的代码能力。这里为什么说是会提升自己的代码能力呢。
- 简单来说第三种方式就是你自己在写代码,通过源码的实现来丰富自己的具体写的方式。
总结
最后,以上就是我工作这么多年学习源码的想法。从一个非科班出身到现在算是有点能力,多学多实践才是真正能提升我们的方式。