如何学习框架与如何解读开源项目

77 阅读8分钟

如何学习框架

图片

学习一种框架最先需要知道的是为什么需要使用这个框架,任何一个框架的发明都是为了解决编程中的一些痛点,打开任何一本 spring 或者其他框架的入门书,第一章都是介绍框架的理念和优势。

如果需要理解这些理念和优势,那么你需要知道不使用这个框架之前是怎么处理的,才能知道框架做了一些什么事情。所以如果要理解这个框架,就要知道没有这个框架之前,使用的是什么技术。

比如说,针对 Spring 的学习,第一步就是理解 IoC 和 AOP;这是两大核心基础;然后学习 SpringMVC。所以第一步学习框架的理念和他的优势很重要。这能让你总体上对框架有一个概念和基本认识。

认识了这种框架概念之后,这个时候呢,你可以对比一下你以前使用的类似的技术。两者相比较的话各有什么优势?又各有什么缺点?比如说你在学习spring mvc。那么学习的时候,你就可以对比一下struts和servlet,还有他们之间的关系。可以在对比中对框架有个更深的认识。这其实就是一种我们常用的学习方法,对比式学习。

那么在对比完了功能差不多的框架之后,你可能就对这种框架会更加深层次的了解,这时候呢,你可以上网搜一些相关的资料,然后把它的功能和特点标记到思维导图上面。也就是我们的第三点。这一步也其实挺重要的,比如说不用spring mvc框架对比了servlet之后,你可能觉得,使用spring大环境,web开发更加简易。

然后对比了struts之后,你就能得到spring mvc的一些特点,比如说它的强而直接的配置方式。他对restful风格支持更加友好,还有spring框架的一站式解决方案,是的spring mvc能够很方便地与项目结合在一起,不用过多的配置。

功能特点优势都了解清晰了之后,那么接下来就可以进入学习阶段了。我支持你们先上网搜视频来看。有说网易云课堂,慕课网,极客学院,腾讯课堂等等,这些网站都支持视频的加速播放,比如说1.5倍,2倍。这样子的话,就能节省很多时间成本。而且我觉得视频是一个很好的学习方式,授课老师会把他的经验传授给你。让你快速入门,并且少走弯路。而且通常还会附带一些入门资料,这样子的话你就可以边看视频边运行项目看代码。认真的同学,还可以自己手敲一遍代码,这样子对你认识框架很有帮助。

那么接下来,视频也看完了。之后可就可以找一些简单的入门demo来学习。可以直接去百度,我推荐一种方式给你们。可以直接上码云网站,一个是开源中国的一个git项目仓库。www.gitee.com。 比如说你想学spring mvc的一些小例子。你就直接可以搜spring mvc,然后加一个demo关键字。就可以搜出很多简单的入门例子。

然后第五步的话,就是要把框架的原理给理一遍了。你可以上官网,或者找一些优秀的博文来参考,然后最后的话再给出自我总结。这样子的话,整个流程下来,你对框架的认识,应该说能够简单理解和运用了。

如果后期你还想更深入的去了解一个框架。有说深入的话到框架的底层代码。你可以去买一本相关的书籍来看。当然,边看书,你也可以边做思维导图总结。还是那一句话,有输入就一定要有输出。

那么关于如何学习框架就讲到这里。希望大家学习的过程中注重学习笔记。

如何解读开源项目

图片

很多人拿到一个项目的源码之后啊,不知道走从哪里下手。其实都是因为他没有掌握正确的解读方法。又或者说,项目运行起来之后啊,看一下代码没再深究了。这样子的话不当浪费了时间,项目也没有很好的读懂。我觉得读一个项目,有输入就要输出。也就是说,读一个项目一定要做好笔记。

那么如何才能做好一个Java项目的解读笔记呢。

我把这个过程分为八个点。首先第一点,你要明确你自己想学什么东西?比如说你想学某一个功能的实现逻辑或者一个框架的用法。那么在开源社区里面,你就可以有针对性的去寻找这一类的项目。

一般项目确定的之后,你就可以先把代码克隆下来并运行起来。第一时间会先从项目的界面上面来看有没有值得你学习的功能。比如说我们打开java思维导图社区这一个网站,看到文章里面有这种一键分享的功能呐,还有回复的时候可以发小表情。你自己不知道怎么做的就可以先把它截图下来,然后到时候去源码里面寻找答案。下次遇到同样的功能的话,你就可以很快的做就来。这就是一个项目的积累过程。

从界面上了解完一个项目之后,可以再从功能上去分析这一个项目。比如说他的私信逻辑,消息通知,文章搜索这些常用功能是怎么实现的?

确定完了项目的功能之后,然后在看他的选用的技术,一般开源项目的话都会在readme里面把他选用技术写出来。这样的话,你完全可以把它粘贴过来复制到你的导图上面。下次看导出的时候你就能想起你这个开源项目用了哪一些技术。像我家的思维导图社区这一个项目的话就选用了mblog的一个开源多人博客项目作为一个模板。mblog的话,他就在他的git上面是把他的技术选型写出来了。这样的话,我就能很快的确定通过这个开源项目,我能学到什么东西了?

那么第四点,项目结构,为什么要把项目结构一定要留出来呢。因为从项目结构上可以直观地看到这一个项目的整体情况。等你下次再打开这个导图的时候,你就可以很快的通过这一个项目结构,功能和技术选型的记起这项目到底长什么样子的?你学习了什么东西。在项目架构上面,你可以标记每一个包或者说哪个类是到底用什么的?那么项目结构你也标记完了之后,接下来就应该对代码进行一个深层次的解剖。一般来说解读的顺序,先从增删改查开始。跟你平时的使用的方法有什么区别?一般来说整体的封装思想会有一点区别。你应该体会一下作者这样写的目的和便捷性。

接下来就是第五点对项目进行一个完整的解读。从项目的功能上好工具类的使用上还有功能的逻辑上,易用性和整体封装上去看一个项目。然后中间遇到了什么问题可以把它记在第六点。比如说你看不懂某一个模块,它的功能。逻辑是怎么实现的?或者说不懂有一个标签注解是干嘛用的?这时候你可以提问我,或者说发上群上也,同学们一起讨论。这个问题解决了之后,你应该把它记录下来,然后可以把它放在第七点值得学习上。遇到问题解决问题,慢慢地就会提高你对这个项目的理解。最后你还应该总结出一个项目结论。你从这个项目上学到了什么设计思想想,然后你觉得你自己很在那一方面,还有待加强。

完成了这一个导图之后,可以说你是有输出的目的了,当你这种项目的导图越来越多,相信你的经验也会增长的越来越快。

如果你也想学习Java项目实战,欢迎来到我的网站www.markerhub.com ,这里没有难背的八股文,只有实战与训练!

image.png