再读《被神化的框架》
开发框架,构件,组件非常地多,而且,趋势是越来越多,特别是在java中。当然也不是说其它平台的少。而特别是框架越来越被神化了,似乎用之解决一切问题,不用就要敲坏键盘。对于老衲这样的打字员来说,还是很爱惜自己的键盘的。
框架为什么会被神化?首先,框架是N种项目同类型代码、思想的提炼。它当然可以解决很多问题。比如java世界的Spring,Struts,Hibernate,Java EE;dotnet的ADO.NET Entity Framework,MVC,企业库,NHibernate,NBear;Ruby的ROR等等。而框架被神化的另一点就是言必称框架。不用框架就不是一个好架构,不用框架则后期维护就一定会出现问题。
而世上往往浮躁的人要多于踏实的人,用框架只管“怎么用?”,而不管其它的问题。以至于出现问题时,就无法解决。导致的问题,一般也不至于引起项目崩溃,但是很多项目出现版本脱离管理或者暂时混乱是肯定的。
特别是对于老衲这样的菜鸟来说,更加吃力了。学习框架吧,但是一个完善的框架必然是起码好几百K的代码,而且框架的代码都是接口来接口去,看得是云里雾里,再抽根烟就更加形象了。不学习吧,总感觉很心虚,好像在造豆腐渣工程一般。
而且一般的问题介绍框架都是猛讲配置,讲原理的相对来说就比较少,梳理代码的就更加少了。这弄得老衲都不敢用啊,出了错,找谁去啊?这就是看着心痒,就是不敢下手。这就是一个恶性循环了,不敢去用,而不用呢又没办法懂,反正高手们也都不讲详细。狠下心的,过了桥了,没下决心的还在河边等。
但是学也无从学起啊,刚搞java的,直接学框架那可是比跳楼还有难度。dotnet的还好一些,比较配置相对简单一点。
那来搞清楚什么是框架?那是一个复合代码重用,设计重用,也可能有分析重用的一个东西。框架也是用初学者从书本上看到的那些个简单语句关键字开发出来的。比如,java里的jsp、serverlet、javabean看似过时了,但是Spring,Struts这些东西的基础还就是那些东西,只是整合得非常好而已。这样看,框架似乎也没什么大不了的嘛,学学基础,学学设计模式,自己也可以搞一个出来。
当然,实际上也没那么简单,开发一个框架要考虑各个层面上的问题。而这些东西了,就不去扯了。重要的是知道去学基础的东西并不是一种倒退,不用框架页未必开发不出好东西来。设计跟开发是两码事情,有些人可能觉得设计能力很牛了,拿到个项目就可以画出个结构图出来,分层分得很好。但是不一定能开发得出来。看过几天UML估计都可以画出那个图,实践那个图的能力要比画的难度大得多。
有时候经常想啊,尝试去遭遇各种问题,再来学框架啊设计也许会更加深入一些。不遇到根本就不会产生那种共鸣,也就能背背书,背出来的东西不知道去哪里用。
转自:http://www.cnblogs.com/birdshover/archive/2008/11/26/1341568.html
很老的文章,现在再读读,很感触。很有意思,各位觉得呢?