两种不同的Web应用

对于今天火炬说Donews Blog将换用WordPress的事后,令狐提出了一个技术方面的问题,我们就此讨论了一番:

令狐:我倒是不关心WP好不好,而是觉得一些人(也许包括我)对于“Web应用”这一概念是不是应该反思一下了。

猛禽: web应用有很多种

令狐:首先应该想一想Java和.NET给我们带来了什么好处。最大的一个好处是:将UI、业务和存储分离,将基础设施和具体应用分离。这个分离带来的好处是,有利于复杂业务逻辑的开发,有利于在不改动逻辑的情况下对UI和存储部分进行调整。

猛禽: 这也就是企业应用与互联网应用的不同之处

令狐: 那么现在的问题是,企业应用,毫无疑问,是需要解决这些复杂的逻辑的。但是,基于互联网的应用呢?他们是不是真的需要这样复杂呢?

猛 禽: 企业应用中,持久化和UI层相对较薄,而逻辑层最重, 但互联网应用的特点是UI层最重,逻辑层很薄。在多数情况下,互联网应用的逻辑可以分散到持久化和UI中。另一方面,两种应用面向的用户群不同。企业应用 的用户数量有限,但操作频繁。互联网应用的用户数量巨大,但操作不多。

令狐:是的。这就是为什么Ajax在互联网应用中大受欢迎,而很多Javaer并不以为然的原因。(WebWork的作者就认为Ajax没什么用)

猛禽: 是的,Ajax的优势就在于它大大提高了UI方面的开发能力,而这一点对于企业应用来说,用处不大。

令 狐:对。所以像豆瓣选择用quixote这样的框架是很成熟的表现。因为对于一个互联网应用来说,性能是一个很重要的方面,而能不能做到页面分离,反而并 不那么重要。因为很多情况下,把真正的业务逻辑剥离出来之后,可能发现没多少东西(比如豆瓣,实际上通篇都是查询,查询再查询),为了这样一点东西使用良 好的层次分离,而导致性能下降的话,是很不划算的。以前我想不通,现在想通了。