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函數庫
我會開始尋求合作者,共同開發
目前項目貢獻者情況?其他開發者如何參與?
開源沒多久。目前就我一個人維護。不過已經應用于公司內部的一個項目,所以大家不用擔心使用性。當然如果真的要用,我建議先用在小項目中。
原文轉自:http://www.anti-gravitydesign.com