コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

汎用化処理に対して良いアプローチを考えたい

雑記です。

Railsをやっていると『DRYじゃない』とか『DRYにしよう』みたいのでいろいろ処理をまとめることが多いと思います。その結果、親しいカテゴリの処理が一つにまとまることが多いです。

ただ割と起こりがちな現象として

  1. 似たような処理だが細部が違うので吸収できるように汎用化する
  2. 汎用化するとINPUTの多様性が上がってくる
  3. 例外ケースを補足するguard説が増えるなど、パターン対応に追われ処理が複雑化する

みたいな現象が発生します。

これに対しては以下の問いかけをするとバラせるかなと思ってて

  • その処理はいろいろなことをやりすぎではないか
  • その処理はもう少し分解できるのではないか
  • その処理で吸収しようとしていることは本当に今必要なのか

みたいなことでいい感じにばらせるのではないかと思ってます(よくある言葉だとYAGNIと単一責任原則みたいな感じ)

割と良かれと思って作った汎用化が闇を生むので、そこらへん作っちゃう感じのながれになったら、うまくバラすための紐解き方とか考えたいなと思う今日このごろでした。

関連リンク