欢迎来到我的新博客!之前我使用 Hexo 搭建了一个静态博客,但随着需求的变化,它逐渐显得有些力不从心。于是,我决定从头开始,搭建一个全新的全栈博客。这不仅是一次技术上的挑战,也是我总结过去经验、探索新技术的机会。
在这次重写中,我的目标是解决之前遇到的痛点,同时加入一些新功能,让博客更高效、更现代化。以下是我希望实现的几个核心目标:
静态博客确实简单易用,但随着需求的升级,它的局限性也逐渐显现。以下是我选择重写的几个主要原因:
性能与用户体验
静态博客在更新频率高或内容量大时,构建过程变得非常耗时。而动态博客支持实时更新,可以显著提升用户体验。
功能扩展的灵活性
动态博客在扩展功能方面几乎没有限制,可以自由实现各种新特性。
SEO 优势
动态博客天然支持实时更新内容、动态生成站点地图等,有助于搜索引擎快速抓取最新内容。
高度自定义
动态架构可以灵活地满足国际化、多语言支持,以及未来可能集成的 AI 功能需求。
在此次项目中,我选择了 Next.js 和 Go 分别作为前端和后端的核心技术。同时,为了简化管理后台的开发,我使用了 React 和 Ant Design (AntD)。以下是详细的技术栈分析:
Next.js 是一个基于 React 的框架,拥有强大的生态系统和现代化的功能。以下是它的几个关键优势:
服务端渲染 (SSR) 和静态生成 (SSG)
React 生态支持
工具与插件丰富
Go 是一门专注于性能和简洁的编程语言,非常适合作为后端服务的技术选择:
高性能与高并发
Go 的 goroutine 和轻量级线程模型让它在处理大量并发请求时表现卓越。
简洁的语法与强大的标准库
Go 的语法简单明了,易于学习。它的标准库几乎覆盖了开发中常用的功能,大大减少了对第三方依赖的需求。
跨平台与低运维成本
Go 编译后生成的二进制文件体积小、运行高效,可以轻松部署到不同平台,无需复杂的运行环境。
社区活跃与生态完善
Go 的社区非常活跃,有丰富的第三方库和工具支持,开发效率高。
为了高效地管理博客数据,我为项目增加了一个管理后台。这个后台采用 React 和 Ant Design (AntD) 构建,具备以下功能和特点:
快速构建 UI
简化 CRUD 操作
与后端的无缝对接
高扩展性
通过这种设计,管理后台不仅开发高效,还具有很强的可维护性,为博客的长期发展打下了坚实基础。
尽管 Next.js 也支持后端开发,但它并不是专为高性能后端设计的。选择 Go 作为后端是基于以下考量:
更专注的角色分工
性能需求
灵活的部署
尽管 Vercel 提供了便捷的部署服务,但我选择自建 VPS,主要是为了掌控更多细节并学习更多技术。以下是对比:
类别 | 自建 VPS 优势 | Vercel 劣势 |
---|---|---|
自主性 | 完全掌控硬件配置、操作系统和安全设置 | 配置受限,许多功能需要付费 |
灵活性 | 根据需求调整资源、环境配置 | 缺乏深度定制能力 |
学习机会 | 学习服务器运维、性能调优和安全防护 | 无需管理服务器,技术成长有限 |
成本控制 | 长期来看成本可控 | 免费额度有限,超出部分成本较高 |
以下是使用的技术栈及其官方网址: