打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
大型项目工程代码快速上手指北
最近入职新公司,在学习产品业务文档的时候,发现团队内部没有业务文档沉淀;虽说师兄能培训一些业务知识,但这些都是“面”层面的内容,掌握核心业务,必须了解核心业务知识以及易踩坑点。没有业务文档怎么办呢?那就必须扒项目代码中业务的实现逻辑了。当然程序员在工作过程中,会遇到很多需要阅读代码的场景,比如学习技术框架源码、review他人的代码、维护老产品等等。毫无疑问,阅读代码是程序员的基本功,这项基本功是否扎实,会在很大程度上影响一个程序员在技术上的成长速度。

啃了将近两周的项目代码,本人也总结出来一些快速吃透项目代码的套路,下面就给大家分享一下我的经验。

目的

凡事预则立,不预则废;带着目的性做事情更容易成功,读代码也是一样。当我们需要阅读代码时候,一定要明确自己的目的,无非有以下两种目的:

  • 学习框架源码
  • 产品代码维护

计划

明确目的后,必须给自己制定完成这件事情的过程中各个节点应达到的目标。主要是为了check你的学习质量。比如:学习Kafka项目源码,你的目的是为了在新的项目中更加游刃有余使用Kafka解决业务问题;那么针对你投入的学习时间,可以制定三个阶段的学习计划以及要达成目标;各个目标建议给自己制定一个需要实践的任务,这样通过项目检验自己的学习质量。

 

上下文

什么是上下文呢?举个例子:高考,我们参加高考基本上务必需要掌握小学、初中、高中各个年级的基础知识,这样我们在考场做题时候就可以将这些知识应用于解题,那么这些基础知识就是上下文。回到我们源码学习场景中,上下文可以分为 通用技术、业务基础。

  • 业务基础:每一份有实际意义的源码都离不开业务,必须先对业务有基本的概念。
  • 通用技术:每个复杂的项目肯定是运用了各种保证业务实现的技术框架。就Java语言实现的项目而言,Spring框架、分布式框架、消息队列框架、分表分库框架等这些基本都会涉及到。学习项目代码前,如果不懂这些框架,那么看代码的过程就像看天书一样。
  • 其他资源:能帮你解决看代码过程中遇到问题的工具都可以称之为资源。

工具

工欲善其事必先利其器。利用工具可以让我们事半功倍,我在学习过程中用到的工具如下:

  • PlantUML,这是一款IDEA 插件,即安装即用,非常方便。可以让你随时绘制各种图(类图、时序图、流程图等),而且语法也相当简单。传送门
  • 飞书云空间、石墨文档、幕布等,记录阅读源码过程中的关键点、心得体会、分析过程
  • Visual Paradigm,用于绘制简单的框图,表述源码的模块划分、层次结构等.
  • xmind 8, 画思维导图,可以将学习的内容铺成一个面。

笔记

在阅读源码的过程中,做笔记是必须的。因为代码不是自己写的,很难很快在脑子里刻下印记,经常是看着这里忘了那里,早上觉得弄懂了数据流向,但是中午吃个饭,下午开始干活的时候又忘了原先的链路。所以,多记笔记就显得尤为重要。

  • 建议用软件(飞书云空间、石墨文档)记录,这样可以将文档整理成册,将来也可以给团队增加文档产出。
  • 关键action尽可能详细记录,但不必看到什么记录什么。比如弄明白了某个子模块的逻辑、某个类的作用、某些函数的调用关系时再记录,否则记录这个动作本身会打断思考。
  • 每天工作结束,记录学习进度,记录疑问(以及明天找谁进行咨询),明日计划等。

 

总结

下面的一些经验供大家参考:

  • 将业务模型和数据模型建立映射关系。
  • 理清模块间的依赖关系。
  • 找出关键action代码,并画出时序图、流程图。
  • 如果能运行代码,强烈建议调试代码,核心方法打断点,这样可以更清楚调用链路。
  • 读不懂才要读,想不明白才要想,这是进步和成长的开始。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何阅读百万行的“s山”代码
如何正确的阅读源代码?
基于DDD的现代ASP.NET开发框架
从0开始:如何看懂源码
这样读源码,不牛X也难
做前端,看完这篇文章你也可以做到
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服