作为一个程序猿你必须会的技能----自学框架!

发布时间:2014-03-01 02:37:00作者:左潇龙阅读(3012 )评论(10)

    引言

     

      这篇文章主要来源于和群里猿友的聊天,有猿友问LZ该如何学习一个框架。LZ想了想,这确实是一个值得探究的问题,于是这篇博文就应运而生了。接下来LZ就和各位猿友分享一下LZ个人学习框架的一些方式和方法,或许对大部分人还是有一些启迪作用的。

     

    找到它的老家

     

      对LZ个人来说,当LZ想要学习一个框架的时候,首要做的就是找到它的老家。打开你的浏览器,输入网址:www.google.com(为何不是百度?因为我们学习的框架几乎没有china的),然后输入你想学习的框架,比如spring(本文以它为例,其余其实都是类似的)。

      第一个出现的一般就是它的老家,就像下面这样。

      擦,剧情不该是这样的,导演掐了重新来一遍啊。该死的google老是这样。据之前LZ的某老师说,这都是度娘干的。

      好吧,甭管是谁干的,我们只管不断F5即可,最终你会看到下面的画面。

      bingo。画面出来了。这就是spring的老家,我们想要研究它就从它开始吧。接下来请你默默的打开它的链接。是的,默默的。

     

    直入正题,找例子

     

      接下来我们就要直入正题了,进入它的页面后,你会看到这样的导航。

      看到了吗?看到了吗?

      guides,LZ蹩脚的英文大概看出来它就是向导的意思,于是我们果断进来一看究竟。进来以后,你会发现一堆向导,这里就是你的百宝箱。

      里面有各种各样的例子供你使用。接下来你需要做的就是按照其中某一个一步一步的做下去,直到完成你的目的。比如你想做一个任务调度器,那么就果断进入Scheduling Tasks。接下来,你就看到了这样一个无脑学习的页面。

      看到了吗,你只需要ctrl+C/V就可以完成你的任务。不过这只是一个开始,因为这毕竟只是一个简单的例子,你还需要根据你当前的需要进行一些改变。如果你需要的正是这个例子,那么就再好不过了。

      

    寻找文档

     

      通常情况下,在你完成任务的过程当中,总会遇到这样或者那样的问题,就算没有遇到,如果想要学习一个框架的话,一个完整的说明文档往往也是你需要的。在接下来的过程当中,我们的任务就是寻找文档。这个过程往往是最困难和痛苦的,这与LZ蹩脚的英文有很大关系,所以每次找文档都让LZ痛苦并快乐着。

      不过这里面总有一些大概的规律,比如doc、document、documentation这样的字样总是那么的亲切。而且我们不需要担心一个框架没有文档,因为对于开发它们的人来说,我们就是客户,就是上帝,所以他们必须要让上帝能看懂他们写的东西。否则的话,他们写的东西是没有客户的,没有客户就意味着没有创造价值,没有创造价值就意味着可能会被炒鱿鱼,被炒鱿鱼就意味着可能会被媳妇嫌弃,被媳妇嫌弃就意味着可能会被@#¥&绿#&%¥&*

      LZ并不会把文档看的太深入,主要就是看一些自己开发需要的东西,还有很重要的一点就是,从当中找到框架的核心实现原理。比如spring当中,IOC的相关内容就是它的核心实现原理,因为spring的所有框架(比如AOP、security等等)都是建立在IOC的基础之上的。

     

    寻找入口,跟踪源码

     

      这下例子也看过了,任务也完成了,文档也有了,如果我们想要更加深入的了解一个框架,那么源码就是必不可少的一个环节了。说起来还是得感谢JAVA的开发氛围,几乎所有的东西都是开源的,所以你总能找到源码。

      标题当中提到了入口,所谓寻找入口,就是寻找一个框架的切入点。比如spring的入口就在web.xml当中的监听器,而struts2的入口就是web.xml当中的过滤器,常用缓存的入口往往存在spring管理的缓存的定制工厂bean当中等等。

      找到入口,你就能从头开始调试,了解整个框架初始化的过程,以及初始化后是如何工作的。在跟踪源码的过程中,最好结合你的例子,搞清楚你的例子是如何运行的。比如刚才的定时器调度,搞清楚spring是如何帮你进行调度的,比如执行任务的线程是如何分配的,任务的触发是如何进行的等等。

      

    找到框架的优劣势并努力体会它

     

      说到这里,请各位猿友想象一下,当你在逛商场的时候,如果你想要买某一样东西,一般情况下,你总会在各个品牌或者同一个品牌的不同类型之间相互比较,如果你从不这么做,请允许LZ尊称你为“土豪”。

      如果你这么做了,请仔细的想想,你是在比较什么?

      当然是优势和劣势了!

      对于我们程序猿来说,框架就是一个一个的商品,而我们就是这些商品的客户。如果你想要做一个能买到物美价廉的商品的客户,就必须了解各个商品的优劣势。只有了解了各个商品的优劣势,我们才能在众多的框架当中选择合适的框架,你说是吗?

      所以,不用说,我们要想了解一个框架,就必须知道它的优劣势,尤其是劣势。优势一般在框架的老家当中就能找到,因为这是在为他们的项目吹牛皮呢,他们的官网自然不会忘了这一项。至于劣势,就需要自己根据例子、源码以及其实现原理好好体会一下了。

      

    结束语

     

      框架说到底就是一个商品,我们只是其中一个用户罢了。因此LZ不建议各位猿友把框架的研究当做毕生梦想,更不建议各位沦陷于研究各种各样的框架,或者去尝试各种框架的例子,并很自豪的对着镜子说“你好厉害,你竟然会这么多框架”。注意!请你至少完成了以上几件事,再说你会这个框架吧。

      框架只是我们针对特定场景所作出的选择,因此我们只需要有学习框架的能力即可,千万不要想着能把全世界所有品牌的牛奶都尝试着喝一遍,如果你非要这么做的话,LZ保证你一定会死于非命的。这就像你买药一样,你只需要知道当你感冒的时候应该吃什么药,当你拉肚子的时候应该吃什么药就好。更好的情况是,当你万一有其它毛病时,你也可以通过一些途径找到适合你的药。

      话已至此,LZ就啰嗦到这里吧。总之,深入的研究一下少数几个优秀的框架,还是非常有益的,但不要贪多,学会适可而止即可。

      


    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    12
    精彩
    1
    感动
    0
    搞笑
    0
    开心
    0
    愤怒
    0
    无聊
    0
    灌水
    0
    惊讶
#1楼     时间:2014-03-01 09:26:00      来源:yonghu86
这个顶下
#2楼     时间:2014-03-01 09:54:00      来源:快刀客
必须顶,。。关注
#3楼     时间:2014-03-01 11:25:00      来源:poet_lj
LZ很幽默,话不糙,理不糙,顶
#4楼     时间:2014-03-01 12:04:00      来源:mingyueruya
这个可以顶一下的
#5楼     时间:2014-03-01 12:37:00      来源:中了剑的刺猬
“寻找入口,跟踪源码”这句话非常赞同~顶一下~
#6楼     时间:2014-03-01 18:07:00      来源:过错
题目的起的太大了吧
#7楼     时间:2014-03-01 19:03:00      来源:左潇龙
@ 中了剑的刺猬
@mingyueruya
@poet_lj
@快刀客
@yonghu86
多谢五位施主的支持,贫僧这里有礼了。
#8楼     时间:2014-03-01 19:03:00      来源:左潇龙
@ 过错
抱歉,施主,把您忽悠进来了。
#9楼     时间:2014-03-03 08:57:00      来源:Never_Land
楼主,文章大标题的那个绿色的背景是咋弄的,新添加的css样式?
#10楼     时间:2014-03-04 18:55:00      来源:小小小水滴
有理,得顶,LZ,做个朋友吧。\(^o^)/~
发表评论

站内搜索

最新评论