27. Copyright ? TAILORWORKS.INC All Rights Reserved.
Switch 文の網羅性
【補足】Switch 文の網羅性
● switch 文の評価に enum, union type, sealed class などの列挙型を使うと、
不足している case があればエラーになる
● int や string を switch の評価に使っても、網羅性チェックは効かない
● API から primitive な値が返ってきても、FE では enum 等に変換する
28. Copyright ? TAILORWORKS.INC All Rights Reserved.
負債事例④
フレームワーク( Python)のアップデート
● 影響範囲が大きく、なかなかアップデートができていなかった
○ 例)主要な ID 型を変えざるを得ない
&スマホアプリに先行して互換性対応を入れる
● 「見える価値」が優先されがちだった
○ (エンジニア側から「見えない価値」の訴求不足??)
● 開発期間?検証期間を確保して対応
事象
原因
対応
29. Copyright ? TAILORWORKS.INC All Rights Reserved.
負債事例⑤
SlowQuery の多発
● いくつものテーブルを join して返すケースが多かった
○ 例:メンバー詳細に色んなデータが紐付いていた
● API が各所で共通利用しており、不必要なデータも取得しているケースがあった
● Server Side Join から Client Side Join へ
○ API の呼び出し回数は増えるが、1リクエストあたりの時間は軽減
○ バックエンドの実装もシンプルになり、バグの温床が減る
○ フロントエンドでは bff を用意して、UI がほしい形式にデータを整形
事象
原因
対応
30. Copyright ? TAILORWORKS.INC All Rights Reserved.
負債事例⑤
【補足】Service Side Join と Client Side Join
Service Side Join Client Side Join
1回の API
呼び出し
3回の API
呼び出し
join
join