2021年6月9日

PoppyがいかにPrisma Clientを使って自信を持って出荷するか

Poppyはモバイルアプリを通じてあらゆる種類の乗り物を提供しています。車、スクーター、電動キックボードなど、Poppyなら何でも揃います。PrismaはPoppyが迅速かつ自信を持ってサービスを提供するために不可欠な役割を果たしており、これまでに累計150万回の乗車を達成した大きな理由となっています。

How Poppy Uses Prisma Client to Ship Confidently

あらゆる種類の乗り物

Poppyは、顧客が希望する乗り物を豊富に選択できるという大きな価値提案を持つモビリティシェアリングサービスです。ベルギーを拠点とし、アントワープ、ブリュッセル、そして現在ではメヘレンでも、500台以上のシェアカー、400台の電動スクーター、200台の電動キックボードを提供しています。これらすべては、Poppyのモバイルアプリで数回タップするだけで利用可能です。

Poppyの提供するサービスはシンプルで、ユーザーエクスペリエンスもスムーズですが、これを可能にしているアーキテクチャはかなり複雑です。

Poppyはあらゆるデバイスで動作するモバイルアプリを提供する必要があるだけでなく、舞台裏で位置認識、決済、通知などのいくつかの複雑な処理を扱う必要があります。

これらすべての複雑さにもかかわらず、Poppyは開発を迅速に進め、常に新機能をリリースしています。彼らが迅速な開発を達成するのに役立った重要な技術の一つは、Prisma Clientです。

コアとしてのPrisma

Thibaut NguyenはPoppyのCTOです。GraphQLのファンである彼は、Prismaの初期開発時からその動向を追っていました。PrismaがNode.js向けの型安全なデータベースアクセスクライアントを求める人々にとって最良の選択肢へと成熟するにつれて、Thibaultは次のグリーンフィールドプロジェクトでPrismaを使用したいと考えるようになりました。

チームの2人は初期のgraph.coolのファンで、その品質と開発者エクスペリエンスに非常に感銘を受けていました。当時Prisma 1を検討しましたが、セットアップのためにもう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はGoogle BigQueryで車両からIoTデータを収集しています。これは管理が必要な大量のデータに相当します。

Prisma Clientを介した型安全なデータベースアクセスは、Poppyのコーディングエラーを減らす上で不可欠でした。データベースアクセスコードを書く際のこの追加された信頼性が、Poppyのコードベース全体の複雑さを軽減し、より迅速なリリースを可能にしました。

Prisma、TypeScript、そしてかなり徹底した結合テストの組み合わせにより、私たちはコードの重要な部分をリファクタリングする自信を得ています。

Thibaut NguyenThibaut Nguyen、Poppy CTO

Prisma Clientを介した型安全なデータベースアクセスは、Poppyのコーディングエラーを減らす上で不可欠でした。データベースアクセスコードを書く際のこの追加された信頼性が、Poppyのコードベース全体の複雑さを軽減し、より迅速なリリースを可能にしました。

楽しさと利益のための型安全なデータベースアクセス

あらゆる種類の開発者にとって、型安全性はますます重要になっています。TypeScriptの人気は急上昇しており、それには十分な理由があります。型安全なコードを扱うことで開発者が得られる信頼性は、あらゆる組織に計り知れない利益をもたらします。

データベースアクセスのための型安全性もまた、非常に重要になっています。データベースをクエリする際に試行錯誤を繰り返しながら生のSQLを書く代わりに、開発者は何ができて何ができないかを正確に知りたいと考えています。

Prismaを使用すると、開発者はすぐに型安全なデータベースアクセスクライアントを利用できます。

データベースモデルはPrismaスキーマ言語で記述され、TypeScriptの型はそれから自動的に生成されます。

Prismaでモデル化されたデータベースは読み書きが簡単です。

単一のコマンドで、Prismaモデルは型安全なデータベースアクセスクライアントを提供します。

まとめ

Prismaは今日までのPoppyの成功に不可欠であり、チームは会社が成長するにつれて、Prismaが引き続き大きな役割を果たすと予想しています。型安全性は信頼性につながります。データベースにおける信頼性は特に重要であり、Prisma Clientを使用することでPoppyはこれを達成できています。

Prismaがチームの生産性向上にどのように役立つか詳細を知るには、Prisma Slackコミュニティにご参加ください。

次の投稿をお見逃しなく!

Prismaニュースレターに登録

© . All rights reserved.