經(jīng)過(guò)大約四個(gè)月的開(kāi)發(fā),和五位開(kāi)發(fā)設(shè)計(jì)及美工人員的努力,AgileJava iCustomer 的第一個(gè)不是那么穩(wěn)定的版本終于拿出來(lái)了,我們終于走出了我們的第一步,在這期間,我們也得到了很多朋友的支持和幫助,我們要感謝這些支持者的貢獻(xiàn)。
在這個(gè)階段里,我們團(tuán)隊(duì)成員一起把我們研究 JSF, Spring, Hibernate,以及 Acegi 的成果都集中在這個(gè)項(xiàng)目中了。雖然很多東西都只是那么點(diǎn)點(diǎn)滴滴,但是在這期間有很多朋友在積極的幫助我們,參與我們的 OpenDoc 活動(dòng),把自己的寶貴時(shí)間分享出來(lái),為大家?guī)?lái)了很多很好的文檔,上周末,我們得到了 javascud 的大力支持,我們有了自己的 SVN,有了自己的 JIRA,這樣的話,我們便可以建立我們自己的協(xié)作開(kāi)發(fā)平臺(tái),讓我們的經(jīng)驗(yàn)和更多的朋友分享,同時(shí),我們也歡迎更多的朋友能夠參與到我們的開(kāi)源活動(dòng)中來(lái),因?yàn)橛辛四銈?,我們才可以更壯大,因?yàn)橛辛四銈?,我們才可以更成熟,因?yàn)橛辛舜蠹业凝R心協(xié)力,我們才能為了一個(gè)共同的目標(biāo)去奮斗,因?yàn)橛辛舜蠹业膮f(xié)作,我們才會(huì)在共同努力中進(jìn)步。
開(kāi)源也不是一句口號(hào),我們只想用我們自己的行動(dòng)來(lái)證明這一切,正因?yàn)槲覀兪菬釔?ài)開(kāi)源的,所以我們才會(huì)去努力做的更好;正因?yàn)槲覀冇兄粋€(gè)奮斗目標(biāo),我們才會(huì)孜孜不倦的去奮斗。此前 SpringSide 為我們做出了一個(gè)榜樣,EasyJF 讓我們夢(mèng)想在自己的努力中實(shí)現(xiàn),CowNew 也成為我們開(kāi)源一個(gè)很好的先例,正是因?yàn)榇蠹矣羞@個(gè)夢(mèng)想,有這些前輩們的努力,我們才看到國(guó)內(nèi)開(kāi)源的希望。
其實(shí)我們更希望做到的,只是讓新的技術(shù)能夠更貼近實(shí)踐了,讓大家的實(shí)踐能夠更容易,讓大家的開(kāi)發(fā)能夠更輕松,所以我們才從過(guò)去只是為了朋友做的一個(gè)小小的系統(tǒng)中找到方向,所以我們的開(kāi)源團(tuán)隊(duì)名稱叫做 AgileJava 就是為了讓我們的開(kāi)發(fā)更敏捷。
下面我簡(jiǎn)單的介紹一下我們現(xiàn)在已有的系統(tǒng)和我們未來(lái)的目標(biāo):
AgileJava iCustomer 系統(tǒng)是一套開(kāi)源的 CRM (客戶關(guān)系管理) 系統(tǒng),使用了新一代輕量級(jí) J2EE 技術(shù): JSF,Spring,Hibernate, Acegi 等作為系統(tǒng)的基礎(chǔ)開(kāi)發(fā)框架,力圖打造一個(gè)輕快好用的 J2EE 應(yīng)用。
在系統(tǒng)開(kāi)發(fā)過(guò)程中,我們同時(shí)將系統(tǒng)中的基礎(chǔ)框架以及大量可以簡(jiǎn)化 J2EE 應(yīng)用開(kāi)發(fā)的組件從應(yīng)用中抽取出來(lái),并獨(dú)立提供給廣大開(kāi)發(fā)人員,作為項(xiàng)目開(kāi)發(fā)的基礎(chǔ)框架,為大家進(jìn)行快速開(kāi)發(fā)提供支持。我們?yōu)樵摽蚣苊麨?AgileJava Framework。 AgileJava Framework 的目標(biāo)是致力于為廣大開(kāi)發(fā)者提供一個(gè)敏捷高效的 J2EE 快速平臺(tái)。
另一方面,我們將以此框架為基礎(chǔ),通過(guò) Eclipse Plugin 的方式提供一套完整的基于代碼生成的解決方案,用于快速生成應(yīng)用的基礎(chǔ)代碼。該開(kāi)發(fā)工具同樣沿用我們 AgileJava 的名稱,叫做 AgileJava Studio。 AgileJava Studio 將致力于減少開(kāi)發(fā)工作中的重復(fù)勞動(dòng),給開(kāi)發(fā)者帶開(kāi)更好的開(kāi)發(fā)體驗(yàn)。
我們將會(huì)將 AgileJava iCustomer, AgileJava Framework, AgileJava Studio 作為開(kāi)源項(xiàng)目來(lái)運(yùn)作,一方面建立一個(gè)完整的企業(yè)級(jí)的客戶關(guān)系管理系統(tǒng),另一方面建立一個(gè)為 J2EE 項(xiàng)目提供快速開(kāi)發(fā)能力的基礎(chǔ)框架和開(kāi)發(fā)工具。
因?yàn)閲?guó)內(nèi)的開(kāi)源模式一直沒(méi)有什么好的先例,并且開(kāi)源的路線在國(guó)內(nèi)因?yàn)橐恍┱`解方面的問(wèn)題,一直沒(méi)有很好的發(fā)展起來(lái),雖然我們選擇了開(kāi)源,但是我們更多的希望只是通過(guò)一個(gè)完整的企業(yè)級(jí)應(yīng)用的方式來(lái)探索開(kāi)源的方向,并為我們中小型企業(yè)級(jí)應(yīng)用打造一個(gè)方便易用功能強(qiáng)大的解決方案,用我們的實(shí)踐帶給所有參與者一些經(jīng)驗(yàn),無(wú)論是開(kāi)源方面的經(jīng)驗(yàn),還是在輕量級(jí) J2EE 應(yīng)用開(kāi)發(fā)的經(jīng)驗(yàn)。雖然國(guó)內(nèi)很多軟件企業(yè)都在用這些技術(shù),但因?yàn)榘鏅?quán)的問(wèn)題,無(wú)法和更多的朋友分享,所以我們更需要一個(gè)開(kāi)放的交流環(huán)境,通過(guò)這樣開(kāi)源的方式,通過(guò)大家的努力,把我們?cè)趯?shí)踐中的經(jīng)驗(yàn)?zāi)贸鰜?lái),和大家分享,共同促進(jìn)我們軟件開(kāi)發(fā)的大環(huán)境的改善,共同提高大家的開(kāi)發(fā)能力和開(kāi)發(fā)水平。
在這里,我們鼓勵(lì)的是一種知識(shí)共享,通過(guò)這樣的共享,我們把我們自己擁有的一份知識(shí)擴(kuò)展到大家擁有的無(wú)數(shù)份知識(shí)。我們通過(guò)自己的實(shí)踐,我們能夠更深入的去了解了現(xiàn)有的各種技術(shù)的長(zhǎng)與短,通過(guò)大家的交流與協(xié)作,我們?cè)谥R(shí)上互相彌補(bǔ)。通過(guò)這樣的實(shí)踐,我們不光是再做我們這個(gè)系統(tǒng),更多的是我們有了更多的思想,更多的經(jīng)驗(yàn),我們有能力去打造更好的系統(tǒng)。
我們目前采用了以 JSF, Spring, Hibernate 為中心的主體框架,并努力使之?dāng)U展到一個(gè)中小型商業(yè)應(yīng)用所需要的主要技術(shù)領(lǐng)域,并使之更簡(jiǎn)單易用。
目前采用的技術(shù): JSF (Myfaces Implement),完整的視圖層解決方案,一個(gè)標(biāo)準(zhǔn)的事件驅(qū)動(dòng)的 MVC Framework。 Spring Framework : 其 IoC 容器為我們的業(yè)務(wù)對(duì)象控制帶來(lái)了很大的便利。 Hibernate 3 : 目前最優(yōu)秀,使用面最廣的 ORM Framework。 Acegi : 一個(gè)基于 Spring 的通用 Security Framework。 Quartz : Java 世界最好也幾乎是唯一的 Job Schedule 工具,為我們調(diào)度 Batch Job 提供了很大的便利。 Shale : struts 社區(qū)在 JSF 領(lǐng)域的重大貢獻(xiàn),以 JSF 為基礎(chǔ)為我們提供了一系列好用的東西。
預(yù)計(jì)后面準(zhǔn)備采用的技術(shù): Compass + Lucene : Java 世界里最好用的開(kāi)源 Search Engine 組合,Compass 使 POJO 能夠更方便的去使用 Lucene 的底層引擎。 BIRT : Eclipse 社區(qū)貢獻(xiàn)的一個(gè)重量級(jí) BI 應(yīng)用。當(dāng)?shù)谝谎劭吹剿鼤r(shí),就拋棄過(guò)去的 iReport + JasperReport 的組合了,夠?qū)I(yè)。 Facelets : 為 JSF 量身定做的模板框架,JSF 的 Fans 們不用再靠著 struts 的 tiles 也能活啦。 AjaxAnywhere : 不用寫(xiě) JavaScript 也能 Ajax ,它為我們提供了這樣的可能。 ICE Faces Component?: 當(dāng)它的第一個(gè)beta版本出來(lái)的時(shí)候,我就對(duì)它頗有興趣,或許是目前免費(fèi)的 JSF 組件庫(kù)中最好的 Ajax 實(shí)現(xiàn)了。
我希望能夠有更多熱愛(ài)開(kāi)源的朋友加入到我們的行列中來(lái),不論你來(lái)自何方,做著什么樣的工作,只要我們有著開(kāi)源的這個(gè)共同的目標(biāo),我們就可以共同的去為著自己的愛(ài)好,自己的理想,自己的信念所奮斗,記住,開(kāi)源決不是三分鐘的熱度,需要你持之以恒的奮斗。