浅谈如何阅读别人的源码

        近日部门同事离职,由我接手其两个项目的代码。这对我来说是个学习的机会,又是个挑战。我司是个小公司,每个猿都是以一当十的“全栈”猿,结对编程的项目较少。因此彼此间的业务不太关注,这对我来说也是个痛苦的过程。拿到别人的一份源码,你会发现,通篇的字母都认识,就是不知道作者在干啥,尽管大体都是MVC的路子但依然没头绪。

        于是痛定思通,总结出一套阅读源码顺序的实践:

0、有文档则首先阅读业务文档,无论是设计文档还是开发的接口文档,要先熟悉业务需求;

1、浏览依赖库,了解所用的技术栈和第三方API,如果有陌生库,可以先记下来待后面结合业务边查资料边去理解其如何应用;

2、先从阅读代码中的领域模型入手,只有了解静态域对象和属性才知道系统是什么;

3、浏览门面层,门面层是对外暴露服务的抽象接口,它是该系统的功能承诺,无论client是CLI还是GUI抑或RPC应用等,均由此进入,这里是事件驱动的入口,也是作者整体设计思路的体现,经由上两步脑海中应该有大致的用例图;

4、深入业务层实现,这里是作者如何操纵使用对象模型和属性,是实现思路的体现;是继上一步自顶向下开始深入理解作者设计思路,业务对象间的通讯都集中在此,这是最难最琐碎的阶段,经由该过程,脑海中对于核心业务处理应该能绘制出时序图;

5、浏览外围辅助设施,如通用工具包、拦截器、初始化类、配置类等;

6、如果该项目有操作界面,跑起项目来亲自操作加深对业务的理解。

以上是大抵的阅读思路,并非绝对顺序供参考。

你可能感兴趣的:(第三方api,其他)