如何阅读开源项目代码
1个回答
2017-02-17 · 知道合伙人互联网行家
关注
展开全部
基本功什么的就不在此赘述,进入正题
1.运行
如果是一个工程的话,建议首先自己运行起来。只有运行起来看到效果之后才方便之后打断点DEBUG调试。
过程之中也许涉及到各种环境啥的搭建,可能过程很苦逼,很耗耐心和意志。总之,没有什么困难能够阻碍你,如果你真的想要去做的话。
2.入口点
找到程序的入口点,方便跟进。算是毛线球暗藏的那个线头,找到之后只管拽就肯定能拆解。
3.把对的改错,再想办法绕开
个人没有实践过,不过日常开发过程中倒是经常碰到把对的改错了。纠错再改正的过程确实能够让自己对系统有更一步的了解,并且记忆深刻。
4.模块化阅读
将整体系统划分成不同的模块,再逐个解决。此处的意义不是具体一个项目功能模块的意思,而更倾向于在抽象一层理解,如网络层,缓存层,持久化层……
5.个人化
换了一个词表示“使用”,自己动手去使用,去实现,去架构。只有这么做了才能真正体会到自己哪里还不会。
6.跟“人”沟通
其意义很重要,书籍上确实东西能够起沉淀很多有意义的东东,但是很多实际使用过程中遇到的问题还需要向大神请教,途径包括公司资源,包括外网论坛博客啥的。
以上主要是提供一个思路,经过自己这段时间的实践,发现确实能给黑暗中的自己一个摸索的方向,并且有一定的效果。
另外还有几点,不知道插在哪一步进行说明,就没有总结在下面了
多思考,为什么要写成这样,这样写有什么好处。
注重Demo&Sample,很多使用上经验可以学习。
阅读代码时最好分两遍进行阅读,第一遍主要熟悉代码结构,了解流程,划分模块;第二遍再注意细节,分模块的进行熟悉。
一定要记住的是,回味,总结,沉淀。只有转化成为自己理解的东西之后,才能算学会了,时间才没白费。
最后说一下,尽可能的在代码中找答案。跟别人沟通(当然除了跟代码作者本人沟通外)只能进行经验的交流,别人所输出的是经过他的理解和加工之后的,不见得一定是对的。
1.运行
如果是一个工程的话,建议首先自己运行起来。只有运行起来看到效果之后才方便之后打断点DEBUG调试。
过程之中也许涉及到各种环境啥的搭建,可能过程很苦逼,很耗耐心和意志。总之,没有什么困难能够阻碍你,如果你真的想要去做的话。
2.入口点
找到程序的入口点,方便跟进。算是毛线球暗藏的那个线头,找到之后只管拽就肯定能拆解。
3.把对的改错,再想办法绕开
个人没有实践过,不过日常开发过程中倒是经常碰到把对的改错了。纠错再改正的过程确实能够让自己对系统有更一步的了解,并且记忆深刻。
4.模块化阅读
将整体系统划分成不同的模块,再逐个解决。此处的意义不是具体一个项目功能模块的意思,而更倾向于在抽象一层理解,如网络层,缓存层,持久化层……
5.个人化
换了一个词表示“使用”,自己动手去使用,去实现,去架构。只有这么做了才能真正体会到自己哪里还不会。
6.跟“人”沟通
其意义很重要,书籍上确实东西能够起沉淀很多有意义的东东,但是很多实际使用过程中遇到的问题还需要向大神请教,途径包括公司资源,包括外网论坛博客啥的。
以上主要是提供一个思路,经过自己这段时间的实践,发现确实能给黑暗中的自己一个摸索的方向,并且有一定的效果。
另外还有几点,不知道插在哪一步进行说明,就没有总结在下面了
多思考,为什么要写成这样,这样写有什么好处。
注重Demo&Sample,很多使用上经验可以学习。
阅读代码时最好分两遍进行阅读,第一遍主要熟悉代码结构,了解流程,划分模块;第二遍再注意细节,分模块的进行熟悉。
一定要记住的是,回味,总结,沉淀。只有转化成为自己理解的东西之后,才能算学会了,时间才没白费。
最后说一下,尽可能的在代码中找答案。跟别人沟通(当然除了跟代码作者本人沟通外)只能进行经验的交流,别人所输出的是经过他的理解和加工之后的,不见得一定是对的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询