Java开源博客My-Blog之docker组件化修改
前言
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组件化修改的更多相关文章
- Java开源博客My-Blog(SpringBoot+Docker)系列文章
My Blog 1.Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦 2.My-Blog搭建过程:如何让一个网站从零到可以上线访问 3.将数据的初始化放到 ...
- Java开源博客My-Blog之docker容器组件化修改
前言 5月13号上线了自己的个人博客,<Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦>,紧接着也在github上开源了博客的代码,到现在为 ...
- Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程
写在前面的话 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> <Java开源博客My-Blog之docker容器组件化修改> ...
- Java 开源博客——B3log Solo 0.6.6 正式版公布了!
Java 开源博客 -- B3log Solo 0.6.6 正式版公布了!欢迎大家下载. 该版本号引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也很欢迎大家參与 ...
- Java 开源博客——B3log Solo 0.6.7 正式版公布了!
Java 开源博客 -- B3log Solo 0.6.7 正式版公布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也很欢迎大家參与进来 :-) 特性 基于标签的文章分类 P ...
- Java 开源博客——B3log Solo 0.6.1 正式版发布了!
Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...
- Java 开源博客——B3log Solo 0.6.7 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.7 正式版发布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也非常欢迎大家参与进来 :-) 特性 基于标签的文章分类 ...
- Java 开源博客——B3log Solo 0.6.6 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.6 正式版发布了!欢迎大家下载. 该版本引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也非常欢迎大家参与 ...
- Java 开源博客——B3log Solo 0.6.5 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...
随机推荐
- kotlin语言使用初体验(一)
居说谷歌新认的干儿子kotlin极为受宠,隐隐有替代Java在 android平台老大位置的趋势.kotlin有谷歌撑腰,加上自己的底子也厚,再之与Java无缝兼容,将来在流行的编程语言中占有一席之地 ...
- 无声的吐槽csdn
上次朋友聚会,说csdn挺好的,我琢磨着,那好我也去注册一个.经过n次的注册(用户名那边老是验证不过,不给中文开头,然后随便填了一个),终于搞定了! 我想,不错啊,做了这么多限制,挺安全的感觉.然后我 ...
- fiddler导致页面确定按钮无法使用(测试遇到的问题经验)
这几天在测试的是遇到几个问题,就是在删除或者保存有些提示信息的时候 比如下面这种: 点击确定的时候,一直无响应,换了几台电脑其他电脑都是正常的,本机清楚缓存.关闭浏览器重新打开.重启电脑都试过了了就是 ...
- android studio 2.32躺坑记
按说这是没啥记录意义的.不过作为一个偶尔用一下ADT开发安卓程序的跨界老码农,遇到一个尴尬事,现在手机已经用上安卓6了,而电脑里的ADT里SDK还是18,19.越来越多的项目是android stud ...
- 一天搞定CSS: overflow--14
overflow:针对超出父级的内容如何显示 代码演示 <!DOCTYPE html> <html> <head> <meta charset="U ...
- .net core中引用webservice,并忽略https证书验证
1.打开vs, 工具-->扩展和更新 下载这个 2. 在admin下右键,添加-->connected service 选择wsdl文件路径,或者服务的url,比如https://**** ...
- Mavnen的几种依赖关系
学习mavnen的时候有几种依赖关系 首先,说一下maven的依赖关系用来干什么? 就是用来控制编译.测试.运行三种classpath的关系 1.compile 的范围 当依赖的scope为compi ...
- 【Selenium】Selenium IDE(alt+ctrl+s)
ttp://www.yiibai.com/selenium/selenium_ide_tool_features.html 学习 Selenium IDE安装 http://seleniumh ...
- bootstrap之daterangepicker---汉化以及扩展
一.扩展的功能 1.初始化时,会自动创建一个select标签: 2.当改变select值时,日期也会自动改变,并且会调用apply按钮的click事件 3.点击此处进行预览 4.github地址:ht ...
- JavaScript中的数组
数组 (1).数组的定义 数组是值的有序集合 javascript数组是无类型的:数组元素可以是任意类型,并且同一个数组的不同元素也可能有不同的类型. 每个值叫做一个元素,而每个元素在数组中有一个位置 ...