`
cxshun
  • 浏览: 724526 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

论JAVA框架

 
阅读更多

        进入新公司已经差不多三个星期了,上次一篇文章有很多朋友的评价,有鼓励的,当然也有踩的,没关系,在这个世界,你不可能让所有人都高兴的。有人鼓励,说明他们和你一起在努力,一起向着自己的目标奋斗;有人踩,说明你可能做得比他们好,他们千方百计靠踩低你来获得快感。

        三个星期来一直维护着以前的一套旧系统,不是用JAVA的,是.net的。开发人员都有语言情节,换一个语言肯定都是不怎么爽的。当然,我也不例外,看着.net千万种不爽的理由,当然,不是对.net本身,而是对那个项目的架构,总而言之,架构比较混乱。这些就不管它了。

       这段时间正在考虑要用JAVA重构项目,公司内部基于play framework1.x开发了一个框架,没有事务处理,没有session处理,完全自己搞定。又是一个学框架的时期了。

       话说在JAVA这个世界,什么都缺,缺高手,缺架构师,缺好代码,但就是不缺框架,每天总会有人开发框架,也总会有人在讨厌哪个框架好,哪个框架不好,各个框架的开发效率怎么样。

       说说最多人用的SSH或SSI吧,现在用的比较多的应该就是struts2.x+spring3.X+hibernate4.X或hibernate3.X了吧,mybatis用的人也有,方便有DBA的公司。

       来看看SSH和SSI的优点吧:

       1)spring IOC很牛叉,管理对象,使我们免于一系列的对象依赖处理中

       2)struts2相对于struts1有很多改进,dispatcher等等好像还蛮好用的(2接触得不多,这里就不多说了)

       3)hibernate这个几乎是JAVA界的ORM典范,这个相信大家都知道它的好处了,缓存管理,对象和表的映射,这些都足已让我们投入它的怀抱。

       4)mybatis或者ibatis,对于存在DBA的公司,可以在SQL语句上面进行相当精度的调优,这个是比hibernate好的地方,缓存那些基本都差不多。

       5)代码规范,SSH或SSI框架实现的架构,基本上是4层,或更多层数,具体看定义,在代码的实现上面比较统一,看起来也比较舒服,方便以后的维护。

       当然,有优点肯定也有缺点:

      1)学习成本,三大框架,说明是了“大”框架,突出在大,学习成本肯定不低,特别是要深入的时候,三个框架,随便一个都可以花费巨大的精力。

      2)运用了orm框架的系统,在SQL语句上面可能没有直接JDBC上那么灵活,不能方便DBA或者相应的数据库人员进行调优。

       

       框架学习,不是什么大问题,但一直的框架学习,而不去深入框架的思想,这才是我们开发人员最大的问题。有人喜欢去深入源代码,有人喜欢去学习一些框架,只是泛泛地使用,用完就算,但在有必要的时候会去看源代码;但另外有一些人,只是泛泛地使用,CTRL+C,CTRL+V搞定代码问题。在现在的商业社会中,泛泛使用,没什么错,毕竟我们工作中,不可能都需要专业人员,有些公司只需要一些会使用工具的人。前几天看过一篇文章,是淘宝的玉伯写的一篇文章:我眼中的技术高手——https://github.com/lifesinger/lifesinger.github.com/issues/126这里,他正在说明了一个问题,就是泛泛地使用,在必要的时候去查看源代码,这样比单纯地为了看源代码而看源代码的效果好。

       各个公司有各个公司的框架,不可能每个公司都用同一个框架。在我看来,真正可以把JAVA那些比较重要的内容吃透的人,学哪个框架都不是问题,比如把并发,IO,反射这些都深入了解的话,IOC框架也可以自己写一个,另外,分布式那些很深入的话,hadoop那些快速入门也没什么问题的(hadoop太复杂了,这个感觉不大属于实用的环节,我们就没必要去说写一个了)。一个语言的比较难的地方就只有那么几个地方,只要深入那些要点,其实都可以很不错的,不说找好工作,起码找工作是不用愁的了,因为框架的使用都不是问题,并且你知道一些框架的实现原理,使用就更不是问题了,只要翻翻使用手册就OK了。

       框架,只是一个工具,而框架的实现思想,内部实现机制,语言的要点,这才是我们需要去深入的。想想自己之前也是一直徘徊在学框架的使用上,一直没有想着怎么去深入框架内部的实现思想上,我们不需要去深入它的代码实现,但我们需要知道它的实现思想。思想和代码实现,这是一种方式上的体现,我们不需要拘泥于代码的实现。比如IOC框架有spring和guice和另外的一些其他的框架,他们的实现代码不一样,但思想都是差不多的,都是依赖注入的思想,由容器来控制对象之前的依赖关系,只要我们理清思想,代码实现只是一个时间的问题而已。此时,如果我们想深入它某一块的实现,这里再去看代码,就可以有针对性地看,这样比我们泛泛地去看效率要高得多。

         希望各位和我一起徘徊在框架使用学习的朋友,调整一下心态,深入框架的思想,让我们一起做不平凡的开发者。

5
0
分享到:
评论
2 楼 MCLoginandPwd 2017-08-08  
如今,java技术框架太多了,给你分享一个好玩代码生成器,http://blog.csdn.net/loginandpwd/article,拖拽组件,组成流程图,支持编写java,javascript,freemaker等技术,生成任何需要的代码。
1 楼 weihai2014 2016-01-31  
想学习框架的底层原理和掌握架构设计一个框架,可以学习CSDN学院上首发的那套《Struts2架构设计之路 自主编写Web开发框架》的课程,相信能获益匪浅。

相关推荐

Global site tag (gtag.js) - Google Analytics