Java应用级产品开发平台APDPlat作者杨尚川专访
APDPlat是Application Product Development Platform的縮寫,即應用級產品開發平臺,可以幫助你快速開發基于B/S多層架構的信息管理系統。而對于Java初級開發者,也能從APDPlat中學到眾多的架構設計原則及編碼技巧。
項目官網:http://apdplat.org/
在線Demo:http://apdplat.net/(用戶:admin? 密碼:admin)
?
?
為了使大家對APDPlat有進一步的了解,本期我們采訪了APDPlat的作者楊尚川。
?
歡迎大家推薦更多開源項目給我們,支持中國的開源項目發展,如果您和您的團隊希望展示創業理念和有趣之處,或者有朋友正在創造這樣的價值,請聯系我們,發信到blog@csdn.com即可。
?
先來個自我介紹吧!
?
我叫楊尚川,從2005開始就一直從事Java開發。2010年開始NUTCH相關框架的研究,目前為獨立咨詢顧問,專注于大數據、搜索引擎等相關技術。
?
?
APDPlat是什么?有哪些功能?
?
APDPlat是Application Product Development Platform的縮寫,意為應用級產品開發平臺。
作為應用級產品的開發平臺,APDPlat提供了應用容器、多模塊架構、代碼生成、安裝程序、認證授權、備份恢復、數據字典、web service、系統監控、操作審計、統計圖表、機器綁定、防止破解、數據安全、內置搜索、數據轉換、maven支持、WEB組件、內容管理等功能。
開發這個項目的初衷是什么?為什么會選擇開源?
?
2008年我發起這個項目,最初的目的是為了方便自己做項目,之后一直持續重構,持續改進,特別是對簡潔的追求。目前APDPlat只有不到一萬五千行Java代碼,其中還有很多代碼是工具類或是為擴展做準備的代碼。
2010年以后,我主要從事NUTCH相關的研發工作,而且APDPlat已經相對成熟,所以2012年我選擇將APDPlat在GitHub上面開源,希望能吸引更多的開發者,注入新鮮的血液,同時也希望以碼會友,共同交流。
?
APDPlat的實現原理是什么?采用了哪些技術和框架?
?
APDPlat底層幾乎全部采用Java開源框架,對Spring、Struts2、Compass做了定制修改,接管了系統啟動和關閉的控制權,統一了配置文件,并實現了諸多平臺級的功能,為應用級產品開發鋪平了道路。
對于一個平臺來說,講究成熟穩定,功能豐富,因此需要眾多的框架來支持,而不是去重新發明輪子。APDPlat用到的開源框架主要有:
- Web前端采用EXT JS
- 前端控制器采用Struts2
- IOC容器采用Spring
- ORM采用JPA,默認實現是Hibernate
- 內置搜索采用Compass,擴展方案采用Solr
- 認證授權采用SpringSecurity
- 代碼生成采用Freemarker
- 日志組件采用SLF4J
- 調度組件采用Quartz
- 驗證碼采用Jcaptcha
- Web Service采用CXF
- SQL監控采用P6SPY
- JS和CSS壓縮采用YUI Compressor
- JAVA代碼混淆采用Allatori
- 獲取系統信息采用Sigar
- 單元測試采用JUnit
- 配置文件加密采用Jasypt
- 緩存采用EhCache或是Memcached
- 數據庫連接池采用CommonsDBCP
- Office文檔操作采用POI
APDPlat的目標用戶及定位是什么?
?
APDPlat的目標用戶是廣大的Java工程師。
因為APDPlat是基于眾多Java開源框架的,所以沒有扎實的Java功底是駕馭不了的。對于Java的入門者或是初級工程師來說,可以把APDPlat當成一個案例來學習。只有熟練掌握Java技能的工程師才能使用APDPlat做到“快速開發”。
APDPlat并沒有提供可視化的建模環境,所以它不是“針對業務人員的快速開發平臺”。
?
與同類型的開發平臺相比,你認為APDPlat的優勢或特色是什么?
?
對于同類型的開發平臺,我所知甚少,很難比較。
在我看來,APDPlat開箱即用,默認提供的功能不需修改立即可用,尤其適合研發能力相對薄弱的微小企業以及工作室。
?
APDPlat的性能如何?
?
混淆優化JAVA代碼,并使用“懶加載”以及“緩存”技術,Java代碼的性能表現優異。
壓縮優化CSS和JS,并啟用HTTP、GZIP以及瀏覽器緩存,Web前端的性能也表現優異。
?
有沒有統計目前采用APDPlat平臺開發的應用有多少?有哪些典型應用?
?
在GitHub開源后,目前APDPlat已經被Fork了170多次,至于用戶開發了哪些應用,我還沒有得到反饋。就我自己來說,典型應用主要是B/S架構的管理信息系統。
?
如何基于APDPlat快速開發?
?
要想基于APDPlat實現快速開發,需要閱讀APDPlat? Wiki,并有兩個前提:
一是需要對JPA有深入的理解
二是需要對EXT JS有深入的理解。
?
目前APDPlat的開發團隊有幾個人?如何參與貢獻?
?
APDPlat正在招募開發隊員,目前的開發主要是我一個人。
在GitHub上面Fork APDPlat,增加功能或是BUG修復之后,使用GitHub的Pull Request可參與貢獻。
?
APDPlat的開源協議是什么?你對開源怎么理解?你如何看待國內的開源環境?
?
APDPlat采用Apache License Version 2.0作為開源協議。
開源的項目更讓人放心,因為它公開、透明、安全、可控。參與開源項目需要持續地投入時間與精力,要有奉獻與協作精神。
目前國內具有開源精神的人還不是很多,大家對如何使用開源項目很熱衷,而參與開發的就少了。
?
APDPlat的未來發展計劃?
?
APDPlat將來要加入工作流、Android客戶端、安裝程序、完善現有的功能、BUG修復。
?
另外,你還推出了一套Nutch相關框架視頻教程,你對想學習Nutch的同學有什么建議?
?
《Nutch相關框架視頻教程》是一系列的視頻教程,詳細講解了跟Nutch相關的框架,這些框架主要有Lucene、Hadoop、Solr、Tika、Gora、HBase等,其中Nutch是網絡爬蟲、Lucene是全文檢索工具包、Hadoop是分布式存儲與計算、Solr是搜索服務器、Tika是內容分析工具包、Gora是ORM的大數據版、HBase是基于Hadoop的分布式數據庫,都是Java開源框架。
作為一個Java工程師,這些技術我相信大家都有所耳聞,尤其是Lucene,幾乎可以應用到帶有搜索功能的所有項目中。Solr基于Lucene,提供了更多的企業級特性。Tika可以從各種不同的文檔中提取元數據和結構化文本內容。Nutch從一開始的搜索引擎演變為如今的網絡爬蟲,在進化過程中,產生了Hadoop、Tika和Gora三個項目,如今這三個項目都發展迅速,極其火爆,尤其是Hadoop,其已成為大數據和云計算的代名詞。
我希望這套視頻能對學習的同學起到拋磚引玉的作用,激發大家學習大數據、搜索引擎的熱情。
?
總結
以上是生活随笔為你收集整理的Java应用级产品开发平台APDPlat作者杨尚川专访的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phonegap jQuerymobil
- 下一篇: Java之美[从菜鸟到高手演练]之Arr