Java和Web应用开发:太多的抽象会是坏事么?

RedMonk的分析师Michael Coté写了一篇长文,在文章中,他把Java Web应用开发和用Rails和Django这种把构建web应用的思想与其本身的设计理念紧密结合的框架所进行的Web开发进行了对比。这则评论源于Bill de hÓra的博客上一篇文章中的内容:

……我觉得在Java世界里有很多框架——比如JSF或者Struts 1.x——都把Web看成了使用软件模式来解决的问题。它们的目的就是把Web扔到一边,回到中间件上去。但是像Django或Rails这样的框架就是为了Web而生的,与内部企业应用的集成根本就不是它们准星瞄准的对象……

Coté接着又用略带辛辣的口吻描述了一个典型的Java Web应用的抽象级别。他的观点概括如下:

接下来,Coté确实还是承认诸如文件系统、排序算法和容器框架这些抽象对于Java是非常有用的,但他总体的想法则是:

  • 在写好你自己的抽象层以后,在本质上你也就写好了一个自己的框架雏形。但如果你不是一个好的框架开发者,那这个框架用起来就很难受,更新一两个版本以后你就会意识到这一点,然后把它重写。
  • 新的框架和构建应用的方式会层出不穷(Web应用,集群,Ajax,移动访问等),而它们很难直接与你的抽象层中的表达方式、惯用法和期望相对应。这个时候,你就会感到脑子快要炸开,因为你想做的新东西全都死死的绑在了你的抽象层上。
  • 按照Bill的想法,你所做出来的框架基本没啥用处的原因就在于你总是想要完全用上你所抽象出来的东西,却不管这会使你付出多大的代价;或者继续做进一步的抽象,让它变得更加难用。

他认为,使用LAMP、Ruby和Django等技术的程序员就是认为自己是在构建Web应用的,而Java程序员在心底总是觉得自己是在构建一个应用,只是碰巧这个应用中包含有一个Web“视图”而已。

查看英文原文:Java and Web Application Development: Is Too Much Abstract A Bad Thing?

你可能感兴趣的:(Java和Web应用开发:太多的抽象会是坏事么?)