可能挑战Java开发优势的四种技术

发表于:2008-4-15 13:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:静水流深    来源:静水流深的博客

分享:

2。Continuation 服务
  Web编程绝对是个的灾难。在Java诞生十年后,我们仍旧不能构建一个使返回按钮正确的框架。Web应用是无国界的,所以Web应用会发展得更好。但是很难去构建无国界的应用,而我们现有的框架不能给与我们足够的帮助。你使用大多数Java的Web框架时,从根本上说,你构建了许多

  不相关的使用servlets或JSP技术的应用。然后通过手工保存对象来把他们集成起来,这些对象就是你需要的,用来暂时存储对象的会话。

  Continuation是语言的构造器,它可以使你快速存储某个线程的状态,过后执行这个线程。基于 Continuation的web框架总体上是通过模拟一个监控状态的应用来使web开发变得更为容易。当你的应用需要从用户那取得数据时,这种框架使用continuation来自动保存应用程序的状态。如果用户按下返回按钮或者通过浏览器的历史纪录回到以前的页面,应用程序可以重新读取一个continuation。

  基于continuation最好的框架是用动态语言来开发的。到目前为止,最健壮的框架是Seaside。他是基于一种Smalltalk的Squeak语言的框架。Seaside支持很好的调试功能,你可以实时检查、调试以及在浏览器里改动你的代码。Borges、Iowa和Wee都是基于Ruby且支持continuation的框架。

  Java不支持continuations,但是一些在特殊限制下构造的Java框架支持模拟continuations。这些框架具有用其他语言编写的continuations框架的某些特征。

  。流行的框架是用了一些高级的技术,如:字节码增强、反射以及特殊类的装载器。这些技术用Java部分地实现了continuations。

  。Cocoon 2在Rhino JavaScript 虚拟机中增加了continuations,用来模拟监控状态的应用。

  。Spring Webflow使用了状态机来提供对返回按钮良好的支持,以及其他一些continuation服务的特征。

  。Lakeshore使用了悬挂的线程来模拟continuations。这种方法不像其他方法一样有可扩展性,同时还缺乏对返回按钮完整的支持,但是这些预计在将来

  都会具有。

  每个月都会有新的框架出现。我认为在未来的三年内,我们都会使用支持基于continuations的方法的web开发框架,这种框架是由一种语言或者其他语言

  编写的。

  3.惯例超越配置

  Java开发者经常探索用于改进配置的方法。新的框架越来越多的使用Java 5批注来进行配置。其他的框架是用一种不同的方法。Rails中的Ruby常用惯例来推断需要在其他框架进行配置的联系。例如:在结束的时候,一个叫BlogController且有一个show方法的Rails控制器,会自动在blog_controller目录里提交一个叫show.rhtml的视图。Rails还使用命名惯例来绑定数据库表里持久化的类。默认情况下,Perosn类会与用英语的复数people与表进行匹配。

  新的框架将会支持惯例,而不是配置。

  4.元编程

  就像前面提到的一样,在Rails编程框架上的Ruby里,存在着许多hype的。我认为这种hype是正确的。在Rails上的Ruby让你比起java,可以在一个更抽象的层次上编写你的程序。有了Rails上的Ruby,你可以创建域对象,这种对象可以发现相关联的数据库表的内容。例如:你可以写这样简单的模型对象:

  class Person < ActiveRecord::Baseend

  这种类表面看起来相当的受限制。但是一旦你执行它,Rails就会展现它的神奇。这种实现了持久化Rails的活动纪录框架与相关的数据库关联,以及为了表定义扫描系统表,还发现数据库里列项。然后,活动记录为数据库中的每一列增加一个属性,为数据库中id列名在类中增加一个独一无二的标示符。你可以用下面的类去编写代码:

  person=Person.newperson.name='Bruce Tate'person.email='bruce.tate@j2life.nospam.com'person.save

  数据库的列名和行为都会在运行时后加入Person类。你可以很容易的扩展Person类:

  class Person < ActiveRecord::Base has_many :carsend

  通过Ruby中一个belongs_to的简单方法和:department标示符,我实现了所有我想做的。活动记录隐式调用了Ruby的元编程来添加了所有的方法和变量,这些方法和变量用来管理一个任何一个部门之间的一对多关系。Rails用户使用域语言来管理像继承这样的关系,另外可以用Ruby语言在一个更抽象的层次上工作。Rails无缝扩展了Ruby语言。

  Rails会不会是下一代伟大的框架?有可能。要做一个选择的话,Rails应该会是在使用Ruby或是其他动态编程语言的元编程框架潮流中的第一个。或者,你可能看到Rails会作为某些松散对齐技术的中枢,它是以元编程作为基础的。在任何情况下,你都会更有效率。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号