TDDBE 책의 화폐예제를 구현하는 스터디를 진행했다. 오늘 한것은 다음과 같다.
개인적으로도 여러번 읽은 책을 또 스터디하고 있지만, 여전히 배우는게 많아서 좋다. 책 초반에는 TDD 사이클을 분명하게 보여주기 위한 목적으로 굉장히 작은 보폭으로 구현한다. 이렇게 작은 보폭에서도 켄트벡이 느끼는 의도와 구현의 간극이 독자에게도 전달되는 점이 좋았다. 이때의 간극은 여러가지 구현 옵션이 될 수도 있고, 자신감 점수에 따른 구현 분량 조절이 될수도 있고, 피드백을 얻기 쉬운 만큼으로의 조절이 될 수도 있는 것 같다.
스터디를 하다보면, 켄트벡이 지금 왜 이렇게 코딩하는지에 대해 이해한바를 상대방에게 전달해야 한다. 전달할때 동의를 얻으려면 논리적으로 합당해야하기 때문에, 논리를 검증하면서 말하게 된다. 이 과정에서 의도와 구현의 간극이 더 잘 느껴지고 이해되는 측면이 있는 것 같다.
오류메세지를 있는 그대로 파악하려고 한 시도도 좋았다. 메세지를 분석하는 과정에서 언어에 대한 학습이 많이 일어난다.
too many characters in character literal
오늘은 위의 메세지를 해결했는데, 이 과정에서 자바에서는 char 형식을 사용한다는 것과 리터럴이란 무엇을 말하는지, char 리터럴에는 한개의 char 만 포함해야 한다는 사실등을 다시 한 번 상기할 수 있었다.
맥락을 상기하려는 시도도 좋았다. TDDBE 초반부는 작은 단위를 다루기 때문에, 의사 결정의 이유를 충분히 파악하기 어려운 측면이 있다. 따라서, 전체적인 의도와 맥락에 대한 부가적인 정보가 필요하다. 오늘은 이런측면을 고려해서, 켄트벡이 지난번에 이렇게 했으니, 지금은 이런 의도일 것이다. 라는 추론을 진행했고, 함께 이야기를 나눴다.