先日、Twitter(X)で、設計書に「ボタンを押下したときに処理する」と書かれていたため、実装者がボタンを押し込んだ瞬間に処理を実行する実装を行い、非常に大変な思いをした、という趣旨の話を見た。 ここでは個別の投稿の是非には触れず、この話をきっかけに、私が設計について考えていることを書く。 私は、実装方法によって守られる性質が変わるのであれば、その選択は単なる実装詳細ではなく、設計時点でレビューできる形にするべきだと考えている。 例えば、次のような実装がある。 button.addEventListener("mousedown", execute); 一方で、「ボタンを押したとき」という表現から、クリック操作が成立した時点での実行を想像する人もいるだろう。 button.addEventListener("click", execute); この二つは似ているが、振る舞いは異なる。 m

