이 전부의 밑에 깔린 규칙
그 금지, 타입 붙은 포인터, 사라진 반환 경로. 이 트랙의 모든 게 저장소 경계에 적용된 규칙 하나야. 비용은 하류가 흡수한다. 능력을 가진 쪽이 전부 물고, 부르는 쪽은 무지한 채로 싸게 남아.
여기서 비용은 실행 시간이 아냐. 능력 주위에 쌓이는 전부야. 그걸 만지려면 필요한 지식, 딸려 오는 의존성, 깔아야 하는 도구, 누군가 이해해야 하는 실패 양상, 요구되는 문서, 정당화되는 테스트까지. 그게 전부 한쪽에, 영구적으로, 의도적으로 떨어져.
왜 나눠 지는 게 실패인가
대부분의 팀은 비용을 나누고 싶어 해. 나누는 게 공평하고 협조적으로 들리니까. 경계에 적용하면 그건 부식성이야. 양쪽이 조금씩 무는 경계는 양쪽이 조금씩 이해해야 한다는 뜻이고, 도메인이 바뀌면 양쪽을 다 고쳐야 한다는 뜻이고, 그럼 그건 경계가 아니야. 동시 배포를 요구하는 이음매지. 경계가 막으려고 존재하는 바로 그거.
경계를 하중 견디게 만드는 건 비대칭이야. 한쪽이 전부 물면, 반대쪽의 무지가 임시 상태가 아니라 보장이 돼. 값 치른 쪽을 통째로 다시 써도 공짜 쪽은 신경도 안 써. 그 변화에 깨질 만큼 뭘 알았던 적이 없으니까.
줄 수로 규칙 읽기
규칙이 지켜지고 있는지 보는 싼 진단법이 있어. 부르는 쪽에 코드가 얼마나 사는지 보고, 그게 자랐는지 물어봐. 여기선 백 줄 아래고, 영원히 거기 머물 예정이야. 백이 마법의 숫자라서가 아니라, 정당하게 자라 들어갈 대상이 없기 때문이야. 자란다면 그건 있으면 안 되는 자리에 도착한 영상 지식이고, 그래서 줄 수가 경보기 노릇을 해.
이건 훔쳐 갈 만한 기법이야. 경계에서 무지한 채로 있어야 할 쪽을 고르고, 오늘 대충 얼마나 큰지 적어두고, 설명 안 되는 성장을 정상적인 진척이 아니라 설계 사건으로 취급해. 경계는 시끄럽게 무너지는 일이 거의 없어. 작게 남아야 했던 쪽에 천천히 쌓이면서 무너져.