Java開源博客My-Blog之docker容器組件化修改


前言

5月13號上線了自己的個人博客,《Docker+SpringBoot+Mybatis+thymeleaf的Java博客系統開源啦》,緊接着也在github上開源了博客的代碼,到現在為止,感覺這個項目還是有一點點關注度的,包括博客站點的訪問量,github倉庫中MyBlog項目的訪問量都還不錯,總體來說是一種進步且向上的態勢。

這是某個24小時內http://blog.hanshuai.xin站點的訪問日志分析面板:

log

但是呢,也漸漸覺得自己的個人想法有些影響了這個項目。在My-Blog博客系統最初的設計和技術選型上,其實docker算是幾個技術棧中我比較注重的一個,因為近一年多來比較關注容器化技術,因此,即使是在這個博客項目中,我也較多的將重點放在docker上,不管是開發部署,還是以后的擴展計划上,更多的都是圍繞docker容器技術。

不過事與願違吧,收到的反饋和一些統計數據讓我不得不重新思考整個項目,我所關注和重視的東西,其他人可能並不是特別在意和易於接受,於是我就想,我是不是並沒有考慮到其他人的感受,項目既然已經開源了,是不是應該不要太個人主義了。

初露端倪

下圖是My-Blog的wiki文檔,從圖中也可以看出原來的偏重點,將docker相關的文檔放在前面,當初編寫wiki文檔時也是如此,開始的時候甚至並沒有將非docker方式的部署教程貼出來,而是后來有不少朋友問了之后才寫了#3.1這個wiki Page,但是后來發現,這一頁的瀏覽量其實遠遠超出其他的文檔,大家普遍都去查看非docker環境下的部署教程,也一直在問相關問題。

wiki

有一位使用了這個項目的朋友跟我說,因為項目中使用了docker技術的原因,他部署項目花了兩三天才完成,僅僅是學習docker命令及相關知識就用了差不多兩天,時間成本太高,這個功能對於某些朋友來說,甚至有些雞肋,因為有些人確實只是覺得項目看起來不錯,因此打算作為自己的博客模板,但是用起來卻是萬分復雜,基於此原因應該也有不少朋友打了退堂鼓,雖然我在wiki中也添加了一些非docker方式部署和開放的教程,但是由於個人的偏好及目錄結構原因,docker模塊與項目的耦合依然很高。

docker組件化修改

這是原結構圖:

原結構

很明顯,docker代碼與java代碼耦合在一起。

3.1.1版本修改后的目錄結構圖:

現結構

docker相關文件已單獨提取出來作為docker-extension,同時配置文件和運行腳本也做了一定的修改,使得docker啟動和非docker啟動都可以很簡單,即使切換起來也不用人為修改代碼,按照wiki教程里說的方法即可。

目前項目中,唯一可以看到docker帶來的便利及提供的幫助就只有mysql,因此有些朋友可能覺得docker並不是特別酷,后期的話,隨着redis、nginx、logstash、elasticsearch、kinaba、kafka...等組件的添加,結合docker-compose進行容器編排,那個時候應該就會以另外一個心態來面對docker技術了,個人覺得docker真的可以算得上一個奇淫技巧,只是需要時間來發現而已,很明顯,這個時間不是現在。

個人想法

docker化,個人比較熟悉也比較喜歡,而且操作起來比較方便,因此主觀意向比較濃厚,就將docker相關的一些代碼和功能都添加進來了,這是最初做這個項目時的想法,但是現在看起來,docker與原有代碼目錄攪在一起,項目目錄看起來比較臃腫,而且計划中,以后會基於docker繼續擴展一些功能,如果再去添加其他組件到目錄中,應該會更加耦合、更加的"亂"。

再者,有些人並沒有docker基礎,如果想要使用這個項目,還得去學習docker相關知識,每次思考這個問題的時候,我都會試着以一個第三者的角度去想,漸漸地覺得這個項目確實有點不人性化,我只是想用一下這個博客,我還要去安裝docker、學習docker命令?不學的話還不能好好用這個項目搭博客了?

上天

因此想要將docker相關的擴展和組件剝離出來,只作為其中一個組件,"組件"這個說法不知道合適不合適、正不正確,暫時就這么叫吧,這么做的目的是將docker相關代碼剝離出來,不耦合於項目中,想要使用docker相關功能的話就用,如果不想用的話完全可以按照原有的操作習慣來部署和開發My-Blog,應該將選擇權交給用戶,而不是我個人喜歡怎么樣就怎么樣,既然選擇了開源,就應該將心態放開,考慮一下其他人的感受,不能太自私了,多接受別人的意見也不是一件困難的事情。

docker只是一個工具,在項目中是一個錦上添花的作用,並不是一個不可或缺的部分,因此,為了方便其他人,做出了此次的修改,進行了較大的目錄結構調整。

結語

首發於我的個人博客,地址在這里

通過這次事件,我覺得不能把我們的想法和習慣強加給其他人,如果一個朋友只想簡簡單單搭個博客,結果看到這個博客頁面和功能還行,滿足要求,但是一看代碼,各種框架和技術耦合在一起,又要學新東西,會讓人萌生退意的。

為的是方便他人,而不是給別人添麻煩。

希望大家提出更多意見,有喜歡這個項目的也很開心邀請你共同加入項目中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM