用 Go 构建极简博客系统
为什么选择 Go?
在构建个人博客时,我考虑过很多技术栈:Node.js、Python、PHP、Ruby...最终选择了 Go,原因很简单:
- 单二进制部署 — 编译后就是一个文件,扔到服务器就能跑
- 性能优秀 — 原生编译,内存占用极低
- 标准库强大 — html/template、net/http 已经够用了
技术选型
| 组件 | 选择 | 理由 |
|---|---|---|
| Web 框架 | Gin | 轻量、高性能、生态成熟 |
| 数据库 | SQLite | 零配置、单文件、够用 |
| 模板引擎 | html/template | 标准库,无需额外依赖 |
项目结构
blog/
├── main.go
├── config/
├── internal/
│ ├── handler/
│ ├── model/
│ ├── repository/
│ ├── service/
│ └── middleware/
├── template/
└── static/
核心设计
双格式内容
文章支持 Markdown 和富文本两种格式,在新增时选择:
- Markdown:使用 goldmark 渲染,适合技术文章
- 富文本:直接存储 HTML,适合排版需求较高的内容
极简原则
整个系统遵循"少即是多":
- 无侧边栏的详情页,专注阅读
- 首页两栏布局,信息密度与留白兼顾
- 青色主题,沉静温雅
总结
Go 非常适合构建这类轻量级应用。一个二进制文件 + 一个 SQLite 数据库文件,就是全部。
写代码如写诗,追求简洁与优雅。