【开篇】个人博客开发技术选型——从想法到实现
开篇前言
2015年源于小前端对大佬的渴望,萌生了搭建自己个人博客的想法,毕竟技术大佬都有自己的博客。
说干就干,开始网上收集相关资料,慢慢了解搭建博客所使用的技术,最后根据成本、自身能力博客1.0正式上线了。当时采用的WordPress + 阿里云的虚拟主机,都是现成的框架,跟着教程走就完事了!
2019年,几年积攒下来,技术方面也提升了不少,Nuxt + Node 对博客进行重构,然后2.0版本就上线了。上线后第一件事就是给自己做个总结,分享下期间遇到的坑~
文章从前端开发者的角度出发,前后端都基于JavaScript语言。
为什么要搭建博客?
1.平时都给别人贡献时间,何不给自己花点时间
2.相比其他博客平台,自己的博客自己就是上帝
3.享受“造孩子”的成就感
博客技术选型
Web客户端
现今主流技术react、vue、ng等框架,前后台分离开发起来效率高了不少,所以这些技术都是首选。
不管是react还是vue项目,默认情况下都是单应用模式(SPA),用于开发博客来讲,有一些无法忍受的缺点
- SEO
- 首屏加载
SPA应用是异步加载,百度搜索引擎暂不支持异步,导致文章无法被收录的问题,以及首屏加载时间过长,严重影响用户体验。
既然有问题,那必然会解决方式,这就涉及到SSR(服务器渲染)。
什么是SSR?引用vue官方的解释:Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行。
通过SSR同时解决了SEO和首屏加载的问题,在选择上当然选择SSR来搭建项目!
后台接口
前后台分离开发,选择上自然是Restful API。加之前端开发对JavaScript的熟悉,后台开发首选Nodejs,减少学习成本。
node也有衍生的框架,主流的有koa、express。两者优选选koa,koa支持async、await不需要各种Callback。
数据库
想快速开发出自己的博客首选MongoDB
服务器
个人博客来讲,购买最低配的服务器即可,完全够用。
阿里云的ECS,最低配一个月大概35左右,参加活动还有折扣。我当时参加活动买的3年/¥650,平摊下来一个月¥18。
版本控制
防止源代码丢失的风险,不建议单独存放本地。github、gitee都是很好的选择。
推荐使用gitee,首先是国内的,不用担心墙,最重要的是gitee私有库是免费的!!!github创建私有库需要收费。
部署工具
剩下的就是部署工具了,服务器配置可以的话可以选择jenkins,否则只能手动部署。
需要用到反向代理nginx和进程管理器pm2
总结
前端:Nuxtjs
后台:Node + Koa2
数据库:MongoDB
服务器:阿里云ECS
版本控制:gitee(私有库)
部署工具:手动挡 + Nginx + pm2
项目开源
文档以及单元测试没有时间写,仅供参考,后续慢慢完善
本博客前端github:https://github.com/ZhanPhty/node-web
本博客后台github:https://github.com/ZhanPhty/node-api