抽象度統一の原則(SLA原則, SLAP)
1. 原則
- コードの抽象度は統一せよ
- 抽象度に応じてコードを分割せよ
- 最上位の関数は関数呼び出し
- 具体的な処理は下位関数として実装する
- 同じレベルのコードはまとめて関数化する
- 呼び出しを階層化し、呼び出しレベルを統一する
- 読むべきコードを削減する
2. 根拠
可読性
- ソースコードはできるだけ条件分岐や繰り返しがない方がわかりやすくなる
保守性
3. 指針
- メソッド内の処理のすべてのステップは、同じレベルの抽象化である必要があります
- 言い換えれば、彼らは彼らの詳細を公開するべきではなく、彼らに意図を明らかにする名前を与える別々のメソッドに詳細を移動するべきです
- メソッドの各部分は、どのように行われているのかではなく、何が行われているのかを伝える必要があります
- 演算、条件分岐、ループは隠蔽せよ
4. 注意事項
- 関数名と処理内容が乖離を注意を払う
参考資料
- プリンシプルオブプログラミング p48
- 実装パターン
- プロダクティブ・プログラマ
- リファクタリング
- 汝、SLAPを愛せよ。 - Qiita
- SLAPを覚えてリファクタリングをしよう - きり丸の技術日記
- コーディング原則の一つSLAP – 株式会社シーポイントラボ | 浜松のシステム・RTK-GNSS開発