ServiceFramework 目前采用的是字节码增强的方式。应用启动时会自动增强模型类。

  我也可以直接用Rails(或者基于JVM的jRuby、Grails),为何还要使用这个框架?

  如果你想用Java,并且想获得类似Rails的敏捷开发效率,那么用ServiceFrameowrk。

  转换语言需要考虑很多问题。比如Rails是多进程模型,而Java项目通常是单进程多线程的。并且Ruby VM 和 JVM 在性能、健壮性、监控、GC等各个

  方面还是有差距的。至于JRuby、Grails等基于JVM上的语言,和原生Java的整合并不如想象中的那么完美。

  对于一般的互联网应用,如果你能够采用脚本语言,建议优先考虑Ruby(CRuby),接着Groovy,然后JRuby。

  和其他框架(如Play)相比,ServcieFramework有什么优势或独特之处?

  应该说ServiceFramework得到Play的很多启发。Play是一个的Java MVC框架。Play优于ServiceFramework的地方自然很多。

  个人觉得ServiceFramework不同于Play的地方:

  Play简单的引入JPA,当然提供了一些比较有意义的便利方法。而ServiceFramework完全简化了JPA,操作起来和ActiveRecord差不多。

  Play的Query Interface简单引入EBean,但是EBean完全是个静态语言的折中产物。

  ServiceFramework对C层的Filter做过重新设计,非常好用。

  为什么希望项目定位于移动互联网后端开发?

  从名字看出,这是一个写后端服务的框架。高效、敏捷符合移动互联网对快速开发的要求。并且能够获得Java社区带来所有好处。

  ServcieFramework并不适合企业开发,企业开发有点过于复杂,而且我也没有做过企业方面的开发。今后ServiceFramework 的roadmap 也是继续强化对移动互联网的开发支持。目前我在咨询一些做app后端的朋友,看如何简化他们的开发。

  ServcieFramework的学习成本?

  通常情况下,你只要把ServiceFramework页面的README看完行了。

  接着 `git clone git://github.com/allwefantasy/ServiceFramework.git`,可以添加controller、model,着手开发项目了。

  基于什么开源协议?在项目中使用ServcieFramework应该注意哪些方面?

  GPL 2.0开源协议。

  ServiceFramework为了一个具体需求而诞生的,所以并不是适合所有的项目。只针对特定领域的需求。比如移动互联网后端服务的开发很适合使用ServiceFramework。

  建议留意README中的一些提示。我这里重点提示几点,在目前这个版本下:

  不要在旧项目中使用

  要遵循约定

  目前还不能放到标准的web容器比如tomcat、weblogic等。

  估计看到第三点很多人会嘀咕了。其实目前的设计可以极大的简化你的部署流程。git clone到服务器上,接着运行./run.sh 脚本即可。性能方面大可不必担心,不会低于tomcat、weblogic等容器。另外建议你留意一下run.sh中Xmx等虚拟机参数。

  该项目未来的发展计划?

  未来会根据使用情况来进行功能修补增强。下一步计划,我可以预见到的是:

  隔绝ServiceFramework本身的依赖。也是你看不到框架本身对第三方jar的依赖

  为模型类提供更多的自生成方法

  开始填补之前的仿PHP函数库

  我会开始寻求合作者,共同开发

  目前项目贡献者情况?其他开发者如何参与?

  开源没多久。目前我一个人维护。不过已经应用于公司内部的一个项目,所以大家不用担心使用性。当然如果真的要用,我建议先用在小项目中。