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