如何读代码?

2014-01-07 09:24:31 +08:00
 devqin
不可否认,阅读大量的优秀的代码对自己coding的风格有很大的影响,可是如何去阅读代码,如何高效的阅读代码,一直没有找到好的方法,求达人指教一二,不胜感谢
4665 次点击
所在节点    程序员
20 条回复
coetzee
2014-01-07 09:30:50 +08:00
我都是删着读,边读边删(确切的说不停地精简,总结出一个最小的核,然后慢慢补充),最后总体捋一下脉络,不过最近有个同事的程序让我快要崩掉了!
MingZhe
2014-01-07 09:35:23 +08:00
@coetzee

哇,中国好同事啊。。。还给看代码。。。
loading
2014-01-07 09:51:36 +08:00
根据你的水平。
低水平,一个个函数分开读
中间水平,整体读
高手,不管函数,看结构
loading
2014-01-07 09:52:58 +08:00
如果是进阶,要调换一下…
meta
2014-01-07 10:51:42 +08:00
请高声朗读。
tox
2014-01-07 13:11:44 +08:00
先了解项目的结构,和各个模块的功能。
然后可按照自己感兴趣的模块阅读。
greatghoul
2014-01-07 13:27:50 +08:00
我其实是按 Commit History 读的,这样能够看到项目的演进,最近这样读 Ruby China 的代码,学到了不少好东西,还有就是读的时候要适当的做一下笔记。
lenville
2014-01-07 13:42:23 +08:00
@meta 请有感情地大声朗读 ( 捂嘴笑

其实我是初段选手
我像 @loading 说的那样一个函数一个函数分开读
acros
2014-01-07 14:32:41 +08:00
做游戏项目的,一般模块很多。
我习惯先找一个目标(比如修改某个技能),然后定位代码。看实现(一般运行debug跟着执行走)。然后看模块组织,最后浏览下框架。基本上是由点及面,从小到大的顺序。

记得有本书专门讲代码阅读的···
hgyenzo
2014-01-07 16:17:38 +08:00
@loading 怎么调换O O
Mutoo
2014-01-07 18:46:18 +08:00
@acros 那本书叫 《代码阅读方法与实践》
sdysj
2014-01-07 19:01:31 +08:00
代码写多了自然随便看一段就会慢慢跟踪上下文,很自然的感觉。。。。
Akagi201
2014-01-07 22:18:24 +08:00
先猜代码实现什么功能(或者看文档或者听同事说), 然后看懂个大概流程, 看跟自己想的一不一样, 如果是很复杂的代码就要一点点分析的看了.
regmach
2014-01-07 22:27:32 +08:00
从过程追溯函数,再延伸到其他类和过程
这样的方法可以吗?
zhujinliang
2014-01-07 22:40:35 +08:00
@meta
@lenville
想起了那个疯狂年代的疯狂英语
liuting
2014-01-08 10:22:45 +08:00
需要逻辑..
tkdchen
2014-01-08 11:42:13 +08:00
使用ctags。
从代码的循环和分支结构中,从宏观了解某个函数或者方法的逻辑。
一定要使用版本控制,例如git,bzr,hg。
及时的做注释并使用TODO,FIXME,NOTE做标识。
适时地做合理地推断
stackpop
2014-01-08 12:09:59 +08:00
我的习惯是按模块读,然后自己设法把这个模块抽离出来,再进行改造。比如leveldb,我先读的是他的LRUCache,redis我先读了他的hash的实现
goto
2014-01-08 18:10:41 +08:00
阅读代码有时候非常有趣,读到好的代码那真是一种享受
liuting
2014-01-09 11:00:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/95938

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX