2010년 11월 26일 금요일

Clean Code 를 읽으며 #2.

Clean Code 를 읽는 내내 드는 머릿속을 떠나지 않는 생각은,
저자분 대답합니다. 얼마나 고민하며 코드를 짰는지 책속에서 제대로 느껴지네요.

코드를 짜는 건 글을 쓰는 것과 같고, 다른 사람의 입장에서 읽어보면서 계속 고쳐야 되는 거라는 비유도 참 맘에 들었습니다.(그러고보면 많은 실력있는 프로그래머 분들이 블로그등에서도 참 글 잘 쓴다는 생각이 든적이 많은 듯도 합니다.^^)

아무튼 저자의 클린 코드에 대한 열정을 보며,
회사에서 10년이나 짜오면서 얼마나 고민하면서 해왔는지 반성하게 됩니다.
(오래 일한게 중요한게 아니라는 생각이 많이 드네요 잠깐을 일해도 바짝 정신차리고 고민하면서 했어야 했는데 말입니다.^^지금 부터라도!!)

조금 더 읽기 쉽게, 우리 프로그래머도 소설가? 라는 생각이 느껴지는 글이네요.
고스트 바둑왕에서 바둑판이 우주라고 말하던 주인공이 생각납니다.
우리에게 우주는 한줄 한줄의 코드겠지요^^

그럼 다 잊기전에 몇가지 코드 지침을 적어봅니다.

1. 함수인자는 최대한 적게 -> 함수를 소리내어 읽어보면 확실히 알 수 있습니다. 인자가 없으면 확실히 읽기 좋다고 하네요.
     덤으로 테스트하기도 편해진다고 하네요.
     사실 인자가 있으면 인자값을 뭘 넣어도 돌아가야 할 거 같아서 이래저래 귀찮긴 한 거 같습니다.

2. 널을 인자로 받거나 리턴하지 말것 -> 널객체 쓰세요(널 체크 없는 코드 만세! 저도 개인적으로 널은 싫습니다만, 널객체 만드는 것도 일이라, 네 널객체 열심히 맏들겠습니다.^^ )

3. 의도가 드러나도록 함수이름 잘 지으셈 -> 영어 공부가 필요한 코드?

4. 클래스는 전체적으로 하나의 일을, 함수는 반드시 하나의 일만(인자가 없거나 하나여야 되는 이유와도 일치한다고 읽은 듯 하네요.)

5. 중복은 죄악(비슷한 스위치문이 함수의 여러군데서 쓰여야 된다면->팩토리 패턴 써야 되는 신호?)
    함수가 하나의 일만 하면 사실 중복 생기게 짜기도 어렵겠지요;;(후우 말은 쉽습니다만 지키려면 늘 머리속에 두고 고민해야되겠네요)

6. 주석은 필요악 - 코드를 보고 바로 아는게 제일 좋음(주석은 시간이 지나면 관리되지 않으니 나중엔 거짓말이 가득한 주석이 되기 쉽다 합니다.)

7. 코드 짜고 나면 독자의 눈으로 한 번 읽어보자. 글 쓰고 퇴고하듯이.(저도 이거 읽고 블로그글도 퇴고 처음으로 해보고 있습니다. 아 제 글이 뭔가 어설퍼보이는 이유중 하나인 거 같네요. 좋은 거 배웁니다.^^ 당연한건가요~)

코드 짜는 것도 어떻게 하면 노가다가 되고, 어떻게 하면 책 쓰는 것처럼 고상하게 되고 그런 게 아닐까 하는 생각이 드는 책이었습니다.

강추!!(이미 다들 보셨을지도^^)