不出意外,这应该是最后一次用Hexo框架写博客了,以后我应该不会用这个框架了,这个框架用了两年了,老实说在用过Wordpress之后我选择了Hexo,我之所以又放弃Hexo,原因有很多,但是我觉得主要的原因就是这个框架让我感觉写博客没有那么优雅。

一直以来

拥有一个博客,或者说在互联网上面拥有一席之地,是我一直以来的一个梦想。从以前在路由器上面获取权限安装LAMP到后来在自己的主机上面安装WordPress,在到现在的Hexo+Travel自动构建。写博客经历了下面几个阶段。
在没有框架的时候,每一篇博客都是用html写的,界面十分简洁,写一篇文章往往容易忘记主要内容,被html的标签消耗了太多的时间,再者就是部署比较繁琐,功能有限。用了WordPress框架,插件确实很多,功能也比较完善,第三方开发的主题也比较丰富,我觉得唯一不够好的就是我习惯不了,已经php的速度实在太慢,没有原生支持markdown。再就是现在的Hexo,Hexo框架写的是静态的博客,部分动态的东西是通过js来实现的,比如文章末尾的评论系统就是通过js将评论存在在leancloud提供的数据库中的,邮箱的收发也是在免费的主机上面的,静态的博客,首先就是写博客不够优雅,其次就是更新比较繁琐,必须有源码,当然可以通过CI来自动构建。最后要考虑到的问题就是我博客上面的文章和图片资源这些东西要能够很好的保存,一个博客的存在的价值很大一部分是建立已有的内容上面的。

其实让我放弃这些东西最主要的原因就是: 我原本想要一个怀旧、宁静、自然、享受生活、记录风格的博客,但是这些博客无论是从写到看都没有给我这种感觉,看看现在这个博客,已经被我弄得乱七八糟的了,一种臃肿的感觉,看看博客里面的内容,大部分都是学习有关的,而生活中的点滴,心中所感,这个博客里面少之又少,这不是我想要的博客。所以在这个暑假我打算开发一个基于Servlet、SQL Server和Hibernate的一个博客系统,之所以选择JAVA作为网站后台的开发语言,并不是我只会Java,而是JSP相较于ASP.NET和PHP有很多优势:

  • 生态良好; 想ORM这种东西,我知道的就有两个,像Hibernate又是学过的
  • 比较习惯使用java来开发后台,其实ASP.NET我在学VB.NET的时候就有学过,那时候都还没有学过JSP,学了VB.NET后我又学了PHP,我是觉得我还是比较习惯JAVA的思维方式。但是如果你说要开发桌面程序的话,我既不会选择swing也不会选择javafx,而是使用操作系统本地的API,想Windows下面的VB.NET或许C#以及VC++,macOS下面的Swift,除了良好的生态更重要的是开发的逻辑。
  • JAVA是半编译的语言,我的主机是Vultr上面的一个4G内存的主机,我比较习惯使用 Red Hat系列的操作系统,对于ASP而言,我就需要安装Windows ServerIIS这两个最佳拍档。我开发的环境是 UNIX 环境.其实最中意的开发过程中的那一套机制。像Maven和Git。我在本地开发后在远程服务器上面部署十分简单优雅,就只需要执行git pull通过源码然后mvn clean package打包就可以了。

预期

博客对我来说有三个重要的方面: 记录、传播和交流
记录是对我个人而言,交流这是评论系统,传播这是在一个稳定、快速的博客系统上面完成的。因此我主要实现以下几个目标:

  • 支持Markdown,同事能够从将hexo中的文章迁移到这来,能够导出文章
  • 评论系统,实现邮件提醒等待功能
  • 支持自定义主题,预留主题开发的接口
  • 实现资源本地存储,对媒体播放、文本阅读的良好支持
  • 其它功能

现状

目前我已经完成了评论系统90%左右的开发,写作部分我有相关的开发经验,这一部分需要的时间相对较少

评论系统目前已经部署上去了: 评论系统

这是一些相关的截图:

性能测试

性能测试

评论功能

评论功能

动态加载

动态加载

7月19日

目前已经完成了核心的功能,接下来就是前台UI的美化和业务逻辑的一些调整了。打包后发现war包有点大,所以会逐渐去掉一些无关的依赖。

  • 完成markdown编辑器的定制
  • 添加webpack支持
编辑器

编辑器

博文

博文

8月8日

  • 同步豆瓣数据,包括书籍、电影、游戏
  • 支持导入hexo源码数据
  • 添加移动端布局
  • 移除过滤器,采用servlet初始化,优化性能
主页

主页

接下来的工作就是添加视频、音乐的播放功能,以及响应速度的进一步提升

8月13日

现在提倡前后端分离,所以我决定去掉jsp,只留下servlet,同时博客的go语言版本以及完成了一大半了.结构是sql server+go+react