尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

源码阅读技巧

源码阅读技巧 为什么要读源码第一个好处积累素材读优秀的源代码对提高自己的编程水平帮助更大。可从别人写的优秀的源代码汲取营养学习到更多的编程方法和技巧。第二个好处开拓思路可以提高自己把握大规模源代码的能力。源代码往往是经过了长时间、多版本进行迭代是不断开发优化修正错误添加功能而发展起来的。是前人智慧的结晶。阅读大量源代码后能提高自己对软件的设计的把握能力快速了解脉络熟悉细节。第三个好处总结升华获得一些优秀的代码编程思想。既可以提升编程技巧也可以提高编程的架构能力。打开自己的设计思维提升自己的设计能力。读取源码的技巧1. 先看官方文档和架构图优秀的开源组件官方都会维护文档和架构图这份架构图上或许有一些最重要的组件之间的关联关系、或许哪些功能的调用流程、或许有一些别的东西但是相信我这些东西一定都是从总体来描述这个项目的这个一定是你要阅读源码时第一个要看的2. 再看项目的组织结构下载下来代码之后不要急着开始。先看一下各个包名和包里的类名对照着文档和类名先简单猜一下各个类的大致作用3. 找到启动demo把项目跑起来阅读源码不仅仅是阅读要让项目跑起来去调试它去观察和改变它的运行路线4. 找到阅读的起点很多人都想阅读源码但是面对庞大的代码库不知道如何下手。这个时候你就要明确你的目标。可以从启动方法开始、也可以从具体的哪个功能开始。总之要找到你的起点5. 理清主干一个优秀的开源软件总是经过了很多工程师很多年的努力孵化出来的你去阅读它的时候很难把整个软件全部都整明白。所以一定要认准自己的目标朝着自己的目标去读当过程中出现一些不太重要的分枝时可以适当的忽略来节约时间6. 把你的结论记下来好记性不如烂笔头我们从小就知道的一句话。包括且不限于笔记、流程图、截图等任何你擅长的工具把它记下来。另外最好总结一下重点部分方便面试的时候快速复习7. 查看类的继承体系、调用层级、类UML图查看类的继承体系 快捷键CtrlH查看方法的调用层级 快捷键Ctrl AltH优秀的源码往往调用层级很深当你debug到某个点却忘掉了怎么进来的或者说不知道哪个地方调用了这个方法只需要在方法名上使用Ctrl AltH即可查看这个方法的调用层级查看类UML图 快捷键Ctrl AltShiftu当使用Ctrl AltShiftu会在新的标签页中展示当前类的UML继承图这个继承图相比较于第一个查看类的继承体系外还有以下优点使用UML图形展示看起来更舒服更全面支持手动排除不相关的类和接口支持展示类的属性和方法等相关信息当你仅仅只关注UML图时还可以使用Ctrl Altu在当前标签页浮动显示一个图层8.多个源码版本相互印证没必要看最新源码版本间会有升级记录和bug修复这些点也是源码成长之路是个避坑指南最新源码可能不稳定一味追求最新源码费时费力。9.不要过分执着代码细节和读书类似不要过分扣细节书是作者在阐述自己的观点你只要get到书中要点并且有自己的看法那么你实际上就已经收获了书里的精华了没必要死抠细节。源码也是一样大部分的代码都是为了辅助核心代码来完成核心逻辑的没必要一字不落的将所有代码都读完效益比不高。你需要学习的是设计思路。10.自顶向下梳理越上层的模块功能越多但数量越少。我们可以从顶层的模块梳理出大致的流程关系然后通过不断的深入来梳理细化流程。就像思维脑图一样。后面的文章会具体的讲解如何梳理这些模块。11.自底向上归纳思维脑图的一个问题就是「只管拆分不管归纳」归纳其实是非常重要的一环。当你梳理了细化的流程后需要将细化流程整合归纳到整体流程中通过不断的归纳你才能理解整体的流程。12先做减法再做加法无论项目代码多大、版本怎么变化核心的功能是基本不变的。先自顶向下的去不断的剔除非核心的组件/包/类找到核心的模块/包/类。梳理出核心流程后在核心流程的基础上再进行扩展引入其它流程以构成完整的项目流程。13.与别人的源码理解相互印证寻找别人阅读源码的笔记去做一个印证往往没有思路的地方看到别人的理解有种恍然大悟茅塞顿开之感。14.Debug时修改变量作为辅助当你在Debug的时候可以使用AltF8唤起这个界面在这个输入框中你可以直接修改当前能够看到的变量当存在以下场景时这个功能真的是绝配当存在很多分支的时候修改某个变量来改变代码运行的逻辑不确定某句代码结果时可以直接在文本框输入而不需要再次重启程序
返回列表