1. 간략한 후기
이 책을 관통하는 메세지는 'divide and conquer'라는 생각이 들었다.
얼마나 간단하고 작은 단위로 '잘' 나누고, 어떻게 '잘 '연결해서, 필요한 동작 수행을 '잘' 하게 하는가.
적절한 분할정복을 수행한 코드가 Clean Code 인 것 같다.
이 책에서는 클린코드의 모호한 기준에 대한 저자와 많은 훌륭하신 개발자들의 생각과 법칙을 배울 수 있다.
세상에 온전한 '클린'코드는 없다고 생각한다.
하지만 '개발자'로서, 내 코드의 '저자'로서 점점 클린코드에 가까워지고 싶다.
'우리는 저자다. 저자에게는 독자와 잘 소통할 책임도 있다. (17p)'
내 코드는 내가 책임질 수 있는, 훌륭한 저자가 되도록 하자.
2. 문장기록 (매우 많다)
눈에 들어오는 문장 기록, 생소한 단어에 대한 기록, 간단한 생각 기록
https://taltal.tistory.com/162
3. 독서 계기와 긴 후기
회사 내 스터디에서 읽을 책을 정해야했는데 마침 올해 하반기부터 상반기에 만든 코드들의 리팩토링 작업도 시작될 것이라서 이 책을 읽기 시작했다.
생각해보면 아직 입사한지 1년도 채 되지 않은 신입 중의 신입이
무슨 용기로 이 책을 읽었을까 싶지만.
이 책에도 나와 있듯이 이 책은 뛰어난 프로그래머의 생각하는 방식을 엿볼 수 있다는 면에서 충분히 신입 개발자에게도 읽을 가치가 있다.
(이 책을 읽는다고 뛰어난 프로그래머가 된다는 보장은 없다. '코드 감각'을 확실히 얻는다는 보장도 없다. 단지 뛰어난 프로그래머가 생각하는 방식과 그들이 사용하는 기술과 기교와 도구를 소개할 뿐이다. 20p)
처음에는 어라 생각보다 쉬운데 싶었다.
저자의 문체가 워낙 간결하고, 직설적이라 읽기에 불편함이 없었다.
그런데 한 7장쯤부터 아 망했다 싶었다.
일단 이 책의 표현을 빌리자면 ‘돌아가는 쓰레기’ 같은 나의 코드들을 어디서부터 어떻게 리팩토링 해야할지 막막함이 느껴졌고 그 다음은 아예 이 책의 내용을 이해하기가 힘들었다.
후반부로 갈수록
java 뿐 아니라 디자인 패턴과 OS 등 넓은 분야의 베이스 지식이 필요한 책이다.
try/catch 블록만 따로 별도 함수로 뽑아내기.
오류 코드 대신 예외처리 사용하기.
함수 이름 길고 표현력 좋게 변경하기.
이 정도라도 올해에 적용해보도록 하자.
중복 줄이기. 추상화와 단순화 시키기. 표현력 높이기.
이 세가지가 아직 많이 부족한 신입 개발자로서 느낀
이 책에서 말하는 클린코드의 마인드셋이다.
java를 좀 더 공부하고, 좀 더 코드를 짜보고, 좀 더 성장한 후에
다시 이 책을 꼭 읽어봐야지.
그래도 위로가 되는 것은
이 책의 저자도 초안에서 다듬고 다듬어서 최종적으로 설명한 규칙을 따르는 함수를 만든다는 것.
처음부터 탁 짜낼 수 있는 사람은 없다는 것이다.