🎉
TypeORMのレビューポイント
エンティティ定義とリレーションの正確な設定
- エンティティの設計
- @Entity, @Column, @PrimaryColumn/@PrimaryGeneratedColumn などのデコレーターが正しく使われ、各エンティティの責務が明確か。
- リレーションの定義
- @OneToMany, @ManyToOne, @ManyToMany, @OneToOne の関係が適切に定義され、必要に応じて lazy/eager ローディングが使い分けられているか。
パフォーマンスとクエリの最適化
- N+1問題の回避
- リレーションの取得方法やJOINの使用方法を見直し、不要なクエリ発行を防いでいるか。
- クエリビルダー・リポジトリの適切な利用
- 複雑なクエリはクエリビルダーで記述し、コードの可読性とパフォーマンスを両立しているか。
トランザクションとエラーハンドリング
- トランザクション管理の徹底
- 複数のデータ操作が絡む場合、トランザクションを正しく使用し、一貫性を保っているか。
- 例外処理とリトライロジックの実装
- データベースエラーに対する適切なエラーハンドリングが行われ、システムの健全性が維持されているか。
マイグレーションとスキーマの整合性
- マイグレーションの管理
- スキーマ変更に伴うマイグレーションが計画的に実施され、ソースコードとDBスキーマの整合性が保たれているか。
Discussion