본문 바로가기
C.W.K.
Stream
Lesson 05 of 06 · published

재사용은 소유권을 보존한다

~11 min · ownership, integration, grammar-vs-storage, rule-2

Level 0표식 없는 길
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"문법을 빌려. DB는 절대 빌리지 마. 통합은 흡수가 아냐."

모든 재사용 아래 깔린 규칙

이 트랙의 모든 재사용이 한 문장에 놓여 있어. 통합은 소유권을 절대 안 넘긴다. Waystone은 Pippa랑 Rekindle이랑 Recall이랑 Lantern이랑 깊이 통합해. 그 통합 전부 뒤에도, 그 형제들 각자는 여전히 전에 소유하던 걸 정확히 소유해. 재사용은 이미 배운 계약을 이어가되 canonical 소유자가 canonical로 남아. 실패 모드엔 이름이 있어. 흡수. 'X랑 통합했다'가 조용히 '이제 X의 데이터를 우리가 갖는다'나 'X 코드를 복사했고 이제 우리 거다'가 되는 거.

제일 깔끔한 예, 저장 없는 문법

Waystone의 breadcrumb 스트림은 가족의 기존 소셜형 스트림에서 영감받았어. interaction 문법을 재사용해. compact composer, 스캔 가능한 타임라인의 짧은 포스트, 후속 조각용 reply, thread, 미디어 preview, draft 보존. 근데 자기 여행 semantics를 부여해. 포스트는 Breadcrumb, reply는 같은 발전 중인 순간의 또 다른 조각, thread는 후보 event 클러스터(소셜 대화가 아니라), pin은 Important Moment. 그리고 결정적 나머지 절반이 여기 있어. 스트림의 emotion이랑 visibility랑 moderation이랑 likes랑 공개 authorship이랑 저장을 하나도 상속 안 해. Waystone은 형태를 재사용하고 자기 데이터는 집에 둬. 기능 하나에 담긴 구별 전부야.

Extract는 허용, Clone은 안 돼

정당한 중간 길이 있어. 두 형제가 진짜 같은 UI primitive가 필요하면, 명시적 소유자를 가진 진짜 generic 공유 조각으로 refactor해. 그게 ledger의 Extract고, 건강해. 금지된 건 게으른 버전이야. 구현을 네 repo에 복사하고 로컬에서 편집하는 거. 그건 소유자 없는 fork를 만들고, 어느 쪽이든 개선되는 날 drift해. 제대로 하는 비용은 그 능력을 소유한 형제가 아니라 필요한 형제가 흡수해. 재사용이 재사용인 건 그 후에도 그것의 canonical 구현이 정확히 하나 남아 있을 때뿐이야.

Code

문법을 재사용, 소유권은 유지·text
가족 스트림에서 재사용 (interaction 문법):
  compact composer, 짧은 포스트, 스캔 가능한 타임라인,
  reply, thread, 미디어 preview, draft 보존

여행 semantics 로 재배정 (Waystone 자기 의미):
  post   -> Breadcrumb
  reply  -> 같은 순간의 또 다른 조각
  thread -> 후보 event 클러스터 (소셜 대화 아님)
  pin    -> Important Moment / Include in Story

상속 안 함 (소유자에게 남음):
  emotion, visibility, moderation, likes, 공개 authorship,
  그리고 스트림의 canonical 저장

# 형태를 빌려. 데이터는 집에 둬.

External links

Exercise

네 코드베이스(또는 팀)가 다른 시스템과 통합한 곳을 찾아봐. 실제로 뭐가 일어났는지 확인해. 그들의 canonical API를 호출했어, 아니면 그들 코드를 복사하거나 '일단' 네 데이터를 그들 테이블에 저장했어? 사본이면, 마지막으로 원본이랑 맞은 게 언제인지 물어봐. 모든 clone엔 divergence 날짜가 있어. 유일한 질문은 네가 아직 그걸 아느냐야.
Hint
통합 후 소유권 테스트. 아직 canonical 구현이 정확히 하나야, 아니면 오늘은 맞고 나중에 안 맞을 둘이야? 사본은 drift를 알리지 않아. 그냥 조용히 안 맞기 시작하고, 넌 어느 repo만 봐선 말이 안 되는 버그로 알게 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.