yekern
1 月 27 日
我前端时间把 用 8 年的 laravel 5.x 的博客使用 go 重构了,对于使用 PHP 习惯的人来说,重构使用静态语言重构代码量太大了, 如果没有 AI 帮忙可能我写一半就不写了. 不像 laravel 很多都是封装好的开箱即用, 使用 go 很多都需要自己尝试组合然后写适配器 然后配置.
我的建议是如果技术栈特别熟的话, 进行部分替换 别一下就全替换,工作量太大 就如上面说的 会给自己玩死,我的博客网站还不是很复杂呢
### 后端技术栈
- **编程语言**: Go 1.21+
- **Web 框架**: Gin
- **ORM**: GORM
- **数据库**: PostgreSQL 16
- **缓存**: Redis 7
- **搜索**: ZincSearch
- **认证**: JWT
- **容器化**: Docker + Docker Compose
### 前端技术栈
- **前台网站**: Nuxt.js 3 + Vue 3 + TailwindCSS (SSR)
- **后台管理**: Vue 3 + Element Plus + TypeScript
### 基础设施
- **反向代理**: Caddy (自动 HTTPS)
- **部署**: Docker Compose
- **监控**: 结构化日志 + 健康检查
## 系统架构设计
### 整体架构图
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前台网站 │ │ 后台管理 │ │ API 服务 │
│ (Nuxt.js SSR) │ │ (Vue3 SPA) │ │ (Go + Gin) │
│ blog-frontend │ │ blog-admin │ │ blog-api │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Caddy 反向代理 │
│ (自动 HTTPS) │
└─────────────────┘
│
┌─────────────────────────────────────┐
│ │ │
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ PostgreSQL 16 │ │ Redis 7 │ │ ZincSearch │
│ (数据库) │ │ (缓存) │ │ (搜索引擎) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```