前几天了解了下Play这个框架. 原本1年前就对java web已经死心了的我,又有点重找回信心了.
不想去回忆java做web开发的痛苦了,框架间乱七八糟的组合,有无意义暂且不说,一个简单的增删改查,光写类就要写N个,出了错还得一个个debug过来.痛苦啊!所以年前就“背叛”Java 加入python阵营了. 用python做web真是优美,而且快速简单.至于很长时间对struts,webwork这种框架有点恶心.
感觉java除了高性能应用外,在web上简直就是糟糕透顶了. 然而不久前一次偶然的机会,让我了解了Play,彻底打破了我的想法,原来java也可以敏捷.也可以像python那样精简,快速.
这几天研究,做了官网上的Yabe例子,当然没做完(admin CRUD对现实意义不大),总结了下面几个优点:
- 自动编译,无需重启. 个人最欣赏的地方,总算可以摆脱一修改代码就要重启服务器的窘境了,事实上在调试阶段,重启服务器的时间远远大于修改代码所需的时间,时间大大浪费在毫无意义的等待上面了.
- 优美的URI映射. 貌似大部分敏捷框架,都在这里大下功夫.根据不同的URI,自动映射到不同的view层,别拿struts这种恶心人的uri映射来比,敏捷的uri映射更加灵活,更加强大.
- 简单的MVC层次. 不知道哪位规范了MVC模型,心意是好的,但是国内大部分web应用都瞎套了MVC,总之,我感觉struts之流引入MVC的概念不是简化了开发,而是大大增加了工作量,什么dao,daoimpl,server,serverimpl,view… 要多细可以写多细,然后我们自己问自己,真的有必要这么’细致’吗?敏捷告诉我们答案,mvc可以如此简单. Web技术的核心就是 “提交表单,操作数据库”.
- 强健的模板语言. 总所周知,一般java运用主要采用freemwark这种模板框架,究其原因还是JSTL这种标签表现力不够丰富,不够灵活,很难满足一般应用的需要.play模板语言重复吸取了ror,django这种脚本语言框架. 到处可以看到ror的影子.这点说不清楚,大家自己实际看一下就能明白,play的模板是多么的敏捷.
- Model. 最后写这点,因为这点也是java作为静态语言的无奈,不可能像python这样做成完美的充血模型,Play的model是基于JPA规范,也模仿动态语言写了增删改查的常见方法,但说到底这些都不是很好. Model也是个人觉得比较遗憾的地方了.
以上是这几天闲暇之余查看Play文档和做些例子的一些感受和想法. 粗浅的地方还望大家指正.
近期评论