明示性と暗黙性

ソフトウェア設計における2つの対立するアプローチ。

明示的(Explicit) は、開発者が意図を明確に宣言するスタイル。コードを読めば何が起きるかわかる。一方、暗黙的(Implicit) は、フレームワークやツールが「賢く」判断を代行するスタイル。

Reactは明示性を重視する設計哲学を持つ。useStateuseEffectuseMemoはすべて開発者が意図を明示的に宣言するAPI。

暗黙的なアプローチは初期学習コストを下げるが、複雑なケースでは予測困難な挙動を生みやすい。Next.js 13-14のキャッシュ問題はこの典型例。

オプトインとオプトアウトの設計選択とも密接に関連する。