瞎扯淡 稍微复杂点的后端项目除了 Rails 还能选什么?

newerer · 2026年01月03日 · 最后由 willx 回复于 2026年01月04日 · 275 次阅读

本想着使用 NestJS,全栈都用 Javascript 的,但是 NestJS 整个用起来,ORM 设计比起 Rails 非常糟糕。

// NestJS的迁移写法
export class CreateUser1660000000000 implements MigrationInterface {
  async up(queryRunner: QueryRunner) {
    await queryRunner.query(`
      CREATE TABLE "user" (
        "id" SERIAL PRIMARY KEY,
        "name" varchar NOT NULL,
        "age" int NOT NULL
      )
    `);
  }

  async down(queryRunner: QueryRunner) {
    await queryRunner.query(`DROP TABLE "user"`);
  }
}

实在受不了了,去问问 ChatGPT,有什么建议。

结果给了四个建议:Django(Python)、Laravel(PHP)、Phoenix(Elixir)和 AdonisJS。

# users/models.py
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

    def __str__(self):
        return self.name
// database/migrations/xxxx_create_users_table.php
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->integer('age');
    $table->timestamps();
});

Django(Python)、Laravel(PHP)以前我也用过,性能上没有什么优势,但是 PHP 和 Python 的语法,相差 Ruby 实在太多了,不想去选择。

然后看了一下 Phoenix(Elixir),他似乎不太合适用在 CRUD 的后端项目上,而综合下来看,AdonisJS 其实是挺好的。

但是 AdonisJS 太少人关注了。

这几年 Rails 基本都没什么变化了,怎么还没有后端框架赶上。实在是不可思议。

如果复杂是指业务复杂,那么框架用得越熟练的越好。

适用场景不一样吧,nest 等的目标是通用后端,而 rails、laravel、django、phoenix 和 adonisjs 都是为 SaaS 服务的。

这几年 Rails 基本都没什么变化了

这句话不敢苟同。最近几年 Rails 在解决当下痛点方面做了很多改进,Solid Cache, Solid Queue, Thruster 都是好东西啊。

试试 drizzle,typescript 加持的 sql builder 挺爽的,直接不用 orm 了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号