JavaEye的資深會(huì)員downpour發(fā)起了開源項(xiàng)目LightURL。首先讓我們了解一下LightURL:
背景:Struts2已經(jīng)日益成為Web層比較主流的開發(fā)框架,它來源于Webwork2,是一個(gè)非常優(yōu)秀的MVC框架。在Webwork2設(shè)計(jì)之處,Annotation和Ruby on Rails還沒有像現(xiàn)在那么火,所以整個(gè)框架在配置方面還是沿用了Web框架慣用的XML作為主要的配置方式。
隨著時(shí)代的發(fā)展,對(duì)于Web程序員來說,如何簡(jiǎn)化配置成了一個(gè)很重要的課題。在這方面,Struts2也有一些探索。在Struts2的官方網(wǎng)站上,我們可以找到一些優(yōu)秀的plugin來做這些工作:codebehind-plugin,smarturls-plugin.
LightURL的目的是為了吸取這些優(yōu)秀的plugin的優(yōu)點(diǎn),并支持更方便的配置方式。
downpour 是一位資深的Java開發(fā)者和優(yōu)秀開源開發(fā)者,寫了大量很多的技術(shù)文章,比如《忘記李剛,一步一步跟我學(xué)Struts2 系列》,JavaEye非常榮幸的采訪了他。
downpour 博客:http://downpour.javaeye.com/
歡迎大家推薦更多開源項(xiàng)目給我們,支持中國(guó)的開源項(xiàng)目發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。
背景:Struts2已經(jīng)日益成為Web層比較主流的開發(fā)框架,它來源于Webwork2,是一個(gè)非常優(yōu)秀的MVC框架。在Webwork2設(shè)計(jì)之處,Annotation和Ruby on Rails還沒有像現(xiàn)在那么火,所以整個(gè)框架在配置方面還是沿用了Web框架慣用的XML作為主要的配置方式。
隨著時(shí)代的發(fā)展,對(duì)于Web程序員來說,如何簡(jiǎn)化配置成了一個(gè)很重要的課題。在這方面,Struts2也有一些探索。在Struts2的官方網(wǎng)站上,我們可以找到一些優(yōu)秀的plugin來做這些工作:codebehind-plugin,smarturls-plugin.
LightURL的目的是為了吸取這些優(yōu)秀的plugin的優(yōu)點(diǎn),并支持更方便的配置方式。
downpour 是一位資深的Java開發(fā)者和優(yōu)秀開源開發(fā)者,寫了大量很多的技術(shù)文章,比如《忘記李剛,一步一步跟我學(xué)Struts2 系列》,JavaEye非常榮幸的采訪了他。
downpour 博客:http://downpour.javaeye.com/
歡迎大家推薦更多開源項(xiàng)目給我們,支持中國(guó)的開源項(xiàng)目發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。
采訪LightURL開源項(xiàng)目作者downpour 
JavaEye:1. hi,downpour 你好,非常榮幸能夠采訪你。你能介紹一下LightURL開源項(xiàng)目嗎?
downpour : LightURL是一個(gè)Struts2的插件,通過使用這個(gè)插件,能夠極大的簡(jiǎn)化Struts2的配置。從更深的意義上說,我也希望通過LightURL的使用,能夠使得程序員更加慎重的去思考表示層的代碼的規(guī)劃以及URL地址的合理規(guī)劃。從理念上,使得整個(gè)表示層更體現(xiàn)出它的價(jià)值。
JavaEye:2.你為什么要開發(fā)LightURL項(xiàng)目呢?出發(fā)點(diǎn)和希望解決的問題是什么?
downpour: Struts2是我在平時(shí)開發(fā)中經(jīng)常使用的一個(gè)表示層框架,在使用的過程中,發(fā)現(xiàn)其配置非常繁瑣。所以最初的目的是為了能夠少寫很多配置文件從而提高開發(fā)效率。后來在使用的過程中,我逐漸發(fā)現(xiàn),這個(gè)項(xiàng)目最終不僅簡(jiǎn)化了配置,同時(shí)規(guī)范了許多表示層的開發(fā)習(xí)慣,使得很多代碼能夠自然而然的放到其應(yīng)該存在的地方去。
JavaEye:3.LightURL主要有哪些特點(diǎn)呢?相比同類型的項(xiàng)目有什么優(yōu)勢(shì)呢?
downpour:通過插件方式來簡(jiǎn)化Struts2配置的開源項(xiàng)目有很多,在Struts2的官方網(wǎng)站上,我們可以找到一些優(yōu)秀的plugin來做這些工作:http://cwiki.apache.org/S2PLUGINS/codebehind-plugin.html 和 http://cwiki.apache.org/S2PLUGINS/smarturls-plugin.html 。在Struts2.1.6的版本之后,自帶了一個(gè)convention-plugin,幾乎囊括了所有簡(jiǎn)化配置方面的精華。
而LightURL本身吸取了上面3個(gè)提到的插件的優(yōu)點(diǎn),并且在此基礎(chǔ)上提出了URLTemplate的Annotation配置方式以及Command方式的ResultCode這兩大特色。這兩點(diǎn)分別解決了表示層需要進(jìn)行配置的兩個(gè)不同的方面:URL映射Action類以及Action轉(zhuǎn)向到視圖層。所以要說到LightURL最大的優(yōu)勢(shì),應(yīng)該說在于它是市面上所有的Struts2簡(jiǎn)化配置的方案的集大成者,同時(shí)在上面含有一定的創(chuàng)新性。
比較具體的項(xiàng)目說明,可以參考我的博客:http://downpour.javaeye.com/blog/242838
JavaEye:4.LightURL未來的roadmap是什么? 你對(duì)LightURL的規(guī)劃和目標(biāo)是什么?
downpour:我在編寫LightURL的時(shí)候,并沒有制定什么roadmap,唯一的目標(biāo)就是通過少寫代碼來提高開發(fā)效率。由于當(dāng)時(shí)Struts2還處于2.0.X的穩(wěn)定版本階段,所以LightURL還只是支持Struts2.0.X的版本。我想在不久的將來,我會(huì)編寫針對(duì)Struts2.1.X的版本,同時(shí)增加更多的簡(jiǎn)化配置的特性。
JavaEye:5.LightURL項(xiàng)目誕生多長(zhǎng)時(shí)間了,現(xiàn)在你平均每天花在LightURL上的時(shí)間是多久?
downpour:LightURL的項(xiàng)目已經(jīng)有1年半了,目前LightURL處于使用過程中,這個(gè)項(xiàng)目本身我已經(jīng)不花費(fèi)時(shí)間去維護(hù)了。
JavaEye:6.你的開發(fā)環(huán)境是什么?
downpour:windows XP,eclipse。
JavaEye:7.這個(gè)項(xiàng)目從什么時(shí)候開始,到現(xiàn)在幾年了?目前LightURL是你一個(gè)人開發(fā)?還是有其他合作開發(fā)者?
downpour:LightURL的開發(fā)是由我一個(gè)人完成的,不過在整個(gè)過程中,受到了許多人的意見和啟發(fā),包括ahuaxuan和kj23,在這里,謝謝他們。
JavaEye:8.現(xiàn)在大概有多少用戶使用LightURL項(xiàng)目。
downpour:LightURL我并沒有花時(shí)間和精力去推廣,除了在Javaeye論壇上發(fā)過帖子以外,沒有在其他場(chǎng)合進(jìn)行推廣,作為一個(gè)小工具,也只是想給大家一些啟示和探討的話題。所以除了我自己主導(dǎo)的項(xiàng)目,其他使用LightURL的用戶應(yīng)該很少。
JavaEye:9.通過開發(fā)LightURL,你對(duì)中國(guó)的軟件開發(fā)人員做開源項(xiàng)目有什么感受和想法嗎?
downpour:中國(guó)的軟件人員的能力很強(qiáng),不過實(shí)際上集中在一些個(gè)人上,從總體上水平上來說,我覺得還有很多參差不齊的情況。我個(gè)人非常不贊成一個(gè)程序員,隨隨便便寫點(diǎn)代碼,就號(hào)稱是一個(gè)Full Stack的解決方案,號(hào)稱是什么開源項(xiàng)目。稱得上是開源項(xiàng)目的,必須是個(gè)人能夠?qū)ψ约簩懙臇|西,有一個(gè)非常清醒的認(rèn)識(shí)和評(píng)價(jià)的作品。所以我也從來不認(rèn)為我自己開發(fā)了LightURL這樣一個(gè)開源項(xiàng)目,這只是一個(gè)小工具,希望它能在表示層這個(gè)小小的領(lǐng)域解決一些小小的問題。中國(guó)的軟件開發(fā)人員,應(yīng)該從自我做起,少談口號(hào),多做實(shí)事,這樣才能提高整個(gè)國(guó)家的軟件開發(fā)的水平。
JavaEye:10.作為一個(gè)JavaEye的老會(huì)員,你對(duì)JavaEye網(wǎng)站有什么建議和意見嗎?
downpour:我加入Javaeye論壇是我大學(xué)四年級(jí)的時(shí)候,我?guī)缀跛械腏ava知識(shí),都來源于Javaeye的一次又一次的激烈討論。所以Javaeye幾乎就是我成長(zhǎng)中必不可少的良師益友。在此要對(duì)robbin同學(xué)為網(wǎng)站付出的巨大努力和心血而表示深深的感謝,也希望Javaeye越辦越好。我也會(huì)盡我的所能,在業(yè)余時(shí)間為Javaeye多多貢獻(xiàn)文章,充實(shí)Javaeye的內(nèi)容。
downpour : LightURL是一個(gè)Struts2的插件,通過使用這個(gè)插件,能夠極大的簡(jiǎn)化Struts2的配置。從更深的意義上說,我也希望通過LightURL的使用,能夠使得程序員更加慎重的去思考表示層的代碼的規(guī)劃以及URL地址的合理規(guī)劃。從理念上,使得整個(gè)表示層更體現(xiàn)出它的價(jià)值。
JavaEye:2.你為什么要開發(fā)LightURL項(xiàng)目呢?出發(fā)點(diǎn)和希望解決的問題是什么?
downpour: Struts2是我在平時(shí)開發(fā)中經(jīng)常使用的一個(gè)表示層框架,在使用的過程中,發(fā)現(xiàn)其配置非常繁瑣。所以最初的目的是為了能夠少寫很多配置文件從而提高開發(fā)效率。后來在使用的過程中,我逐漸發(fā)現(xiàn),這個(gè)項(xiàng)目最終不僅簡(jiǎn)化了配置,同時(shí)規(guī)范了許多表示層的開發(fā)習(xí)慣,使得很多代碼能夠自然而然的放到其應(yīng)該存在的地方去。
JavaEye:3.LightURL主要有哪些特點(diǎn)呢?相比同類型的項(xiàng)目有什么優(yōu)勢(shì)呢?
downpour:通過插件方式來簡(jiǎn)化Struts2配置的開源項(xiàng)目有很多,在Struts2的官方網(wǎng)站上,我們可以找到一些優(yōu)秀的plugin來做這些工作:http://cwiki.apache.org/S2PLUGINS/codebehind-plugin.html 和 http://cwiki.apache.org/S2PLUGINS/smarturls-plugin.html 。在Struts2.1.6的版本之后,自帶了一個(gè)convention-plugin,幾乎囊括了所有簡(jiǎn)化配置方面的精華。
而LightURL本身吸取了上面3個(gè)提到的插件的優(yōu)點(diǎn),并且在此基礎(chǔ)上提出了URLTemplate的Annotation配置方式以及Command方式的ResultCode這兩大特色。這兩點(diǎn)分別解決了表示層需要進(jìn)行配置的兩個(gè)不同的方面:URL映射Action類以及Action轉(zhuǎn)向到視圖層。所以要說到LightURL最大的優(yōu)勢(shì),應(yīng)該說在于它是市面上所有的Struts2簡(jiǎn)化配置的方案的集大成者,同時(shí)在上面含有一定的創(chuàng)新性。
比較具體的項(xiàng)目說明,可以參考我的博客:http://downpour.javaeye.com/blog/242838
JavaEye:4.LightURL未來的roadmap是什么? 你對(duì)LightURL的規(guī)劃和目標(biāo)是什么?
downpour:我在編寫LightURL的時(shí)候,并沒有制定什么roadmap,唯一的目標(biāo)就是通過少寫代碼來提高開發(fā)效率。由于當(dāng)時(shí)Struts2還處于2.0.X的穩(wěn)定版本階段,所以LightURL還只是支持Struts2.0.X的版本。我想在不久的將來,我會(huì)編寫針對(duì)Struts2.1.X的版本,同時(shí)增加更多的簡(jiǎn)化配置的特性。
JavaEye:5.LightURL項(xiàng)目誕生多長(zhǎng)時(shí)間了,現(xiàn)在你平均每天花在LightURL上的時(shí)間是多久?
downpour:LightURL的項(xiàng)目已經(jīng)有1年半了,目前LightURL處于使用過程中,這個(gè)項(xiàng)目本身我已經(jīng)不花費(fèi)時(shí)間去維護(hù)了。
JavaEye:6.你的開發(fā)環(huán)境是什么?
downpour:windows XP,eclipse。
JavaEye:7.這個(gè)項(xiàng)目從什么時(shí)候開始,到現(xiàn)在幾年了?目前LightURL是你一個(gè)人開發(fā)?還是有其他合作開發(fā)者?
downpour:LightURL的開發(fā)是由我一個(gè)人完成的,不過在整個(gè)過程中,受到了許多人的意見和啟發(fā),包括ahuaxuan和kj23,在這里,謝謝他們。
JavaEye:8.現(xiàn)在大概有多少用戶使用LightURL項(xiàng)目。
downpour:LightURL我并沒有花時(shí)間和精力去推廣,除了在Javaeye論壇上發(fā)過帖子以外,沒有在其他場(chǎng)合進(jìn)行推廣,作為一個(gè)小工具,也只是想給大家一些啟示和探討的話題。所以除了我自己主導(dǎo)的項(xiàng)目,其他使用LightURL的用戶應(yīng)該很少。
JavaEye:9.通過開發(fā)LightURL,你對(duì)中國(guó)的軟件開發(fā)人員做開源項(xiàng)目有什么感受和想法嗎?
downpour:中國(guó)的軟件人員的能力很強(qiáng),不過實(shí)際上集中在一些個(gè)人上,從總體上水平上來說,我覺得還有很多參差不齊的情況。我個(gè)人非常不贊成一個(gè)程序員,隨隨便便寫點(diǎn)代碼,就號(hào)稱是一個(gè)Full Stack的解決方案,號(hào)稱是什么開源項(xiàng)目。稱得上是開源項(xiàng)目的,必須是個(gè)人能夠?qū)ψ约簩懙臇|西,有一個(gè)非常清醒的認(rèn)識(shí)和評(píng)價(jià)的作品。所以我也從來不認(rèn)為我自己開發(fā)了LightURL這樣一個(gè)開源項(xiàng)目,這只是一個(gè)小工具,希望它能在表示層這個(gè)小小的領(lǐng)域解決一些小小的問題。中國(guó)的軟件開發(fā)人員,應(yīng)該從自我做起,少談口號(hào),多做實(shí)事,這樣才能提高整個(gè)國(guó)家的軟件開發(fā)的水平。
JavaEye:10.作為一個(gè)JavaEye的老會(huì)員,你對(duì)JavaEye網(wǎng)站有什么建議和意見嗎?
downpour:我加入Javaeye論壇是我大學(xué)四年級(jí)的時(shí)候,我?guī)缀跛械腏ava知識(shí),都來源于Javaeye的一次又一次的激烈討論。所以Javaeye幾乎就是我成長(zhǎng)中必不可少的良師益友。在此要對(duì)robbin同學(xué)為網(wǎng)站付出的巨大努力和心血而表示深深的感謝,也希望Javaeye越辦越好。我也會(huì)盡我的所能,在業(yè)余時(shí)間為Javaeye多多貢獻(xiàn)文章,充實(shí)Javaeye的內(nèi)容。
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢】