関数の引数でdictionary渡されてるやつがめちゃ嫌い。
どんなやつ?
# こんなインターフェースのやつ。 some_func(process_param) # process_paramで色々わたす。 process_param = { "mode": "some_mode", #この値でsome_funcの挙動が変わったりする。。 "id": 1, "value": "value_text", ... }
modeに渡す値でsome_funcの挙動がかわる。
渡す値によって、他に必要な項目が変わる。
例えば、
process_param = { "mode": "mode1", #mode1のときにはidとvalueが必要 "id": 1, "value": "value_text", ... } process_param = { "mode": "mode2", #mode2のときにはidとnameとageが必要 "id": 1, "name": "太郎", "age": 10, ... }
みたいな。
なぜ嫌いか?
process_paramに何を渡せばどういう挙動をするのかが外からは全くわからない。
だから内部を読むしか無いけど、こういうインターフェースになっている関数は中身もだいたいひどい。
この関数を実行させること自体が難しくて、俺は何と戦っているんだという気持ちになる。
どうなっていてほしい?
・挙動が異なるならmodeごとに関数を分けてほしい
・必要な要素は引数で定義してほしい
mode1_func(id, value,,,) mode2_func(id, name, age,,,)