如何高效地阅读开源项目的源码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的容
xiaovfight
V2EX    程序员

如何高效地阅读开源项目的源码

  •  
  •   xiaovfight 2011-09-19 23:13:31 +08:00 7768 次点击
    这是一个创建于 5166 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先解释一下何谓“高效”。我理解的“高效”是“花尽量少的时间去掌握框架的来龙去脉并能上手运用”。程序猿们,你们都是怎么阅读和理解陌生的代码的?写注释?还是动笔画结构图?还是其他什么方法?
    12 条回复    1970-01-01 08:00:00 +08:00
    xiaovfight
        1
    xiaovfight  
    OP
       2011-09-19 23:13:57 +08:00
    不会想某神人一样一边喝咖啡,一边躺着像阅读小说一样阅读代码吧=_=|||
    chloerei
        2
    chloerei  
       2011-09-19 23:33:34 +08:00
    "掌握框架的来龙去脉并能上手运用"应该看的是文档
    xiaovfight
        3
    xiaovfight  
    OP
       2011-09-19 23:59:35 +08:00
    @chloerei 那我换个角度问吧:程序员都是怎么学习框架的,学习框架的那些部分(适用情景?架构设计?设计模式?语言特性?编程风格?文档规范?),学习到哪种程度,顺便传授一下学习经验
    mywaiting
        4
    mywaiting  
       2011-09-20 00:07:30 +08:00
    类C项目找Main函数过一遍,Web项目关注请求的接受并输出响应的过程。这两个基本能做到知道来龙去脉了。但要熟练,还要知其所以然,这不是什么高效不高效的问题。你基础好,理解快,不要图不用笔或者跟踪什么的就搞定了;要是基础不好,那就多Google吧。我个人对于Web项目,基本看看就可以搞定:)
    xiaovfight
        5
    xiaovfight  
    OP
       2011-09-20 00:18:27 +08:00
    @mywaiting 其实我个人觉得吧,要是看看就可以搞定那么可以确信你一直在做重复的事情或者相似的事情。这样很容易禁锢在自己的知识圈里而没有发展。如果面对一个陌生的领域,让你迅速掌握相关的技术,又该如何应对呢?
    keakon
        6
    keakon  
       2011-09-20 00:31:53 +08:00
    先思考自己应该如何设计和实现,再参考其中没把握的部分,只关注那里就行了。
    xiaovfight
        7
    xiaovfight  
    OP
       2011-09-20 00:38:11 +08:00
    @keakon 有道理。很好的思维模式。
    chuck911
        8
    chuck911  
       2011-09-20 01:02:32 +08:00
    @xiaovfight 首先要了解这个领域的常用设计/架构模式以及惯用法,拿web cms项目来说,
    web mvc、单一入口、配置存取、观察者模式-hook-插件机制、ORM、Module/Application等等
    了解这些可以是看书,如《企业应用架构模式》,或者从使用、阅读源码、拓展一个框架或者项目,如rails,drupal,不建议从没有丰富文档的项目入手
    走出第一步是需要耐心的,很难是“高效”的,了解了这个领域的模式和惯用法之后,在欲望的驱使下,就可以很快看懂同类的
    大学有段时间我就在宿舍边吃外卖边看代码,感觉比那些娱乐节目好看多了
    avatasia
        9
    avatasia  
       2011-09-20 01:56:43 +08:00
    @chuck911 很有道理, 扒过choromium的源码。
    OnlyBlue
        10
    OnlyBlue  
       2011-09-20 08:49:29 +08:00
    这也是我想问的问题,先回帖,再看前面的帖子,相信一定会得到启发。
    Zhongwei
        11
    Zhongwei  
       2011-09-20 09:56:55 +08:00
    @chuck911 深受启发
    xiaovfight
        12
    xiaovfight  
    OP
       2011-09-20 18:27:07 +08:00
    @chuck911 前期准备往往以泛读为主,然后针对具体问题域采取精读策略。但是很多时候,老板总是希望你花最少的时间做最多的事,真是痛苦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:24 PVG 05:24 LAX 13:24 JFK 16:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86