同じメソッドばかり使っている時は何か間違っている

いわゆるゴールデンハンマー、金の斧という現象。銀の弾丸が類義語。日本語で平たく言うと「バカの一つ覚え」。

何か問題を解決する時に、同じ手法ばかりとっているときは危険信号。

全ての問題が同じやり方で解決できるわけがなく、それは個々の問題を注視していない、解決に使っている手法を理解していないことの表れ。


どういう理由でそうなったか分からないが、配列を操作する時になぜかいったん全てをディープコピーして、クラスのプロパティに代入し直している人がいた。

ディープコピーが必要な箇所はなく、その人は別のクラスで見かけた配列のディープコピーメソッドを何故か好んで使っているようだった。

「なぜ配列をディープコピーしてプロパティに代入しているの?」「そうしないと配列の中身が書き変わらないからです」「???」

無論そんなことはなく、単に配列に push したりすれば必要な操作はできた。ディープコピーしなかったことによるバグもなかった。

結局そこからいくら聞いて説明しても会話にならなかったので、「お前は分かんなくていいからこうしろ」とぼくが修正したコードをまるごと渡した。


「同じことをやっている」、つまり、同じメソッドを何回も書いているときは、何かがおかしいのだ。同じメソッドでいいなら共通化すればいいし、共通化できないのに同じメソッドを使っている時は、解決したい問題がそれぞれで違うはずなので、同じメソッドを使うことが間違っているのだ。

自分が何をやっているのか、もう一度俯瞰で見直す癖をつけてほしい。