• 请不要在回答技术问题时复制粘贴 AI 生成的内容
devqin
V2EX  ›  程序员

如何读代码?

  •  
  •   devqin · Jan 7, 2014 · 6248 views
    This topic created in 4694 days ago, the information mentioned may be changed or developed.
    不可否认,阅读大量的优秀的代码对自己coding的风格有很大的影响,可是如何去阅读代码,如何高效的阅读代码,一直没有找到好的方法,求达人指教一二,不胜感谢
    20 replies  •  1970-01-01 08:00:00 +08:00
    coetzee
    coetzee
    Jan 7, 2014❤️2
    1
    我都是删着读,边读边删(确切的说不停地精简,总结出一个最小的核,然后慢慢补充),最后总体捋一下脉络,不过最近有个同事的程序让我快要崩掉了!
    MingZhe
    MingZhe
    Jan 7, 2014❤️1
    2
    @coetzee

    哇,中国好同事啊。。。还给看代码。。。
    loading
    loading
    Jan 7, 2014 via iPhone❤️2
    3
    根据你的水平。
    低水平,一个个函数分开读
    中间水平,整体读
    高手,不管函数,看结构
    loading
    loading
    Jan 7, 2014 via iPhone❤️1
    4
    如果是进阶,要调换一下…
    meta
    meta
    Jan 7, 2014
    5
    请高声朗读。
    tox
    tox
    Jan 7, 2014
    6
    先了解项目的结构,和各个模块的功能。
    然后可按照自己感兴趣的模块阅读。
    greatghoul
    greatghoul
    Jan 7, 2014
    7
    我其实是按 Commit History 读的,这样能够看到项目的演进,最近这样读 Ruby China 的代码,学到了不少好东西,还有就是读的时候要适当的做一下笔记。
    lenville
    lenville
    Jan 7, 2014
    8
    @meta 请有感情地大声朗读 ( 捂嘴笑

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

    记得有本书专门讲代码阅读的···
    hgyenzo
    hgyenzo
    Jan 7, 2014
    10
    @loading 怎么调换O O
    Mutoo
    Mutoo
    Jan 7, 2014
    11
    @acros 那本书叫 《代码阅读方法与实践》
    sdysj
    sdysj
    Jan 7, 2014
    12
    代码写多了自然随便看一段就会慢慢跟踪上下文,很自然的感觉。。。。
    Akagi201
    Akagi201
    Jan 7, 2014
    13
    先猜代码实现什么功能(或者看文档或者听同事说), 然后看懂个大概流程, 看跟自己想的一不一样, 如果是很复杂的代码就要一点点分析的看了.
    regmach
    regmach
    Jan 7, 2014
    14
    从过程追溯函数,再延伸到其他类和过程
    这样的方法可以吗?
    zhujinliang
    zhujinliang
    Jan 7, 2014 via iPad❤️1
    15
    @meta
    @lenville
    想起了那个疯狂年代的疯狂英语
    liuting
    liuting
    Jan 8, 2014
    16
    需要逻辑..
    tkdchen
    tkdchen
    Jan 8, 2014
    17
    使用ctags。
    从代码的循环和分支结构中,从宏观了解某个函数或者方法的逻辑。
    一定要使用版本控制,例如git,bzr,hg。
    及时的做注释并使用TODO,FIXME,NOTE做标识。
    适时地做合理地推断
    stackpop
    stackpop
    Jan 8, 2014
    18
    我的习惯是按模块读,然后自己设法把这个模块抽离出来,再进行改造。比如leveldb,我先读的是他的LRUCache,redis我先读了他的hash的实现
    goto
    goto
    Jan 8, 2014
    19
    阅读代码有时候非常有趣,读到好的代码那真是一种享受
    liuting
    liuting
    Jan 9, 2014
    20
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1956 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 141ms · UTC 12:13 · PVG 20:13 · LAX 04:13 · JFK 07:13
    ♥ Do have faith in what you're doing.