XP를 효과적으로 수행하고자 한다면..
" Robert C. Martin"디자인 패턴 책을 꼭 보길 권한다. ( 굳이 " Robert C. Martin"의 책을 언급한 이유는 제일 재밌어서)
둘이서 머리를 맞댄다면, 무엇에 대해서 머리를 맞댈 것인가? 단순이 타입이 정확이 써졌나, 캐스팅이 제대로 되고 있나. 어사인이 어떤가 뭐 이런 거면 사실 혼자 하는 것이 좀더 효율적일지도 모르겠다.
둘이서 머리를 맞대고 할만한 것은 좀더 복잡 다단하고 둘의 머리를 모으면 그로테스크한 결과물이 나올 듯한 거리이면 그 효과가 더욱 커질 것이다.
객체 모델링이 그런 것이 아닐까 한다. 특히 처음부터 모든 것을 개발하는 (COTS를 사용하지 않는 ..)곳에서는 고객의 말, 즉 Use case속의 시나리오를 보고 객체를 도출하고
(ICONIX 프로세스를 아는 분은 이런 과정의 지리함과 논리적이지 못한 순간의 실수가 가져오는 엄청난 번거로움을 잘 알 것이다.)그 객체간의 관계 (cardinality 등을 포함하여)를 지은다음에 패턴을 적용하고 클래스 다이어그램, 혹은 시퀀스 다이어그램으로 모델링을 하는 과정을 힘들게 거쳐야 한다.
이런 경우, 어떻게 모델링을 하느냐에 따라서 프로그램 산출물의 품질 요소는 매우 큰 편차를 보일 수 있다. 비록 같은 기능을 보이고 있다고 하더라도 말이다. 그리고 본 책에 나오는 리팩토링의 여지도 케이스마다 매우 달라진다.
다시말해 처음에 어떻게 객체를 정의하고 디자인 패턴을 대입하느냐에 따라서 잘만든 코드와 그렇지 않는 코드의 격차가 커진다는 것이다. 모델링이 잘못 된 코드는 수정이 힘든 것을 물론이겠거니와, 디버깅시에 트레이싱하는 것도 그다지 쉽지 않다. ..
예르 들자면 마틴의 책에는 OCP 원리를 비롯하여 다양한 원리들을 실전에 적용할 수 있는 형식으로 설명을 하고 있다. (OCP 원리란 Open to add, Close to modification로 기능 추가는 쉽게 할 수 있으나 수정을 배재하는 원리를 말한다..)
코드화 하는데 매우 많은 경로가 있는 객체 모델링 그리고 그에 따른 코드 패턴의 적용, 그리고 베스트 프렉티스와 원리들.. 이런 것을 모두 고려한 코딩을 하는 것은 큰 정신 노동이 아닐 수 없다. 둘이서 하는 페어 프로그래밍은 이러한 정신 노동의 부담을 덜어주며 관련된 XP의 원리들은 최적화된 산출물을 얻을 수 있도록 해준다. (이런 의미에서 XP 참가자들은 원숙미를 자랑하는.. 적어도 객체 모델링으로 대화를 할 수 있는 사람이어야 하지 않을까 한다.)
Subscribe to:
Post Comments (Atom)
4 comments:
마틴파울러의 어떤 책을 추천하시는지요? 구체적인 책 제목을 언급해주시면 감사하겠습니다.
"Agile Software Development, Principles, Patterns, and Practices" 이 책 매우 좋습니다.
단, 디자인 패턴에 대한 기본 지식이 있어야 할 듯...합니다.
Enterprise pattern에 관한 책도 찾아 보실 수 있을 텐데, 약간 "out of date" 인거 같기도 합니다.
도움이 되길..
Agile Software Development, Principles, Patterns, and Practices
는 Robert C. Martin 의 책입니다.
어이없는 착각을
Patterns of Enterprise Application Architecture 의 저자와 헷갈렸네요
제가 말하려던 저자는 Robert C. Martin이 맞습니다.
Post a Comment