前言

5月13号上线了自己的个人博客,《Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦》,紧接着也在github上开源了博客的代码,到现在为止,感觉这个项目还是有一点点关注度的,包括博客站点的访问量,github仓库中MyBlog项目的访问量都还不错,总体来说是一种进步且向上的态势。

这是某个24小时内http://blog.hanshuai.xin站点的访问日志分析面板:

但是呢,也渐渐觉得自己的个人想法有些影响了这个项目。在My-Blog博客系统最初的设计和技术选型上,其实docker算是几个技术栈中我比较注重的一个,因为近一年多来比较关注容器化技术,因此,即使是在这个博客项目中,我也较多的将重点放在docker上,不管是开发部署,还是以后的扩展计划上,更多的都是围绕docker容器技术。

不过事与愿违吧,收到的反馈和一些统计数据让我不得不重新思考整个项目,我所关注和重视的东西,其他人可能并不是特别在意和易于接受,于是我就想,我是不是并没有考虑到其他人的感受,项目既然已经开源了,是不是应该不要太个人主义了。

初露端倪

下图是My-Blog的wiki文档,从图中也可以看出原来的偏重点,将docker相关的文档放在前面,当初编写wiki文档时也是如此,开始的时候甚至并没有将非docker方式的部署教程贴出来,而是后来有不少朋友问了之后才写了#3.1这个wiki Page,但是后来发现,这一页的浏览量其实远远超出其他的文档,大家普遍都去查看非docker环境下的部署教程,也一直在问相关问题。

有一位使用了这个项目的朋友跟我说,因为项目中使用了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只是一个工具,在项目中是一个锦上添花的作用,并不是一个不可或缺的部分,因此,为了方便其他人,做出了此次的修改,进行了较大的目录结构调整。

结语

首发于我的个人博客,地址在这里

通过这次事件,我觉得不能把我们的想法和习惯强加给其他人,如果一个朋友只想简简单单搭个博客,结果看到这个博客页面和功能还行,满足要求,但是一看代码,各种框架和技术耦合在一起,又要学新东西,会让人萌生退意的。

为的是方便他人,而不是给别人添麻烦。

希望大家提出更多意见,有喜欢这个项目的也很开心邀请你共同加入项目中。

Java开源博客My-Blog之docker组件化修改的更多相关文章

  1. Java开源博客My-Blog(SpringBoot+Docker)系列文章

    My Blog 1.Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦 2.My-Blog搭建过程:如何让一个网站从零到可以上线访问 3.将数据的初始化放到 ...

  2. Java开源博客My-Blog之docker容器组件化修改

    前言 5月13号上线了自己的个人博客,<Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦>,紧接着也在github上开源了博客的代码,到现在为 ...

  3. Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程

    写在前面的话 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> <Java开源博客My-Blog之docker容器组件化修改> ...

  4. Java 开源博客——B3log Solo 0.6.6 正式版公布了!

    Java 开源博客 -- B3log Solo 0.6.6 正式版公布了!欢迎大家下载. 该版本号引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也很欢迎大家參与 ...

  5. Java 开源博客——B3log Solo 0.6.7 正式版公布了!

    Java 开源博客 -- B3log Solo 0.6.7 正式版公布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也很欢迎大家參与进来 :-) 特性 基于标签的文章分类 P ...

  6. Java 开源博客——B3log Solo 0.6.1 正式版发布了!

    Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...

  7. Java 开源博客——B3log Solo 0.6.7 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.7 正式版发布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也非常欢迎大家参与进来 :-) 特性 基于标签的文章分类 ...

  8. Java 开源博客——B3log Solo 0.6.6 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.6 正式版发布了!欢迎大家下载. 该版本引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也非常欢迎大家参与 ...

  9. Java 开源博客——B3log Solo 0.6.5 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...

随机推荐

  1. 《如莲春天》Java开发框架

    关于 如莲者,净洁如莲之意,希望打造一个简洁的系统框架.系统主要采用Spring相关技术,故取名:如莲春天.    如莲春天,包括一套系统界面.一个权限管理系统.一个CURD代码生成模块.一些基础模块 ...

  2. Coursera 机器学习笔记(三)

    主要为第四周.第五周课程内容:神经网络 神经网络模型引入 之前学习的线性回归还是逻辑回归都有个相同缺点就是:特征太多会导致计算量太大.如100个变量,来构建一个非线性模型.即使只采用两两特征组合,都会 ...

  3. 腾讯AlloyTeam发布AlloyLever - 开发调试发布错误监控上报用户问题定位尽在1kb代码

    AlloyLever [官网][Giuhub] 1kb(gzip)代码搞定开发调试发布,错误监控上报,用户问题定位. 支持错误监控和上报 支持 vConsole错误展示 支持开发阶段使用 vConso ...

  4. mybatis批量增、删、改(更新)操作oracle和mysql批量写法小记

    前言:用mybatis也好几年了,mybatis在批量的增删操作也写起来也是比较简单的,只有批量更新这一块是特别坑,特此记录. 注:本文主要用来记录oracle和mysql数据库在使用mybatis的 ...

  5. CentOS上安装redis记录

    下载稳定版 curl -O http://download.redis.io/releases/redis-stable.tar.gz tar -zxvf redis-stable.tar.gz cd ...

  6. angular2/angular4 如何通过$http的post方法请求下载二进制的Excel文件

    时间有限,废话就不多说了,直接上干货! 下面给大家介绍一下我遇到的一个坑,如果你也遇到了,那恭喜你,你一定能找到答案:angular2/angular4 如何通过$http的post方法请求下载二进制 ...

  7. 基于C#的接口自动化测试(一)

    其实就是找个地方然后给关键的代码做个笔记什么的-- 字符串访问API接口,访问方法为POST: string url = URL; string RequestParam = Param; strin ...

  8. 文件描述符与FILE

    1. 文件描述符(重点) 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创 ...

  9. Bash的数组

    Bash 2.x提供了创建一维数组的能力. 有多种方法创建,用内建命令declare -a或直接数组元素赋值. 向数组赋值时,如果不指定下标,下标自动从0开始,每次增加1. 数组的尺寸没有限制,下标也 ...

  10. ffmpeg参数说明

    ffmpeg.exe -i F:\慶哥\慶哥之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flv ffmpeg -i F:\01.wmv ...