麻雀雖小,但五臟俱全
sparrow 源自中國俗語 麻雀雖小,但五臟俱全,努力打造一個全新的低耦合,0依賴的高性能java 開發基礎框架。 這個框架我從11年開始寫,中間重構了n遍,最原始的代碼可能都找不到了,之因此堅持寫,最初並非想造新輪子。 主要是從中學習基礎原理。 通過近十年的打磨,發現有些設計思想和理念,是值得學習的。好比spring mvc 的設計模式,orm ico 等等。 雖然不少朋友們都瞭解,但要真正本身實現起來也並非那麼容易。而這個過程對原來的深刻理解是很幫助,因此將這部分開源出來, 供有一樣需求的朋友參考。在此過程當中也發現了現有框架的一些弊端,好比沒有一個跨數據源的orm。全部項目都須要依賴spring 才能跑起來, 使咱們的業務依賴不少jar,而大部分的jar包多是不須要的,代碼變得臃腫,維護困難。 爲此基於oop的基本思想,構建一層api,最大化的解耦。java
框架特色
- 相信程序員
經過對原理有了更深刻的瞭解,對寫程序來說會更簡單,高效,不少框架之因此很重,很重要的一個緣由是不相信程序員,這個框架從jdk出發,儘可能不依賴第三方jar 包,讓程序能跑起來,讓程序更快。git
- 從0開始
人腦思惟是發散的,若是中間某個知識點斷掉,可能就會產生知識盲點,這個盲點可能產生的影響很大的,尤爲是技術更象是一層窗戶紙,捅破了,簡單,捅不破,如隔山。 因此咱們從0開始,讓知識連貫起來,消除盲點,不僅讓程序變得高效,更讓程序員變得高效。程序員
- 0依賴
框架實現最簡單的,最核心的功能,儘可能不依賴任何框架,包括spring。github
- 解耦/隔離
sparrow模塊 只定義了一些接口,具體實如今其餘的模塊中,是否依賴由業務端決定,最大化解耦。spring
- 擴展
遵循開閉原則,對業務提供擴展點。shell
項目架構及遠期規劃
架構中大部分功能已具基本的使用框架,但還須要進一步完善和優化,具體內容可查看架構詳細介紹設計模式
jedis和rocket mq 客戶端已具有基本的生產環境使用條件api
其它模塊還需進一步完善,歡迎有興趣的小夥伴,一塊兒加入 email:zh_harry#163.com架構
架構詳細介紹 https://www.jianshu.com/p/74122495a463mvc
start
-
下載項目管理殼子,經過該項目能夠下載sparrow因此子項目 git@github.com:sparrowzoo/sparrow-shell.git 具體操做見該項目 readme.md
-
style 目錄爲codestyle 和checkstyle 及copyright 相關配置文件,朋友們可自行配置.
-
編譯sparrow-super 項目 該項目包括sparrow 全部依賴的jar,共用配置文件及sparrow 子項子的全局版本號,目前全部尚未上傳至maven 倉庫,感興趣的朋友能夠fork版本自行控制,待代碼穩定後逐步上傳至maven倉庫共享。 maven編譯命令 cd sparrow/sparrow-super mvn clean install -U -Dmaven.test.skip
-
回到父項目根目錄cd .. 編譯全局項目,如令如上
-
sparrow 爲保持代碼整潔,全部的test 項目單獨由一個sparrow-test 項目管理,該項目已有部分功能經過test case,朋友們能夠下載瞭解sparrow 運行 測試用例 https://github.com/sparrowzoo/sparrow-test case 逐步完善中...
-
後緒重點會開發orm(跨數據源 db elastic search hbase) 和mvc兩大重要模塊,敬請期待...
咱們的願景和將來
讓程序員脫離spring, 也能寫代碼,並且更快,更優雅