V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
devqin
V2EX  ›  程序员

如何读代码?

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

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

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

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