2018年全栈开发个人博客技术选型

3,369 阅读3分钟
原文链接: blog.lee-cloud.xyz

写在前面

2016年底我上线了自己的博客1.0,当时采用的是Vue.js + express.js前后端分离、无数据库的spa方案。

2018年初我着手重构并上线了博客2.0,在此整理并分享一下我全栈开发个人博客的技术选型。

按照惯例先放上链接:

弃用方案

  • Wordpress
  • Hexo

以上两个都是快速搭建博客的常用方案,为什么弃用呢?

  1. Wordpress虽然没具体用过,但缺点大概就是臃肿、模板不好看之类。
  2. Hexo可参考我的另一篇文章:《使用Hexo-GitHub-Pages快速构建个人博客指南》

为什么重构

  1. spa方案SEO是硬伤啊,尤其是博客这种对SEO强依赖的产品。
  2. 一年多来感觉自己有那么一点点长进,可以尝试运用更多技能来完善博客开发。

最新开发个人博客技术选型

客户端

所有前后端分离SPA项目最致命的共同的2个痛点:

  • SEO
  • 首屏渲染

尤其是博客这种C端产品更是如此,搜索引擎搜索不到博文、渲染速度慢导致用户流失是非常致命的。

而近期兴起的SSR(服务端渲染)正好可以较好地解决这两个问题,由此引出我们的第一个技术栈 —— nuxt.js。

Why Nuxt.js ?

  1. 从头搭建一个服务端渲染的应用是相当复杂的,但Nuxt.js让这一切变得简单。
  2. Nuxt.js是一个Vue.js 通用应用框架,对于熟悉Vue.js的开发者来说学习成本很低。

管理端

一个用来管理博客内容的后台系统必不可少,推荐技术栈二选一:

  1. Vue.js + elementUI
  2. React.js + antDesign

后台接口

对于前端开发工程师来说,node.js肯定是首选,2.0选用的是两大node.js框架的另一个koa。

koa的生态虽然还比不上express,但最重要的是 No Callback! No Callback! No Callback!

数据库

DB的选择无非也就两种:

  • 非关系型数据库: mongoDB
  • 关系型数据库: mysql

虽然非关系型数据库更符合前端的编程习惯(个人认为),但mysql应用更广泛,而且目前公司运用的DB也是mysql,sql更是程序员的一门必修课,因此选择mysql。

mysql的可视化工具推荐sequel pro,比mysqlWorkBench友好多了。

服务器

AWS号称免费,但是每个月还是收了我十几刀,果断弃坑,改用阿里最低配ECS,一年三百多。毕竟最低配,因此运维起来还是有些坑需要注意,后面另说。

版本控制

Git,这个也没啥好说的,关于git工作流可参考我的另一篇文章《gitflow》

自动化部署

jenkins,配置好脚本后,一键部署时会自动从GitHub上拉取代码、打包、部署。非常方便,但是最低配的ECS跑jenkins有点压力。

其他

剩下的还有nginx用来进行端口转发、pm2用来部署node服务等。有想到其他的话再补充,或者各位看官有什么问题也欢迎联系我,共同进步。