2018年全栈开发个人博客技术选型
原文地址:Lewis19990@Amoy
写在前面
2016年底我上线了自己的博客1.0,当时采用的是Vue.js + express.js前后端分离、无数据库的spa方案。
2018年初我着手重构并上线了博客2.0,在此整理并分享一下我全栈开发个人博客的技术选型。
按照惯例先放上链接:
- 博客地址:Lewis1990@Amoy
- 代码仓库:Lee-Cloud/blog-client
弃用方案
- Wordpress
- Hexo
以上两个都是快速搭建博客的常用方案,为什么弃用呢?
- Wordpress虽然没具体用过,但缺点大概就是臃肿、模板不好看之类。
- Hexo可参考我的另一篇文章:《使用Hexo-GitHub-Pages快速构建个人博客指南》。
为什么重构
- spa方案SEO是硬伤啊,尤其是博客这种对SEO强依赖的产品。
- 一年多来感觉自己有那么一点点长进,可以尝试运用更多技能来完善博客开发。
最新开发个人博客技术选型
客户端
所有前后端分离SPA项目最致命的共同的2个痛点:
- SEO
- 首屏渲染
尤其是博客这种C端产品更是如此,搜索引擎搜索不到博文、渲染速度慢导致用户流失是非常致命的。
而近期兴起的SSR(服务端渲染)正好可以较好地解决这两个问题,由此引出我们的第一个技术栈 —— nuxt.js。
Why Nuxt.js ?
- 从头搭建一个服务端渲染的应用是相当复杂的,但Nuxt.js让这一切变得简单。
- Nuxt.js是一个Vue.js 通用应用框架,对于熟悉Vue.js的开发者来说学习成本很低。
管理端
一个用来管理博客内容的后台系统必不可少,推荐技术栈二选一:
- Vue.js + elementUI
- 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服务等。有想到其他的话再补充,或者各位看官有什么问题也欢迎联系我,共同进步。