访问被拒绝,你可能没有权限或未登录。

Rails Rails 单体应用的极简架构

ratazzi · August 31, 2025 · Last by stephen replied at September 26, 2025 · 1061 hits

本着极简化的原则,通过限定具体技术栈来简化架构和开发流程。遵循 Rails "约定胜于配置" 的哲学,最大化利用框架本身的效率和优势。不使用微服务、不做前后端分离、不引入 K8s 等复杂基础设施。

开发环境

  • 使用 Hotwired 避免 SPA 带来的复杂性,回归服务端渲染的高效开发模式
  • 采用现代原生 ES6 + Import Maps 方案,完全 #NOBUILD,告别构建工具的复杂配置
  • 直接引入 Tailwind CSS:<script src="https://cdn.tailwindcss.com"></script>,零构建步骤
  • 使用 Solid Queue + PostgreSQL 实现异步任务处理,无需额外的消息队列或 Redis

生产环境

  • Rails PumaThruster 直接面对 ALB,省去 Nginx 等反向代理层,因为主要处理动态请求
  • 使用 Propshaft 进行静态资源构建和管理
  • 结合 Cloudflare HTTP 103 Early Hints 在首次请求时告知浏览器预加载 CSS 资源,显著提升页面渲染速度
  • 通过 Cloudflare Workers 处理静态文件和 S3 请求,实现边缘计算网关,提升性能和可靠性
  • 基于 rails routes 生成白名单路径规则,在边缘层直接拦截无效请求,减少服务器负载并提升安全性

写了几年 Rails 之后真的是不想再用别的了,而且越来越懒,不想用复杂的技术

适合一个人,三个人以上就容易抓瞎

AI 时代说不定是一个很好的思路,让 AI 来写代码

我想明白了,当我们在讨论这个这个问题的时候,它并不单单是一个技术问题,更是一个产品问题。如果不站在一个更高的维度上来思考问题,就在喊单体,但是做产品时,没有取舍,搞成复杂的产品模式,复杂的交互等,用单体和简单的 Javascript 方案就很难解决问题。

Reply to qichunren

其实也不是产品复杂或者简单的问题。现在大量使用 vuejs,就管理后台这部分而言,其实更多的是使用那些现成的框架和组件,从而减少工作量。如果 Hotwired 也有一套成熟的后台框架和组件,我相信使用者也不少,效率也提高很多,甚至综合起来,更高效。

You need to Sign in before reply, if you don't have an account, please Sign up first.