이전에 읽었던 객체지향 책들과 비교하면 이 책은 머릿속에 물음표를 쉴 틈 없이 뜨게 만든 책이 아닐까 싶다. 이전에 알고 있었던 객체지향의 원칙에 대해 많이 생각하게 되고, 어떤 것이 맞을까? 어떻게 따라야 할까? 이 방법이 정말 유지 보수성을 좋게 만들어줄까?를 계속 생각하게 만드는 책이다. 이전에 내가 공부한 지식과 이 책에서 이야기하는 지식이 충돌하는 부분이 꽤 많았다. 책의 앞쪽에 역자가 말한 것처럼 몇 개의 원칙에는 전적으로 동의할 수 없었지만 그래도 적어놓고 보면 좋을 내용들이 다수였다. like 객체지향 생활체조...
또 하나 좋았던 것은 책을 읽으면서 이전에 함수형 프로그래밍 스터디를 했을 때 나왔던 객체지향과 함수형 프로그래밍에 대한 주제를 다시 생각해 볼 수 있게 되었다. 그때 나왔던 얘기가 " 함수형 프로그래밍과 객체지향 프로그래밍을 결국은 같은거다." 라는 얘기였는데 책을 읽고 이렇게 돼서 나온 말이였구나! 라는 깨달음을 얻게 되었다. 3장에서 선언형 프로그래밍과 함수형 프로그래밍에 대한 내용을 소개하고 조합 가능한 데코레이션이라는 구조를 소개하는데 소개된 코드의 모습이 함수형 프로그래밍에서 사용하는 함수 합성과 매우 비슷하다. 또한 책에서 불변성을 중요시하는 점 또한 함수형 프로그래밍을 생각나게 했다.
names = new Sorted(
new Unique(
new Capitalized(
new Replaced(
new FileNames(
new Directory(
"/var/users/*.xml"
)
)
)
)
)
);
앞으로 이 책에서 배운 지식과 이전에 읽었던 책의 지식을 종합하여 프로젝트를 하나 만들어 보려고 한다. 이 책에서 소개한 원칙들이 구체적으로 도움이 될 것 같다.