如何高效阅读 Java 项目的源代码? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kingname
V2EX    问与答

如何高效阅读 Java 项目的源代码?

  •  
  •   kingname 2015 年 5 月 6 日 4084 次点击
    这是一个创建于 3918 天前的主题,其中的信息可能已经有所发展或是发生改变。
    楼主拿到一个Java的项目源代码,需要在1个星期看完并作presentation。项目代码大概有5万行,没有注释,有80+个文件。

    楼主搞Python出生,对Java深恶痛绝。看到Java的各种修饰符就恶心犯晕。

    求V友支招,如何高效的阅读Java代码。

    非常感谢~
    13 条回复    2015-05-07 13:12:22 +08:00
    canesten
        1
    canesten  
       2015 年 5 月 6 日
    如果是个代码风格良好的项目
    搞清楚线程模型和数据模型就可以大致了解了吧?
    professorz
        2
    professorz  
       2015 年 5 月 6 日
    用intellij IDEA看,不过我也感觉这东西快不得
    kingname
        3
    kingname  
    OP
       2015 年 5 月 6 日
    代码风格挺好的,IDE只能使用开源的。目前是Eclipse
    professorz
        4
    professorz  
       2015 年 5 月 6 日
    java比scala这种函数式的要好看的吧
    fly2never
        5
    fly2never  
       2015 年 5 月 6 日
    @kingname idea社区版也是开源的
    kingname
        6
    kingname  
    OP
       2015 年 5 月 6 日 via iPad
    @fly2never 那个只能个人使用,在公司不能用。
    wohenyingyu01
        7
    wohenyingyu01  
       2015 年 5 月 6 日
    用了什么框架?用了什么设计模式?mvc?spring?struct?hibernate?javafx?总不能凭空生写出来吧,那写5万行也是挺厉害的。
    kingname
        8
    kingname  
    OP
       2015 年 5 月 7 日 via iPad
    @wohenyingyu01 凭空写出来的。
    fenzlie
        9
    fenzlie  
       2015 年 5 月 7 日
    可以从这个项目解决的问题入手,搞明白这是个什么项目。
    也可以看设计文档,看设计的框架结构。
    去看引用的JAR包有哪些,搞清楚引用的目的。
    去看项目执行时里面有哪些容器,哪些线程组线程池在跑,相应跑的目的是啥。
    每个容器实现类捋一遍,相应的HANDLER类实现也看一遍。
    还有就是按包名去了解该项目各个包都是分管什么事情的。
    从80多个类中抽出所有的接口,搞清楚所有接口的用途。

    这些东西搞清楚了,这个项目你就上手了。
    kingname
        10
    kingname  
    OP
       2015 年 5 月 7 日
    @fenzlie 如何克服看到Java的各种修饰符和变量定义就犯晕犯恶心犯狂暴的问题?
    fenzlie
        11
    fenzlie  
       2015 年 5 月 7 日
    @kingname 搞明白它们都是什么目的,都有什么用途。
    baozijun
        12
    baozijun  
       2015 年 5 月 7 日
    @kingname 可以先学习下C++吧,回来再看JAVA你会很舒服的
    kingname
        13
    kingname  
    OP
       2015 年 5 月 7 日
    @baozijun 来不及了。要学也学Go。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5267 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:06 PVG 16:06 LAX 00:06 JFK 03:06
    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