注意是WEB应用不是企业应用。所以敏捷重要,逻辑分层不重要。
这其实就是ROR的方向。
在这个方向上,WEBWORK不是终点,HIBERNATE也不是终点。
而且,绝对不是因为“JAVA不是ROR,所以简化不到那个程度”
当然语言特性是没有办法了,好歹我牺牲了语言便利性,但是我赢得了IDE支持和工业强度的鲁棒性,也算聊胜于无。
之前有几轮讨论,争论到JAVA不能热部署。热部署重要么?TOMCAT都支持自动检测代码更新重部署了。
但是为什么WEB应用开发还是那么烦人?因为太多东西塞到web.xml里头去了。
HIBERNATE的映射,动不动就二三十秒,我改点东西就要二三十秒(如果是大东西能上一分钟)才能看到结果,如何敏捷的起来?WEBWORK也有映射配置,虽然载一遍没那么慢,但是……WEBWORK为何要搞映射?我在ACTION里面指定具体渲哪个VIEW难道会死?何必非要拉出来攒一个XML等着重启的时候读映射?
我觉得理想的JAVA架构,其WEB部分和ORM部分,都应该是无配置的。数据源你配一下,其它的就别管了。
应用跑的时候,随用随把相关的类抓出来实例化,用三个表就三个dao,用五个就建五个,或者你高兴每次直接把全部10个表的service都实例化一遍都无所谓,用不着可怜巴巴的配一个个bean小心翼翼的供到spring里头等着用到的时候拿出来,咱们还省那点儿内存那点CPU么?
这其实就是ROR的做法。我以为ROR出来之后JAVA世界会幡然醒悟,结果半年过去了,没多大变化,web.xml里头还是那么臃肿。
理想的这种WEB架构,在web.xml里面配一把controller所在的包路径,model所在的包路径,再加上数据源就足够了,然后放上一个servlet开跑,重启时间不会超过1秒,再也没有其它的xml或者properties需要搭理了,无论是开发还是测试都嗖嗖的。
这样下去,webwork可以推倒,用一个简单一万倍的servlet来替换,HIBERNATE很好,只是你得改成用到哪个MODEL的时候再用反射重装一遍元数据。至于SPRING,咱们可以白白了,你还是继续去服务J2EE这个很复杂很有前途的高级领域吧。
这其实就是ROR的方向。
在这个方向上,WEBWORK不是终点,HIBERNATE也不是终点。
而且,绝对不是因为“JAVA不是ROR,所以简化不到那个程度”
当然语言特性是没有办法了,好歹我牺牲了语言便利性,但是我赢得了IDE支持和工业强度的鲁棒性,也算聊胜于无。
之前有几轮讨论,争论到JAVA不能热部署。热部署重要么?TOMCAT都支持自动检测代码更新重部署了。
但是为什么WEB应用开发还是那么烦人?因为太多东西塞到web.xml里头去了。
HIBERNATE的映射,动不动就二三十秒,我改点东西就要二三十秒(如果是大东西能上一分钟)才能看到结果,如何敏捷的起来?WEBWORK也有映射配置,虽然载一遍没那么慢,但是……WEBWORK为何要搞映射?我在ACTION里面指定具体渲哪个VIEW难道会死?何必非要拉出来攒一个XML等着重启的时候读映射?
我觉得理想的JAVA架构,其WEB部分和ORM部分,都应该是无配置的。数据源你配一下,其它的就别管了。
应用跑的时候,随用随把相关的类抓出来实例化,用三个表就三个dao,用五个就建五个,或者你高兴每次直接把全部10个表的service都实例化一遍都无所谓,用不着可怜巴巴的配一个个bean小心翼翼的供到spring里头等着用到的时候拿出来,咱们还省那点儿内存那点CPU么?
这其实就是ROR的做法。我以为ROR出来之后JAVA世界会幡然醒悟,结果半年过去了,没多大变化,web.xml里头还是那么臃肿。
理想的这种WEB架构,在web.xml里面配一把controller所在的包路径,model所在的包路径,再加上数据源就足够了,然后放上一个servlet开跑,重启时间不会超过1秒,再也没有其它的xml或者properties需要搭理了,无论是开发还是测试都嗖嗖的。
这样下去,webwork可以推倒,用一个简单一万倍的servlet来替换,HIBERNATE很好,只是你得改成用到哪个MODEL的时候再用反射重装一遍元数据。至于SPRING,咱们可以白白了,你还是继续去服务J2EE这个很复杂很有前途的高级领域吧。