2021 年 5 月 10 日

Grover 如何利用 Prisma 提高速度

Grover 提供按月订阅的科技产品租赁服务,并将其服务拆分给多个团队负责。最近,一些团队通过采用 Prisma 显著提高了生产力。请继续阅读,了解 Prisma 为 Grover 带来了哪些益处,以及你也能如何从中受益。

How Grover Moves Faster with Prisma

更新我的设备

Grover 提供按月订阅的科技产品租赁服务。Grover 让客户无需以全价购买最新款手机、平板电脑和电脑,而是通过租赁的方式使用这些设备,并在新品发布时进行更换。这不仅打破了所有权和使用权之间的界限,也是一种更可持续、更循环利用科技产品的方式。

超过 80 万人选择使用 Grover,不再让旧科技产品闲置抽屉积灰。随着他们最近筹集的 6000 万欧元 B 轮融资,预计其消费电子产品订阅数量将显著增长。

跨团队拆分服务

随着组织的壮大,通常会有多个开发团队,每个团队负责特定的服务或产品领域。当团队拆分并拥有自己的技术栈和偏好时,数据和知识可能会孤立,沟通也可能面临挑战。

Grover 是一个很好的例子,它平衡了团队的独立性和自主性与整体协作:他们能够通过独立的开发团队快速行动,每个团队使用不同的技术栈,但将服务有机地整合在一起。

Grover 之所以能做到这一点,很大程度上归功于他们如何整合数据并使其通过联合 GraphQL API 访问。Prisma 正在绿地和棕地项目中日益成为实现这一成功的关键组成部分。

让我们仔细看看这种设置:Grover 的所有服务都通过联合 GraphQL API 暴露,这意味着每个团队都可以选择自己的技术栈,只要输出可以通过 GraphQL 使用即可。

具体来说,对于他们的 Apollo Federation,Grover 拥有 14 个由多个开发团队开发和维护的独立服务(并且还在不断增加)。

团队中使用的语言包括 TypeScript、Ruby 和 Python。一些团队使用 TypeGraphQL,而另一些团队使用 Nexus

Overview of Grover's Apollo federated GraphQL API

鼓励实验

在 Grover,实验受到鼓励和奖励,团队间的知识分享也一样。通过跨团队协作,Grover 的开发者分享重要的经验教训,并能够推广可能让彼此工作更轻松的技术。

我们采访了 Grover 的软件工程师 Ricardo Almeida,他分享了自己使用 Prisma 的经历以及他的团队如何鼓励使用它。他于 2020 年开始尝试使用 Prisma,并立即看到了成功。Ricardo 对 Prisma 的兴趣很快在他所在的团队(他们已经在生产环境中实施了 Prisma)以及 Grover 的其他团队中传播开来,从而使得在新项目中自然采用 Prisma 的趋势不断增强。

“Prisma 的学习曲线很低。结合使用 TypeScript 实现端到端类型安全后,生产力变得更高。”

这种引入创新技术并尝试各种语言和库的自由确保了 Grover 能够满足客户需求并缩短上市时间。

Prisma 带来的成功

Prisma 提供三大核心产品,帮助开发者快速行动并安全地编写代码。

  • Prisma Client - 一个用于 TypeScript 和 Node 的类型安全数据库访问客户端。

    Prisma Client 在进行数据库查询时提供了类型安全,增强了 Grover 在数据库访问方面的信心。

  • Prisma Migrate - 一个用于无缝数据库迁移的工具

    Grover 使用 Prisma Migrate 进行数据库内省和迁移非常顺畅简单,尤其是在需要更改生产环境中的数据库结构时。

  • Prisma Studio - 一个现代化的浏览器和桌面数据库 GUI

    Grover 的开发者受益于其数据库丰富的用户界面,可以轻松查看和编辑数据。

对于 Ricardo 来说,Prisma 的所有三大核心产品结合在一起,提供了卓越的开发者体验,并在编写代码时节省了时间。

“Prisma 提供了一种更标准化的方式来访问数据库、执行迁移和查看数据,所有这些都是开箱即用的。Prisma 提供了一种单一且标准化的构建查询方式,我们确信不会遇到数据分组、连接或将不同库粘合在一起的问题。”

使用 Prisma,开发者可以获得开箱即用的类型安全数据库访问客户端。

数据库模型使用 Prisma Schema Language 编写,并自动从中生成 TypeScript 类型。

使用 Prisma 建模的数据库易于读写。

通过一个简单的命令,Prisma 模型即可提供类型安全的数据库访问客户端。

Prisma 在 Grover 的不同技术栈中流行起来

Grover 对实验的鼓励意味着公司各团队拥有不同的技术栈。对大多数团队而言,是以某种方式混合使用 TypeScript 和 GraphQL,但具体细节各异。

自从 Ricardo 在 Grover 开始使用 Prisma 以来,他一直在与其他团队举办学习交流会,让开发者了解 Prisma 提供的类型安全优势,以及使数据库操作更轻松的全面工具。

当 Grover 的开发者亲眼看到 Prisma 的产品实际运行时,奇妙的事情通常就会发生。

诸如数据库内省等功能强大地展示了 Prisma 的能力。通过内省,开发者可以从现有数据库开始,通过一个命令从中派生出一个 Prisma 模型。这为开发者节省了大量本来需要花费在重建模型上的时间。相反,他们可以立即投入工作。

Prisma Migrate 提供了另一个强大的功能展示。通过 Migrate,几个命令就可以修改数据库以与 Prisma 模型的状态保持一致。Migrate 可以沿 CI/CD 管道触发,以便在生产环境中轻松生效迁移。

由于 Prisma 可以在任何可以安装 node 模块的地方使用,因此它与 Grover 使用的各种技术栈完美契合。

Grover has 14 different services using various tech stacks

结论

尽管有些团队仍在观望,但 Ricardo 预测 Prisma 的采用率在不久的将来会提高。

“我非常希望看到其他团队迁移到使用 Prisma,因为我只看到使用它带来的好处。”

Prisma 使 Ricardo、他的团队以及 Grover 的许多其他团队在处理数据库时大大提高了生产力。

想了解更多关于 Prisma 如何帮助你的团队提高生产力的信息,请加入 Prisma Slack 社区

不要错过下一篇文章!

订阅 Prisma 新闻简报