TL;DR

インタフェースは前もって設計するのではなく、実際に必要になったときに見つけ出すべきだ、という Rob Pike の言葉。

Don’t design with interfaces, discover them.

なぜ必要か

Go の文脈で出てきた言葉だが、他の言語にも当てはまる。次のように言い換えられることもある。

abstractions should be discovered, not created
(抽象化は作成するものではなく、発見するものである)

必要もないのに前もってインタフェースを作ると、インタフェース汚染につながる。

関連