配列/連想配列はラップせよ
1. 原則
- 配列や連想配列はそのまま変数に格納して取り扱わず、データを内包するクラスを作成しラップする
- 配列や連想配列内のデータに対する操作をコードのあちらこちらに断片化させてはいけない
2. 根拠
特定のデータに対する操作をコード中に分散させてはいけない
- 特定のデータに対する操作がコード中に分散して現れるのはコードが無秩序であるということであり、保守性に問題があることを示している
- 単一責任原則にも反する
3. 指針
配列や連想配列のデータをラップするクラスを定義する
- 以下のような配列があるとする(例えば、DBから取得してきたデータやWeb APIから取得してきたJSONなどが想定される)
values = [
{
id: 1,
name: 'user1',
age: 20
},
{
id: 2,
name: 'user2',
age: 30
},
{
id: 3,
name: 'user3',
age: 40
},
...
]
- このようなデータを変数に入れて使い回すのではなく、このデータを内包するクラスを定義する
class Users:
def __init__(self, values):
self.values = values
class Users:
def __init__(self, values):
self.values = values
def get_over30_user(self):
# ageが30以上のデータを抽出して返却
...
- このようにする事で特定のデータに対する操作や処理がコード中に分散することを防ぐことができる
4. 注意事項