Elsevierは科学出版における情報および分析の世界的リーダーであり、研究者や医療従事者が科学を進歩させ、社会のために健康成果を改善するのを支援しています。
Prismaの助けを借りて、Elsevierは科学出版プロセスを効率的かつ柔軟に近代化している最中です。

科学とヘルスケアの進歩への貢献
Elsevierの研究者や医療従事者を支援するという使命は出版に根ざしており、情報と分析の世界的リーダーへと発展しました。非常に多くの健康関連情報がリアルタイムで共有されているため、Elsevierは既存の手動査読プロセスを近代化し、高速化する時期が来たと判断しました。
査読プロセスを高速化するアプリケーションを構築することは、Elsevierがヘルスケア研究のリーダーであり続けるのに役立つでしょう。彼らは、Serghei Ghidora(技術リード)、Paul Foeckler(プロダクトオーナー)、およびUXデザイナーからなる少人数のプロジェクトチームを編成し、査読プロセスをより速く、より効率的にするための最小実行可能製品(MVP)を開発しました。
Prismaで強固な基盤を構築
非常に手作業が多く、論理的に複雑な出版プロセスを合理化するのは困難な作業です。Sergheiは、成功するMVPを開発するためには柔軟性が鍵となることを知っていました。
「ユーザーのフィードバックに基づいて迅速に製品を動かし、変更する柔軟性が非常に重要でした」
GraphQLは、多ユーザー文書編集に必要なネストされたデータ構造を提供しました。プロジェクトで唯一の技術者であったSergheiは、差別化されない作業を排除するツールが必要であることも認識していました。定義、リゾルバ、スキーマ、モデルをすべて一人で扱うのは、一人の開発者にとっては気が遠くなるような作業です。
「それらすべてを一人で書くのは大変な作業です。特に、一度書けば終わりというわけではないからです。書いてはリファクタリングし、変更します。うまくいかなかったものはゴミ箱に捨てます。ユーザーと再度実験する必要があります。迅速に動かし、迅速に変更する柔軟性が、非常に重要でした。」
GraphQLと最も相性の良い技術を探し、可能な限り手動でのコーディングを排除するために、SergheiはNexusと組み合わせたPrismaを発見しました。Prisma ClientとPrisma Migrateを使用することで、Sergheiはスピード、開発者体験、柔軟性を中心とした強固な基盤を築きました。
Prisma Migrateでユーザーフィードバックに迅速に対応
チームは毎日ユーザーと対話することで、彼らのニーズとMVPの最優先機能が何であるかを理解することに重点を置きたいと考えていました。SergheiはPrisma Migrateを使用して、完全にカスタマイズ可能なデータベーススキーマのマイグレーションを自動生成することで、迅速かつ問題なく変更を実装できる自信を得ました。
ユーザーフィードバックに基づいて、データベースエンティティの完全な削除や追加など、データベースに変更が加えられることがあります。Prismaがなければ、そのような変更はSergheiにリファクタリングやエラー処理により多くの時間を費やさせ、イノベーションに費やす時間を減らしていたでしょう。
「データモデルの実験に関しては、マイグレーションなどを扱うのは素晴らしいことです。Prismaで何かを追加したり削除したりでき、マイグレーションを実行すれば、Prismaがすべてを自動で行ってくれます。」
Prisma Clientで自信を持って柔軟性を維持
Prisma ClientのTypeScript体験は、変更後のコードの信頼性を確保することで、開発にとって非常に重要であることが証明されました。
「Prismaの特性が、物事をうまく構造化する方法を提供してくれるのだと思います。また、TypeScriptであることも大きいですね?だから、見落とすことがありません。フロントエンドアプリケーションの型は、常にデータベースレベルで利用可能なものと同期しています。これは非常に大きなことです。将来の拡張性にとって重要な要素だと思います。なぜなら、常に両端が同期しているからです。」
Sergheiは、将来の拡張性を維持しつつ、迅速に作業できる技術を選択することの重要性を理解していました。
「私たちは現在、MVPを通じて実際の科学的な作業を実行しています。すでに大規模で複雑な製品であるにもかかわらず、MVPはまだ持ちこたえています。コアが非常によくできているため、重要な機能が動作しないようなバグはほとんどありません。そして、Prismaはその基盤を構成する要素の一つです。」
この柔軟性は、たった一人の技術リードがわずか10ヶ月で意義深い製品を生み出す上で大きな要因となりました。
アプリケーションのアーキテクチャ
Prismaに加えて、SergheiはMVPを実現するためにいくつかの他の技術も活用しました。プロジェクト構造は以下のようになっており、Prismaは複数のアプリに型を提供しています。
Prisma & Nexusパッケージには、Prismaスキーマ、マイグレーション、およびすべてのアプリとサービスで使用されるすべての生成された型が含まれています。ラムダはPrismaクライアントをインポートし、リソースを直接更新します。この構成により、Prisma Clientの型安全なデータベースアクセスのおかげで、データベースとフロントエンドの型が同期されます。
Prismaに支えられたビジネスロジックパッケージは、GraphQL APIスキーマとフロントエンドを提供します。PrismaとGraphQLを組み合わせることで、各査読に必要なデータのみが返されることが保証されます。APIとフロントエンドの両方をTypeScriptで記述することで、データベースアクセスを記述する際の信頼性が高まり、機能アップデートをより迅速にリリースできるようになります。
スキーマに破壊的変更があった場合、TypeScriptはデータモデル型のすべてのインスタンスでエラーを発生させ、プロジェクト構造全体での簡単な特定と、よりスムーズで柔軟な開発者体験を実現します。
MVPはすでにジャーナル出版ワークフローの効率向上を示しています。Elsevierは、これまでの成果をさらに拡大するための適切な技術が導入されていると確信しています。
Elsevierの初期の成功をさらに発展させる
初期の結果に基づいて、Elsevierは出版フローの近代化への投資を継続することに意欲的です。彼らは現在、製品をMVPから本格的な本番稼働可能なものへと移行しています。
Prismaのようなツールを活用することで、Elsevierチームは、オンライン査読フローを通じてより多くの科学出版物を推進するための、より役立つツールを構築できます。
Prismaが柔軟性と生産性の向上にどのように役立つかについて詳しく知るには、Prisma Slackコミュニティに参加してください。
次回の投稿をお見逃しなく!
Prismaニュースレターに登録