为什么主流Java MVC框架如此难以使用
发布: 2009-6-26 08:46 | 作者: soft | 来源: 青软培训-踏踏实实育人-勤勤恳恳奉献
使用j2ee web开发已经好几年了,从jsp、struts、webwork到现在的struts 2、wicket,没有一个用起来简单顺手的。
无论哪个框架吹嘘自己有多么简单和高效的生产力,甚至让一个从未接触过web开发的人5分钟能上手,绝对是骗人的。照着教程做一个hello world还可以,一旦网站规模一大,根本无法维护。
再深入挖掘一下,你会发现,其实一个mvc框架无论服务器端设计有多么差,其实也差不到哪去,有面向对象经验的开发人员都可以写出比较能维护的代码,即便像struts这种比较古老的框架,服务器端开发也不难,和webwork2比仅仅是不方便而已。
但是到了view这一层就五花八门了,总体来说,有以下几路主流门派:
1. 以struts为代表的jsp + tag派,真叫一个难用,尤其是tag,不但要查手册,你还必须写出if equals ... else的逻辑来。
2. 以jsf为代表的全tag派,基本上写一个jsp和一个xml没啥区别,都是tag堆出来的,甚至变态到html元素都给tag了,比如<h:div>。
3. 以wicket为代表的嵌入式派,可以通过来搞定,不破坏html,不过通过filter过滤性能值得怀疑。
无论哪种mvc框架,目的都是要简化view的开发,然而在实际使用时却发现,简化了简单的页面,复杂页面却变得更复杂了,因为这些mvc框架都普遍忽视了一个基本原理:现代web技术是建立在html+css+javascript基础上的,任何试图帮助java开发者隐藏html、css和javascript的努力最终都将阻碍web开发。不会html,不会css,不会javascript,那就不要做web开发,无论你多么精通java!
正是由于这些mvc框架有意无意地让java开发人员远离html,才造成了view开发的困难重重。尤其以jsf为代表,性能就不说了,要添加javascript你只能先看编译后的html源码,要修改css要debug至少n次,所有的可视化html编辑器都用不了。
所以,要真正提高web开发的生产力,尤其是页面的可维护性,web页面必须由精通html+css+javascript的开发人员完成,服务器端技术对这些的侵入性越小,页面越容易维护。目前我认为比较好的view框架还是velocity和freemarker,通过${message}比jsp tag强很多,结合html可视化编辑器(主要指dreamwaver),调试起来非常方便,而且不用重启服务器。至于服务器端,其实各mvc大同小异,我一直使用spring mvc+velocity,少集成一个框架毕竟麻烦少一些。
本文来自csdn博客,转载请标明出处:http://blog.csdn.net/asklxf/archive/2009/06/25/4297517.aspx
无论哪个框架吹嘘自己有多么简单和高效的生产力,甚至让一个从未接触过web开发的人5分钟能上手,绝对是骗人的。照着教程做一个hello world还可以,一旦网站规模一大,根本无法维护。
再深入挖掘一下,你会发现,其实一个mvc框架无论服务器端设计有多么差,其实也差不到哪去,有面向对象经验的开发人员都可以写出比较能维护的代码,即便像struts这种比较古老的框架,服务器端开发也不难,和webwork2比仅仅是不方便而已。
但是到了view这一层就五花八门了,总体来说,有以下几路主流门派:
1. 以struts为代表的jsp + tag派,真叫一个难用,尤其是tag,不但要查手册,你还必须写出if equals ... else的逻辑来。
2. 以jsf为代表的全tag派,基本上写一个jsp和一个xml没啥区别,都是tag堆出来的,甚至变态到html元素都给tag了,比如<h:div>。
3. 以wicket为代表的嵌入式派,可以通过来搞定,不破坏html,不过通过filter过滤性能值得怀疑。
无论哪种mvc框架,目的都是要简化view的开发,然而在实际使用时却发现,简化了简单的页面,复杂页面却变得更复杂了,因为这些mvc框架都普遍忽视了一个基本原理:现代web技术是建立在html+css+javascript基础上的,任何试图帮助java开发者隐藏html、css和javascript的努力最终都将阻碍web开发。不会html,不会css,不会javascript,那就不要做web开发,无论你多么精通java!
正是由于这些mvc框架有意无意地让java开发人员远离html,才造成了view开发的困难重重。尤其以jsf为代表,性能就不说了,要添加javascript你只能先看编译后的html源码,要修改css要debug至少n次,所有的可视化html编辑器都用不了。
所以,要真正提高web开发的生产力,尤其是页面的可维护性,web页面必须由精通html+css+javascript的开发人员完成,服务器端技术对这些的侵入性越小,页面越容易维护。目前我认为比较好的view框架还是velocity和freemarker,通过${message}比jsp tag强很多,结合html可视化编辑器(主要指dreamwaver),调试起来非常方便,而且不用重启服务器。至于服务器端,其实各mvc大同小异,我一直使用spring mvc+velocity,少集成一个框架毕竟麻烦少一些。
本文来自csdn博客,转载请标明出处:http://blog.csdn.net/asklxf/archive/2009/06/25/4297517.aspx




