One of the most important elements of software design is determining who needs to know what, and when. When the details are important, it is better to make them explicit and as obvious as possible, such as the revised implementation of the backspace operation. Hiding this information behind an interface just creates obscurity.
—『A Philosophy of Software Design, 2nd Edition』John K. Ousterhout著
何をいつ誰が必要になるか
必要でないか
構造を検証するためにやはりArchUnit必要かな