ボイラープレート卒業!次世代バックエンド開発のすゝめ
1. はじめに
バックエンド開発における基本的な処理であるCRUD(Create, Read, Update, Delete)処理の実装では、再利用可能なコードのテンプレートであるボイラープレートを利用することが一般的です。
近年では、コード自動生成ツールをうまく活用することで、ボイラープレートによるCRUD処理の実装に代表されるような基本的な繰り返しタスクは削減され、バックエンドエンジニアはより高度で本質的なタスクに集中することができます。
本記事では、そのような次世代バックエンド開発のポイントについて考察します。
2. コード自動生成ツールの概要
アプリケーションにおいて基本的な機能であるCRUD操作を自動的に生成するツールは、開発効率を大幅に向上させ、迅速なプロトタイピングと初期段階でのエラー削減に貢献します。
そのようなツールとして、下記が挙げられます。
- GORM、SQLBoilerなどの各種ORMライブラリ
- postgrestに代表されるRESTful APIを提供するWebサーバー
- PostGraphile、HasuraといったGraphQL API自動生成ツール
弊社では、プロダクトとの親和性からGolangのORMライブラリとしてSQLBoilerを、GraphQL API自動生成ツールとしてPostGraphileを選択し、基本的なCRUD処理は自動生成しています。
具体的なアーキテクチャは、以下の記事で解説しています。
3. 次世代バックエンド開発のポイント
コード自動生成ツールの導入により開発効率が向上する次世代バックエンド開発では、下記に示す4つのポイントにより注力する必要があると考えています。
a. アーキテクチャ設計と選定
自動生成ツールは基本的なタスクの削減に寄与しますが、その前提となるツールの選定やアーキテクチャ全体の設計が不可欠となります。システム全体のスケーラビリティ、信頼性、拡張性を考慮した設計が求められます。
b. パフォーマンス・スケーラビリティの最適化
自動生成されたコードは、必ずしも最適化されているわけではありません。データベースクエリの最適化、キャッシング戦略の実装、リクエスト処理の効率化など、システム全体のパフォーマンスを向上させるためのチューニングが必要です。
c. セキュリティの強化
自動生成されたコードは、基本的なセキュリティ対策を含んでいることが多いですが、アプリケーション固有の脆弱性を防ぐための追加のセキュリティ対策が必要です。エンドポイントの認証と認可、データの暗号化、攻撃ベクトルの特定と対策などが挙げられます。
d. カスタムビジネスロジックの実装
各種ツールが提供できるのは基本的な機能であり、アプリケーションのビジネス要件を満たすことはできません。特定のビジネスルールの理解や調査、ビジネス要件に基づいたロジックの実装や、複雑なデータ処理、統合のためのAPI開発が求められます。
4. まとめ
コード自動生成ツールにより、テンプレ化されるような基本的なタスクを大幅に削減され、バックエンド開発の効率化や開発リソースの節約が実現できます。その中で、バックエンドエンジニアが担う責務は変化し、より高度なアーキテクチャ設計、最適化、セキュリティ、カスタムビジネスロジックの実装などの創造的なタスクに重点が置かれるようになります。
各種自動生成ツールを導入し、知的生産性の高い次世代バックエンド開発を実現しましょう。
フィシルコムのテックブログです。マーケティングSaaSを開発しています。 マイクロサービス・AWS・NextJS・Golang・GraphQLに関する発信が多めです。 カジュアル面談はこちら(ficilcom.notion.site/bbceed45c3e8471691ee4076250cd4b1)から
Discussion