备注: 以下言论非原创,来自各社区,时代久远,已不可考,侵删。
- 相信重复的力量
- 善用工具,比如vim到我ctags插件,source insight,code understand等。vs,linux下sublimtext,codeblocks
- 从.h文件的数据结构开始,脑补,先想再读等。
- 联系实践,不是为读而读,带着目的去读。
- 写分析文章,教学相长。
- 熟悉的项目可从main开始,不熟悉或大型项目从example或client入手。
- c代码,关注结构体,一般函数围绕它们处理,java代码关注interface
- 边看边做笔记,画uml,流程时序图等,方便回忆,中断后继续。
- 收集相关文档资料,知识储备。
- 找开始的地方,分层次阅读。
- 备份,构造执行环境,编译构建该源码。
- 写注解,帮助理解,防止重复阅读。反复阅读。
- 修改,执行代码。
- 阅读书Code Reading
- 运用版本控制系统git查看代码和日志对比,可了解代码演变信息。常用git log,git blame命令。git grep相同使用例子。
- gdb step
- follow commit历史,看看代码怎么扩展开来的,可以了解框架,作者思路。同15条
- 懂得基本的设计模式,框架知识。
- 在Linux下用vim+ctags,需要注意下面这些:设置vim为打开文件后默认跳到上次关闭的地方,在/etc/vim/vimrc中可以设置;设置vim,将ctrl+] 默认为命令“:t”即,将全部匹配项显示出来;用好grep命令和find命令即可,查找要查的东西非常好用;grep "the text you want find" * -r是$常用的命令
- 帮项目解决issue。可和作者交流,可获得帮助,正反馈,成就感,贡献。
- 代码笔记写哪?Plain-text. See https://github.com/middlefeng/LuaVMRead 。之前是直接checkout项目代码,然后在代码旁加注释也是plain text. 问题是sync了新代码之后resolve很麻烦。这办法不错,或者可以在代码文件旁另建文件来加理解。
- 边看边骂。斜视
网友评论