- マスタデータの並列開発に課題意識を持つ方
- マスタデータのスキーマを複数のシステムに多重に定義したことがある方
- Protocol Buffersを使ったDSLの設計手法に興味を持つ方
- Protocol Buffersを使ったDSLの設計手法
- 複数の内製システムをDSLで束ねて高度なインテグレーションを可能にする手法
- マスタデータのトランクベース開発手法と、そのためのスキーマ言語に求められる要素
- マスタデータの動作確認のイテレーションを高速化する手法
モバイルゲームのマスタデータ開発/運用では、マスタデータの編集UI、並行開発可能なバージョン管理、バリデーション、クライアント/サーバでのロード/インポートなど、様々な機能が必要になります。
これらは大抵は言語も動作環境もバラバラになるので、それぞれ異なるシステムを使うことが多くなります。
DeNAでもこのそれぞれに対して独立した内製システムを開発/運用してきましたが、
各システムへの個別にスキーマ定義することによる重複作業や、システム間を跨った操作が必要なワークフローの複雑化を招き、開発効率の低下や、システム利用の敷居の高さが問題になっていました。
また、ブランチを使った並行開発による大量のマージ工数も大きな問題になり、並行開発フロー自体の抜本的な改善も必要とされていました。
本セッションでは、これらの問題の解決策として、マスタデータの入力からロードまでの間の、全てのマスタデータ関連システムで必要なスキーマ情報を統一して扱う、
ProtocolBuffersをベースとしたマスタデータ統一スキーマ言語 Muscleを開発した事例を紹介します。
また、これに合わせてマージ工数の抜本的な削減のために導入した並行開発フローである、トランクベース開発の概要と、
そのためにマスタデータ統一スキーマ言語にどのような機能が求められたのかについても紹介します。