"Waystone이 ship하는 최고의 코드는 안 쓴 코드야. 형제가 이미 그걸 잘 소유하니까."
생태계가 곧 라이브러리야
Waystone은 모든 능력 결정을 의도적인 자세에서 시작해. CWK 생태계 전체가 자기 컴포넌트·패턴 라이브러리다. 새 걸 짜기 전에, 형제가 이미 이걸 잘 소유하는지 물어. Pippa가 판단을 소유해. Rekindle이 산문 편집을 소유하고. Recall이 미디어 발견을, Lantern이 검색을, 공개 사이트가 publishing을 소유해. 'Waystone은 X를 어떻게 해야 하나?'의 기본 답은 종종 '안 해야 해. 이미 X를 하는 형제를 재사용하고, 자기 노력은 여행-특화 부분에만 쓴다'야.
Adopt, Extract, Adapt, Invent
reuse ledger는 명시적인 선호 순서고, 그 순서가 중요해.
- Adopt — 소유권이랑 semantics가 이미 맞으면 존재하는 canonical API나 컴포넌트를 그대로 써. 제일 싸고, 최고.
- Extract — 두 형제가 같은 게 필요하고 소스 소유자가 명시적으로 남을 수 있으면 진짜 공유 primitive로 뽑아내. 일은 더 많아도 여전히 공유.
- Adapt — 도메인 semantics가 다르면 검증된 interaction이나 storage 패턴을. 코드가 아니라 형태를 재사용.
- Invent — 남은 여행-특화 틈만. 여기가 Waystone의 실제 노력이 가야 할 곳.
그 목록을 내려가면서 맞는 첫 단에서 멈춰. Invent는 첫 본능이 아니라 최후 수단이고, 거기 닿을 때쯤이면 발명할 걸 여행에 대해 진짜 새로운 것만으로 좁혀놨어.
재사용은 틀린 테이블로 데이터 밀어넣는 게 아냐
이름 붙일 가치 있는 재사용의 가짜 버전이 있어. 테이블이 이미 있으니까 Waystone 도메인 record를 형제의 기존 저장소에 쑤셔넣는 거. 그건 재사용이 아냐. 소유권 혼동이야. 진짜 재사용은 이미 배운 계약(API, 패턴, ID)을 이어가되 canonical 소유자를 canonical로 지켜. 사이트 date-slot 문법을 재사용한다는 게 여행 데이터를 공개 사이트 DB에 저장한다는 뜻이 아니고, 스트림의 interaction 문법을 재사용한다는 게 breadcrumb을 스트림 테이블로 흘려보낸다는 뜻이 아냐. 형태랑 인터페이스를 재사용해. 네 것인 데이터의 집을 절대 빌리지 마.