这段时间,发现 "play" 这个名字多次出现,看介绍说是"纯java ,动态编译,运行速度快,开发效率高 ..."(详情参见"Play! 一个Rails-like的Java框架
","Play with Play! - 框架概要
")终于按奈不住挑逗,于是抽了一个晚上到它网站上逛了一圈.终于识破了它那掩藏在虚假漂亮外衣下的本来面目,play 漂亮的外衣就不说了,已经有很多溢美之词.说说它的问题.
controller 的问题
controller 被设计成为类中的静态方法.这使得controller丧失了oo语言平台的种种优点,换句话说--直接自宫.过度使用静态方法有什么问题?这方面有很多资料.例如("The Essence of OOP using Java: Static Members
","Static Methods are Death to Testability
").
在"play" 的宣传册 "Five cool things you can do with Play!
" 中有一条:
"Bind an HTTP parameter to a Java method parameter"
这句是废话,在控制器中访问经过转换的http参数是一项最基本的要求,例如struts2 直接转换成为controller 的 property
play 的控制器被设计为静态方法,所以http参数就只能以方法参数传入,没有这一点,这个框架根本不能用,而不是什么"cool things"
组件模型的问题
组织代码只有两种选择, controller, model.
controller:
如果想用controller? 考虑下如何用类的静态方法组织代码---这不是变成过程语言了吗?你真的很想用过程语言来组织你的业务逻辑?
model:
play 的 model很明显是充血模型,关于贫血模型和充血模型哪一种更好,已经浪费了很多口水,这里就不在赘述.这里的问题是play 根本不提供第三种组织代码的手段(service),那么一旦出现某项业务逻辑操作多个领域对象的情况,这些代码应该放在哪里?
另外有一项限制更绝:
"Does not keep any object into the Java heap for multiple requests"
这个要求把play的应用从第三方的类库中隔离开来.意味着你使用其它类库之前要考虑下是不是满足这条要求(估计多数情况下不会满足)再好好想想,你真的能保证永远不再用第三方类库了吗?
事务管理的问题
事务,对企业应用的重要性就不必多说了.spring 能够如此popular的一个重要原因也正是它把强悍的事务管理以简单的pojo的方式提供给应用开发者.其它web 框架无有不提供和spring 集成的手段, play 为什么漠视spring? 还是由于 "Does not keep any object into the Java heap for multiple requests"
非j2ee stack
难以在主流市场上获得认可。
综上所述: "play" 在设计上有重大缺陷,现阶段只是个玩具(正如项目的名称一样)
分享到:
相关推荐
Play框架是一款基于Java的全栈Web开发框架,它的设计理念是帮助开发者使用最小的配置和编码来构建高性能、可扩展的Web应用。本手册将详细介绍Play框架的核心概念、安装配置、项目结构、基本使用和高级特性。 **一....
Play框架是一个开源的Java和Scala应用开发框架,它遵循模型-视图-控制器(MVC)架构模式。Play强调简洁的代码和实时反馈,使得开发过程更为高效。...这将对理解Play框架的工作原理及其在实际项目中的应用大有裨益。
Play框架中文文档.pdf
JAVA PLAY框架入门学习手册 Java PLAY框架是基于Java语言的Web应用程序框架,旨在提高Web应用程序的开发效率和可维护性。下面是Java PLAY框架的入门学习手册,涵盖了框架的主要概念、目录结构、请求生命周期、HTTP...
Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(Model-View-Controller)设计模式,旨在简化Web开发过程。它强调代码即路由、轻量级、快速开发和可测试性,使得开发者能够更加专注于业务逻辑,而不是底层...
play框架 2.1 api
Scala Play框架是一款基于Java和Scala的开源Web应用框架,它以简洁、高效和模块化著称,被广泛用于构建现代的、反应式的Web服务。在Play框架中,sbt(Simple Build Tool)是默认的构建工具,它允许开发者管理项目...
Play框架是Java领域的一款轻量级、开源的Web应用框架,它基于MVC(Model-View-Controller)架构模式,提供了简洁的API和强大的工具,使得开发者能够快速地构建高效、可测试的Web应用程序。本项目是针对初学者设计的...
play框架的搭建步骤,是我自己学习的总结
Play框架是一款基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提供高效、简洁且快乐的开发体验。这个资源包含了一系列用于搭建Play框架的jar包,这些jar包是开发Play应用程序所...
Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(模型-视图-控制器)设计模式。它强调简洁的代码结构和开发效率,同时提供了对AJAX的强大支持,使得开发者可以轻松创建交互式的、响应式的Web应用程序。在本...
Play框架是一种基于Java的轻量级、高性能的Web应用程序开发框架,特别注重开发效率和敏捷开发。它采用了无状态的MVC架构,支持RESTful设计原则,使得HTTP请求可以直接映射到代码,避免了通过Servlet等中间层的复杂性...
此资源是整个play框架外加一个helloworld小例子,下载解压到文件夹中可以直接进行play框架开发。
《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...
Play框架以其模块化结构、异步I/O模型和对RESTful架构的支持而备受青睐。 1. **用户注册功能**: 用户注册是任务管理系统的基础,允许个人创建账户以进行任务管理。这一功能通常包括输入用户名、密码、电子邮件等...
### Play框架核心概念详解 #### 一、Play框架与MVC模式 Play框架是一款轻量级、高效的Java和Scala Web开发框架,它基于MVC(Model-View-Controller)架构模式设计,旨在简化Web应用程序的开发流程。MVC模式将应用...
Play Framework 是一个流行的Java web应用框架,它提供了一种简洁、高效的开发模式。在Play框架中,Java Persistence API (JPA) 是用于处理对象关系映射(ORM)的一个组件,使得开发者可以方便地将Java对象与数据库...