總結了一些真心話,對於如何作好一個開源項目有很大的幫助。本文將從項目背景、項目的開發歷程、項目規劃、技術棧總結進行項目覆盤,講一講如何保持開源項目的生命力、如何選擇優化的方向、開源項目究竟會幫助到誰?前端
開源項目 newbee-mall 項目是一套電商系統,包括 newbee-mall 商城系統及 newbee-mall-admin 商城後臺管理系統,基於 Spring Boot 2.X 及相關技術棧開發。 前臺商城系統包含首頁門戶、商品分類、新品上線、首頁輪播、商品推薦、商品搜索、商品展現、購物車、訂單結算、訂單流程、我的訂單管理、會員中心、幫助中心等模塊。 後臺管理系統包含數據面板、輪播圖管理、商品管理、訂單管理、會員管理、分類管理、設置等模塊。vue
於 2019 年 10 月份正式開源,以後在項目改進的同時,又加入了 Vue 技術棧改形成先後端分離版本,Vue3 發佈 release 版本後,又使用 Vue3 進行了重構。git
倉庫地址爲:程序員
GitHub : https://github.com/newbee-ltdgithub
Gitee:https://gitee.com/newbee-ltdspring
目前,newbee-mall 系列開源項目中的幾個倉庫,Star 數量加起來也差很少 9k 左右,以下圖所示。vue-router
固然,並非一個很是好的數據,倒是我作開源項目以來受到最多關注的項目了,以前也作了一些開源項目,基本都是1k、2k star的樣子。vuex
在 GitHub 上寫一些開源項目,這件事情我作了 5 年了:編程
從 2017 年的第一個 ssm-demo 開源項目,到現在的 newbee-mall 系列項目,我也沒想到可以一直堅持了下來。後端
至於爲何會寫這個商城項目呢?你們經過我過往作的開源項目應該能看出一二,最開始作的是基礎的 demo,後面是作一些小項目,以後也寫過開源博客項目,由小項目到大項目,這是一個按部就班的過程罷了,在三年時間裏慢慢過渡,從無到有、由小至大,最終有了這樣一系列的項目,在 2019 年開始開發並維護 newbee-mall 系列的開源項目。至於爲何會選擇走商城方向,主要是在幾個交流羣裏和你們溝經過,貌似你們對商城類的項目更爲感興趣,因此就決定開發了它。
這個項目其實 2018 年就在開發計劃中了,可是一直沒想好怎麼作,作哪些功能,頁面又怎麼寫,一方面由於這種項目比較麻煩,畢竟不是寫一個學生管理系統,另外一方面是工做比較忙,也一直沒時間去作,因此一直拖到 2019 年的下半年。自從在網上寫博客、在 GitHub 上開源了幾個小項目以後,不少朋友都會選擇與我溝通,或者問我一些問題,這其中有至關一部分仍是學生或者 1-3 年經驗的朋友,經過與他們的溝通呢,我在寫項目和想問題的時候也有所改變,目前作的幾個項目都更注重一些基礎的東西:別太麻煩、運行順利、別缺代碼。
回到項目自己,經過上面說的幾點呢,相信你們也可以看出來,我就是想寫一個可以讓大部分人,即便是初學者或者在校大學生,都可以運行起來的開源商城項目。
因而,新蜂商城就開源了。
隨後的兩年,newbee-mall 系列倉庫也在不斷地優化:先後端分離版本的開發、newbee-mall-plus 升級版本的開發、加入 Vue3 技術棧。
2020 年 5 月,新蜂商城 Vue 版本開源了。
2020 年 11 月,新蜂商城 Vue3 版本開源了。
2021 年 1 月,newbee-mall-plus 版本啓動開發,計劃加入三個功能:秒殺功能、優惠券、對接支付寶。
2021 年 3 月底,newbee-mall-admin 將會啓動開發,使用 Vue3 + element plus 重構後臺管理系統。
作開源項目也不是一件容易的事情,首先是要擠時間,其次是要花費更多的精力,對人的身體和精神都有必定的消耗。
除此以外,隨着面對的人愈來愈多,聽到的聲音也愈來愈嘈雜,此時已經不是面向老闆或者產品經理編程,而是面向技術人的編程。聲音多了,其中確定有好的,這是對做者的鼓勵,也不免會有一些很差聽的,這是對做者的質疑。
由於這個項目,收穫了不少的朋友,收到了鼓勵和感謝,有人會說謝謝十三哥,有人會說這個項目幫助了他學到了不少實戰知識,有人說由於這個項目的開發經驗而找到了工做、完成了課程做業等等。也收到了一些惡評和質疑,有些話我就看成沒看到,有些人我也沒時間搭理,在網上吵架是很沒意思的一件事,首先,不必定不能吵贏這些吵架的高手,其次,即便你吵贏了,又能如何?並且有些評論雖然說陰陽怪氣,可是也不至於去和人家吵吵,繼續作本身的事情就行了,原本就那麼忙,哪有時間去吵架。
還有,由於這個開源項目,也發生了不少搞笑的事情,以前也寫過文章記錄。
舉一個常見的例子,不僅是個人開源項目,我看到其它開源項目中也會常常出現這種評論:
你寫這種項目開源項目有什麼用?
固然,上面這個問法我已經作了美化,有不少話是無法寫在文章裏的,我通常會向陰陽怪氣的人這樣回覆:
不一樣階段的開發人員的需求是不一樣的,你以爲這是一個很簡單的項目因此會提出這些質疑,可是也有不少人一直催着我繼續更新,由於大家所處的階段是不一樣的,不少人是須要一些「不那麼複雜」的基礎項目去練手的,newbee-mall 系列的幾個開源倉庫都是如此,代碼所有免費開源,有須要的人能夠直接上手練習並掌握一些實戰技巧,實用和免費這兩點是很是重要的。我只是努力在完善一個項目,僅此而已,其實開源項目都須要宣傳和關注,若是沒有一點點數據的話,這個項目的做者也很快就會放棄維護的,這些都是很現實的問題。還有,作一個心理陽光的人,別老是動一些歪心思。
一開始,newbee-mall 只是一個供後端開發人員學習的項目,技術棧也都是偏後端,後來也加入了 Vue、Vant 等前端技術棧,這樣,對於先後端開發人員來講,都是一個不錯的練手項目,當前使用到的技術棧以下:
先後端技術都有,主要是當下企業開發中比較經常使用的技術棧,後續會繼續整合其它的技術棧到項目中,好比 Redis、Elastic Search、React 等等技術棧。
有些內容是本身琢磨的,更多地則是要多聽一聽用戶的意見,整合他們的建議和本身的想法,而後作一個做者滿意、用戶也滿意的修改,讓項目更健康的走下去。
雖然不是公司裏的項目,可是作開源項目也須要很是認真,不能吊兒郎當。開源項目也須要詳細的設計和規劃,加入什麼功能,用什麼技術棧,而後再花時間去測試和覆盤,若是有問題及時調整,固然,每次我有新的想法也會在羣裏通知你們或者整理一篇文章分享出來,根據你們的建議再進行調整。
《佛典》:「自未得渡而渡人者,菩薩發心,又自渡生死苦海,而又渡人。」
我並非一個信佛之人,只是看到了這段話,以爲用在這裏比較貼切。
確實,由於 newbee-mall 系列開源項目的緣由,不少人都受到了幫助、獲得了一些啓發,也收到不少人的感謝信息,這一點,讓我以爲很感動。做爲做者,我並無想到這個項目會如此的受歡迎,由於我以前也作過幾個開源項目,最多也就 1k 左右的 Star,因此,直到今天我也很是激動。
靜下來的時候,就會胡思亂想一些問題:我是誰?我從哪裏來?我要到哪裏去?
可是一般都得不到答案,有時候人會變得很沮喪和迷茫,由於生活或者工做中的事情,突然變得很心煩,有時候甚至會不知道將來在哪裏,不知道活着的意義在哪裏。
PS:偶爾會胡思亂想,大部分時間仍是很是正常的。
由於這個項目,讓我以爲我能幫助到別人,這是一件很是很是不一樣的感受,之前也有過相似的經歷,好比給同桌講題、幫朋友上分、給同事解決bug、幫家人分擔壓力,這些都會讓本身以爲本身是一個能夠被依靠的人,可以感受到生活的意義。可是隨着這個項目被愈來愈多的人所知曉,意義就變了,我再也不是幫助一我的兩我的,而是一個羣體,這確實是一個船新的版本。
工做和生活都由於這個項目有了一些改變,天天都要花一些時間去學習、去和更多的人交流,天天都在進步,天天都很忙,也沒有時間去胡思亂想了,最大的一點改變,莫過於由於這個開源項目而出版實體書這件事情,後面有時間我會寫下這段經歷。
以上就是我對於 newbee-mall 這個開源項目的總結和覆盤,固然,還有更多內容能夠整理進來,可是鑑於篇幅緣由(字數已經 3700+ 了),後面有時間會繼續分享的。
有什麼問題的話,你們能夠給我留言,咱們一塊兒討論。
推薦一下本人近期維護的開源項目:
Spring Boot 開源電商項目(含商城端和後臺管理系統):https://github.com/newbee-ltd...
Spring Boot + Vue3 先後端分離商城項目:https://github.com/newbee-ltd...
感興趣的朋友能夠關注一下。
除註明轉載/出處外,皆爲做者原創,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。