您現在的位置是:網站首頁> 內容頁

開源項目之架構分享

  • 宏威國際官網歡迎您
  • 2019-08-20
  • 125人已閱讀
簡介此次分享是我當初在開發某個系統時,參考的一些開源項目架構的思路和風格。第一個是Jeesite,它的架構風格如下:?大家如果對jeesite感興趣的話,可以百度搜索找到,不過那已經是半年

此次分享是我當初在開發某個系統時,參考的一些開源項目架構的思路和風格。

第一個是Jeesite,它的架構風格如下:

?

大家如果對jeesite感興趣的話,可以百度搜索找到,不過那已經是半年多以前的事情,jeesite目前也發生較大的變化。

當初我在參考jessite這個思路時,不知道是什么原因使我沒有加入module,其實從現在的角度出發,加上module也是一件不錯的事情,module即模塊,通過模塊來擴展功能,這與我目前以service來擴展功能的思路不謀而合。

jeesite的common思路,我現在也一直再采用,common目前主要是放置常用工具類,不過,因為我們引入了Hutools開源項目,目前common主要是一些數據傳輸類,例如dto、queryvo或者是其他自定義工具類等等。

jeesite的core思路,我并沒有采用,我還是按照service思路,公共模塊,例如菜單,權限,用戶,組織我將其抽象為一個公共service。

jeesite的web思路,與我現在的做法是一樣,不過我考慮的是,一旦后期模塊拆分分布式之類的,我可以輕松的通過service思路分離,不過我的service模塊耦合度要盡可能低,內聚性高,不然的話,一旦拆分意味著重構,要知道能不重構盡量不重構,重構是一件痛苦的事情。很多中小公司開發團隊,時常犯的錯誤就是為了實現功能,代碼質量不做絲毫考慮,當然了,客觀上也是因為業務的緊急性和迫切性不得不為之。記得第一個項目給我的陰影已經足夠多了,我不想再因為代碼質量的問題,陷入無止休的死循環中(改bug,改bug,這是一件要命的事情)。

另外jeesite的一個亮點就是技術選型,它的技術選型,可以說是目前java開發者們,無論是后臺還是前端都是比較熟悉的,而且目前資料也十分齊全,學習起來也不是特別難。不過,jeesite還是沒有開源,這也是我當初沒有采用它的一個重要原因,在我看來,開源意味著源代碼對外開放,一旦有問題,我可以通過看源代碼來解決,盡管有看不懂的可能性存在,但是好歹可以看吧,看總比不能看要好,這也是我一貫的作風。

?

第二個是iBase4j,它的架構風格如下:

它的這個就更好理解了

iBase4j-Biz-Facade 存放 entity,service等

iBase4j-Biz-Service 存放dao及其xml和實現類,還有配置類等

iBase4j-Biz-Web 存放對應的controller還有配置類

不過我個人覺得它的這個架構設計不是特別好

要是我來設計的話,iBase4j-Biz-Facade我會直接entity,dao,service還有xml文件,iBase4j-Biz-Service專門放實現類,我個人覺得這樣看起來無論是從視覺上,還是邏輯上看,都比iBase4j原生設計要好。

當然了,有句話說的好,“情人眼里出西施”或者是“一百個人一百個哈姆萊特”。總而言之,每個人都有每個人的想法。

至于iBase4j-SYS相關的其實與我上面說的iBase4j-Biz是一樣的道理。

?

第三個是人人開源(renrne-security),它的架構如下:

?

?

它的這個架構,我認為適合SpringBoot應用開發,renren-admin通常就是后臺管理系統,renrne-api用于管理接口文檔可作為獨立的應用也可以引入admin中,common就不必多說,我想在上面的jeesite中已經說得很詳細了。generator,web在線代碼生成器,我也寫過,感興趣的可以參考我的這篇博客:https://www.cnblogs.com/youcong/p/9494892.html (JavaWeb在線代碼生成器)

我覺得人人開源的這個比較與我接近,所以在多租戶架構設計時,我最先想到的就是人人開源,只不過我沒有理解好它們之間的關系,同時也沒有考慮到技術的局限性,為此我付出了一周多的時間成本。

renren-generator生成的代碼,點擊表打成zip包(支持批量選擇),不過我覺得我的在線代碼生成器比它好,但是唯一不足的是,我沒有考慮到權限,因此我的代碼生成器不是特別完美,但是對于提高開發效率還是有一定的幫助。

?

總結:

今天分享的一共三個開源項目,分別是jeesite、iBase4j、人人開源等。

分享這三個項目,我要告訴大家的不是學會怎么用,而是有的時候,在開發設計的時候,如果自己沒有思路的話,特別是架構設計,可以參考下開源項目,也許你會有意向不到的收獲。

記得荀子說過一句話,“君子性非異也,善假于物也”。以此話,與IT友友們共勉。

文章評論

Top 炸金花比牌要双倍么