V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Loser110
V2EX  ›  程序员

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

  •  
  •   Loser110 · 18 小时 19 分钟前 · 631 次点击

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

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

    部署 Podman

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

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

    Actrace
        1
    Actrace  
       17 小时 3 分钟前   ❤️ 1
    感觉会把自己玩死。。。
    yekern
        2
    yekern  
       16 小时 35 分钟前
    我前端时间把 用 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
        3
    Loser110  
    OP
       16 小时 27 分钟前
    @yekern 当然是逐步替换,一下子全部替换开发就停滞了,写好一个,替换一个。一键部署
    Loser110
        4
    Loser110  
    OP
       16 小时 25 分钟前
    @yekern 没有 AI 肯定搞不了,正是因为 AI ,才可以尝试其他有挑战性的语言
    Loser110
        5
    Loser110  
    OP
       16 小时 10 分钟前 via Android
    @yekern log 你是怎么统一化弄的呢,目前还没有头绪
    yekern
        6
    yekern  
       16 小时 7 分钟前
    @Loser110 #5 为 GIN 还有 GORM 还有其他使用日志的地方 根据 GIN 或者 GORM 的接口要求 分别实现,然后输出统一的格式
    mengdodo
        7
    mengdodo  
       16 小时 2 分钟前
    @yekern show me your blog😄
    yekern
        8
    yekern  
       16 小时 2 分钟前
    @mengdodo https://esc.show
    2024
        9
    2024  
       15 小时 42 分钟前
    我是把 go 项目直接接入 laravel telescope; 请求内的 log 和 sql 都和 laravel 一样查看调试

    https://github.com/go-home-admin
    Loser110
        10
    Loser110  
    OP
       15 小时 40 分钟前
    @2024 这是有想法的
    2024
        11
    2024  
       15 小时 34 分钟前
    @Loser110 #10 根据数据库表信息,直接生成 orm 代码,代码编写也和 laravel 一样,同时用多语言开发项目,就不会混乱...
    Smileh
        12
    Smileh  
       15 小时 25 分钟前
    重构的目的是什么
    Loser110
        13
    Loser110  
    OP
       15 小时 7 分钟前 via Android
    @Smileh 更快,更少的服务器消耗
    Loser110
        14
    Loser110  
    OP
       15 小时 5 分钟前 via Android
    @2024 我用微服务架构,podman 一键部署,维护开发不成问题,难点在于上手,php 写这么多年了,转 go 很不适应,希望 rust 能简单些
    2024
        15
    2024  
       14 小时 56 分钟前
    @Loser110 #14 如果 go 都不适应,那么 rust 一定更加不适应
    Loser110
        16
    Loser110  
    OP
       14 小时 53 分钟前 via Android
    @2024 但是学了 go 对 rust 有帮助哈,在这基础上学 rust 就相对轻松些,这两差别小。并且,感觉更喜欢 rust 的语法,有点像 js
    yjhatfdu2
        17
    yjhatfdu2  
       8 小时 6 分钟前 via iPhone
    当然是考虑一下新一代的 next.js ,新一代的 php😅
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:35 · PVG 06:35 · LAX 14:35 · JFK 17:35
    ♥ Do have faith in what you're doing.