PHP 网站重构, Rust/ Python + PostgreSQL + astro+solid,大家觉得怎么样子

1 月 27 日
 Loser110

如题,传统 php 网站,mysql 数据库,一些 crud 等,pdf 、excel 等处理

准备重构:
后端 Rust+python 微服务处理 pdf 、excel 等
前端 astro+solid
数据库 PostgreSQL

部署 Podman

大家觉得如何,有没有更优化的组合。

前几天我还在用 Go ,但是,因为感觉很多人倾向于 Rust 替代 Go ,所有把 Go 替换成 Rust 在试一试

2450 次点击
所在节点    程序员
17 条回复
Actrace
1 月 27 日
感觉会把自己玩死。。。
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 │
│ (数据库) │ │ (缓存) │ │ (搜索引擎) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```
Loser110
1 月 27 日
@yekern 当然是逐步替换,一下子全部替换开发就停滞了,写好一个,替换一个。一键部署
Loser110
1 月 27 日
@yekern 没有 AI 肯定搞不了,正是因为 AI ,才可以尝试其他有挑战性的语言
Loser110
1 月 27 日
@yekern log 你是怎么统一化弄的呢,目前还没有头绪
yekern
1 月 27 日
@Loser110 #5 为 GIN 还有 GORM 还有其他使用日志的地方 根据 GIN 或者 GORM 的接口要求 分别实现,然后输出统一的格式
mengdodo
1 月 27 日
@yekern show me your blog😄
yekern
1 月 27 日
@mengdodo https://esc.show
2024
1 月 27 日
我是把 go 项目直接接入 laravel telescope; 请求内的 log 和 sql 都和 laravel 一样查看调试

https://github.com/go-home-admin
Loser110
1 月 27 日
@2024 这是有想法的
2024
1 月 27 日
@Loser110 #10 根据数据库表信息,直接生成 orm 代码,代码编写也和 laravel 一样,同时用多语言开发项目,就不会混乱...
Smileh
1 月 27 日
重构的目的是什么
Loser110
1 月 27 日
@Smileh 更快,更少的服务器消耗
Loser110
1 月 27 日
@2024 我用微服务架构,podman 一键部署,维护开发不成问题,难点在于上手,php 写这么多年了,转 go 很不适应,希望 rust 能简单些
2024
1 月 27 日
@Loser110 #14 如果 go 都不适应,那么 rust 一定更加不适应
Loser110
1 月 27 日
@2024 但是学了 go 对 rust 有帮助哈,在这基础上学 rust 就相对轻松些,这两差别小。并且,感觉更喜欢 rust 的语法,有点像 js
yjhatfdu2
1 月 27 日
当然是考虑一下新一代的 next.js ,新一代的 php😅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1188684

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX