刚接手的项目代码 怎么看_开源项目应当怎么学习,如何阅读大型项目的代码?...

两个观点,不要一上来读源码,读的话有计划有节奏。

1、为什么不要一上来读源码,因为如果你小学毕业,没有任何古文基础,读二十四史是看不下去的。二十四史好不好?很好。值得读不?值得。但是你读不了。最好还是逐步深入。具体参考下面链接。

阅读spring boot 源码应该从哪个类开始?- kimmking的回答 - 知乎

阅读spring boot 源码应该从哪个类开始?http://www.zhihu.com

15370d9b692fbfdec3ac8a4efabfff8c.png

阅读spring boot 源码应该从哪个类开始?

首先把demo跑起来,再看文档,需要的话也可以找个书或视频。

翻出来,2010年写的: 学习一种开源技术的步骤:

1). 看介绍

2). 看demo

3). 看入门

4). 自己做demo

5). manual、reference

6). 应用

7). 看总结

8). 看心得

9). 思考

10). 看源码 --> 看源码在这里。

11). 调试源码

12). 修改源码

13). 自己做简单实现

14). 不断完善

2、如果你做好准备了,现在要读源码,我也推荐跟看书一样,可以从二十四史里选一本,甚至从一本里选几段来读。读很多书的一个技巧在于,不是像小说一样,必须从头读,你可以挑选重点,你罪有兴趣的读。代码也一样,选几个模块,作为入手点,具体参考下面。

如何阅读大型项目的代码?- kimmking的回答 - 知乎

如何阅读大型项目的代码?http://www.zhihu.com

15370d9b692fbfdec3ac8a4efabfff8c.png

如何阅读大型项目的代码

这是个非常好的问题。从这个问题我们可以感受到,题主强烈的学习愿望,以及想快速提高技能水平的决心。但是反过来,我们需要思考一个问题,为什么我们要阅读大型项目源码?我们的目的是什么?目的不同,就会导致我们阅读的方式也不一样。我不知道题主说的大型项目是现在工作中要维护的项目,还是自己的兴趣爱好,从网上找到的某个开源项目。

但是不管是什么类型的项目,我都建议题主先列清楚自己具体想达成一个什么目标,然后再去分解自己的这个目标。比如说,是自己工作中需要的项目,那么其实,就会有很多同事其实对这个项目比较了解了,也会积累了一些文档,甚至在线上已经在运行了这个项目的一些实例跑了一些业务,题主可以跟周围的同事先交流沟通,了解下这个项目的背景,大概的架构设计、业务和代码情况,然后再去看看相关的文档,了解一下整体的思路,特别是如果有一些设计和业务相关的文档,这样的话有助于我们对这些整体的代码结构的理解。然后呢,我们可以把这个系统跑起来,把这上面所有的功能都操作一遍,这些功能的操作有助于我们理解代码到底在干嘛,到底实现了什么样的一些功能?反过来是对我们去理解代码本身的设计,会有一定的帮助。

休息一下,来几张照片欣赏一下。。。。。。

8bbf75d878c04946d7350ee05e793d6a.png

如果是工作中需要的代码,但我那么我们还需要了解一下他相关的一些代码规范,脚手架,开发测试和上线发布运维流程。最好能一开始聚焦在一个明确的小目标上,因为我们需要快速介入研发工作状态,这就要先找到一个突破口,然后能够迅速的上手去完成一些简单的功能,比如修复一个bug和添加一个小的功能点。这时候就需要我们对这一小块代码特别了解,所以优先去看这一小块代码,把它看透,把所有的测试跑一遍,然后尝试着去修改少量的代码,是一个好的上手方式。这是上手的“点”,搞定了这个点,就可以考虑这个功能模块的“线”,一点点的搞清楚,去维护住。然后是整个系统这个“面”。点线面都贯通了,你就hold住了这个大型项目的代码。

如果呢,我们是去看一个大型的开源项目,比如spring的源代码,那么我们可能呢,就需要先去用spring来写几个demo,先把它用起来,跑起来,知道有什么功能,怎么用。然后在我们用熟练的应用的基础上,再去看我们的demo设计的那一块的代码,最好能够在我们项目里把spring源码debug起来,看看运行过程,调了一下代码调用的流程和结构,通过这些来学习spring的源码和原理。这时候我们可以去看一些spring原理介绍的文章和书籍。比较熟练了以后,其实我们可以直接去看spring本身的代码,此时也一样我们要按模块,每次可以去了解一个模块的源码,比如bean怎么加载和装配的,AOP怎么回事,事务怎么处理,JDBC怎么封装等等。把很多的模块了解清楚了,整体的架构也清楚了。总之要先会用,然后熟悉调用关系,再按模块学习代码。知名的大型开源项目,原理相关的文档和书都很多,资料比较丰富,坐下冷板凳来潜心学习,很快就能学会。

还要注意的几个问题:

1、我们去看源码的项目里,一般会引用大量的第三方的一些技术和代码,所以这时候呢,我们需要把它记下来,没看到一块,依赖于某个技术,我们还需要再去了解下这个技术相关的背景知识,功能和它的一些代码。大型项目是一个完全的知识体系,也是一个技术的宝库,可以通过一个大项目,学到非常多的技术、知识和技巧,也能看到高手们留下的一些设计思想和处理问题的经验,这些都对我们成长有很大的价值和意义。

2、我们学习带一个大的项目的源码,一定不能有一蹴而就的心理,图大图快,而是必须稳扎稳打,了解大致的全貌,了解用法,然后再去了解每一个部分。先知道整体设计,再去看看一些具体的实现技巧和细节,从大到小,从粗到细,逐渐的把它学会,这个过程中特别强烈的建议去写一些笔记,因为人都是会忘记的。学习笔记把一些学习的过程和思路记下来,可以多次的去看源码,同时每次对照上次的笔记,每一次就会发现自己对这一块的代码理解得更深了一场,以前理解的不够,现在就知道了他为什么要这样设计,而不是那样的设计,他为什么这里的代码这么实现而不是那样实现?越了解得越来越深,其实对这个框架,或者项目就会掌握的越来越好。

总结:

学习的目的是增加自己的产出能力,那么有什么比在工作中学习更好的途径吗? 肯定没有呀。

如果学了很多所谓的知识,还是搞不定工作的问题,并且一直热衷于所谓的 学习,花时间去了解各类热门和高大上,其实深层次反应了我们对工作上面临的实际问题和直接困难,采取了逃避的应对方式。这很要命。

往期精彩视频】

程序猿接私活网站

Java反射教程
项目中如何使用spring策略模式
6款超级棒的开发神器
IDEA有效期到2089年
5T的视频教程,免费共享。不一一列举了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值