2021 年 6 月 9 日

Poppy 如何使用 Prisma Client 来自信地交付产品

Poppy 通过其移动应用程序提供各种类型的出行服务。无论是汽车、滑板车还是电动踏板车,Poppy 都能提供。Prisma 在帮助 Poppy 快速且自信地交付产品方面发挥着至关重要的作用,并且是他们刚刚达到总出行次数 150 万次的重要原因。

How Poppy Uses Prisma Client to Ship Confidently

各种类型的出行服务

Poppy 是一家出行共享服务公司,具有巨大的价值主张:客户可以根据自己想要的出行方式进行大量选择。Poppy 总部位于比利时,在安特卫普、布鲁塞尔以及现在的梅赫伦提供超过 500 辆共享汽车、400 辆电动滑板车和 200 辆电动踏板车。所有这些都可以在 Poppy 的移动应用程序中通过几次点击获得。

虽然 Poppy 提供的服务非常直接,用户体验也很流畅,但使其成为可能的架构却相当复杂。

Poppy 不仅需要交付可在所有设备上运行的移动应用程序,还需要处理幕后的几个复杂问题。其中一些包括处理位置感知、支付、通知等等。

即使面临所有这些复杂性,Poppy 仍然能够快速进行开发并持续交付新功能。帮助他们实现快速开发的一项关键技术是 Prisma Client

Prisma 处于核心地位

Thibaut Nguyen 是 Poppy 的 CTO。作为 GraphQL 的爱好者,他从早期就一直关注 Prisma 的发展。随着 Prisma 成熟,成为那些想要为 Node.js 获得类型安全数据库访问客户端的人的首选,Thibault 知道他想在他的下一个全新项目中使用 Prisma。

我们团队中的两个人是早期的 graph.cool 粉丝,并且对质量和开发者体验印象深刻。我记得当时查看了 Prisma 1,但有点不愿意添加额外的服务器来设置它。然后,当开始一个全新项目时,我们尝试了 Prisma 2 的早期版本,并立即确信我们必须使用它,因为它与 Typescript 集成得非常好。

Thibaut NguyenThibaut Nguyen,Poppy 的 CTO

如今,Poppy 的所有工程师都在使用 Prisma 进行开发,并且它已在生产环境中用于每周服务数千次出行。

Poppy 的技术栈有些复杂。这种复杂性存在于幕后,以帮助确保骑手获得流畅的体验。但是,Prisma 提供的工具,特别是 Prisma Client 提供的出色的 TypeScript 体验,帮助降低了这种复杂性,并使 Poppy 的工程师能够快速行动,同时对他们的代码充满信心。

Poppy's tech stack

Poppy 的技术栈包括托管、框架和第三方服务方面的流行选项,包括

  • 带有 Fastify 的 Node
  • React Native
  • PostgreSQL
  • Redis
  • Twilio
  • Docker
  • Google Cloud Platform

Poppy 的服务需要高度的位置感知。这是他们的技术栈中出现一些复杂性的地方。

PostGIS 是 PostgreSQL 的扩展,它为数据库提供了地理空间功能。Poppy 使用 PostGIS 进行几何计算和执行位置感知的数据库查询。

除此之外,Poppy 还从其车辆中收集 IoT 数据到 Google Big Query 中。这代表需要管理的大量数据。

通过 Prisma Client 进行类型安全的数据库访问对于帮助减少 Poppy 的编码错误至关重要。这种在编写数据库访问代码时增加的信心帮助 Poppy 降低了代码库的整体复杂性,并使他们能够更快地交付产品。

Prisma、TypeScript 和我们相当全面的集成测试的结合使我们有信心重构代码的关键部分。

Thibaut NguyenThibaut Nguyen,Poppy 的 CTO

通过 Prisma Client 进行类型安全的数据库访问对于帮助减少 Poppy 的编码错误至关重要。这种在编写数据库访问代码时增加的信心帮助 Poppy 降低了代码库的整体复杂性,并使他们能够更快地交付产品。

为了乐趣和利润的类型安全数据库访问

类型安全对于各种类型的开发者来说正变得越来越重要。TypeScript 的受欢迎程度一直在飙升,这是有充分理由的。开发者从使用类型安全代码中获得的信心为任何组织带来了巨大的好处。

数据库访问的类型安全也变得至关重要。开发者不再希望通过大量的试错来编写原始 SQL 查询数据库,而是希望确切地知道他们可以做什么和不能做什么。

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

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

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

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

结论

Prisma 对于 Poppy 迄今为止的成功至关重要,团队预计随着公司的发展,它将继续发挥重要作用。类型安全转化为信心。数据库的信心尤为重要,借助 Prisma Client,Poppy 能够实现这一点。

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

不要错过下一篇文章!

订阅 Prisma Newsletter