2003-08-16

A Programming Episode

Robert C. Martin의 [Agile Software Development]의 "6 장 A Programming Episode"는 밥 아저씨와 Robert S. Koss가 2000년 말 한 호텔방에서 함께 했다는 프로그램밍 과정을 에피소드 형태로 기술하고 있습니다.

작년에 인터넷을 통해서 대충 보긴 했는데, 오늘 책을 따라가면서 이클립스로 코딩을 하면서 다시 읽었는데 으시시(?)하군요. 영화 [유주얼 서스펙트]나 [식스 센스]와 같은 마지막 반전이 오랜만의 독서의 졸음을 확 달아가게 합니다.

둘은 볼링점수를 계산하는 프로그램을 작성합니다. 둘이서 함께 Pair Programming을 하면서 Test-Driven Developemnt와 리팩토링을 통해서 프로그래밍을 하는 과정을 상세히 기술하고 있습니다. 전부 40 페이지의 분량이긴 한데, 전체의 4/5가 (반복적인) 코드이기 때문에 많다고 느껴지지는 않습니다. 중간에 좀 졸립기도 하지만... 막바지에는...


성급하게 말하면 UML을 통해서 소프트웨어를 설계하려는 사람들의 등에 비수를 꽂고 확인 사살을 하는 내용이라고 생각하면 됩니다. 또한 디자인 패턴이나 객체 지향을 몽매하게 추종하는 사람도 쓴웃음을 숨길 수만은 없는...

하여간 2시간 정도 투자해서 Pair-Programming, Test-Driven Development, Refactoring에 대한 예증적인 경험을 할 수 있는 좋은 글인 것 같습니다.


범인이 케빈 스페이시라는 것을, 혹은 브루스 윌리스가 유령이라는 것을 알고 영화를 보는 것이 맥빠지듯...

책에 있는 내용과 인터넷에서 볼 수 있는 내용은 약간 다릅니다. 책에 있는 코드가 비교적 더욱 깔끔하고, 인터넷에 있는 글에서는 Kent Beck을 만날 수 있습니다.

http://www.objectmentor.com/resources/articles/xpepisode.htm


P.S. 여담으로 마지막에 최종적으로 나오는 코드를 통해 각주가 필요없는 코드란 무엇인가를 알 수 있습니다..