로버트 C 마틴이라는 분의 책이 베스트셀러라기에 기웃기웃 거리다가 어제 두달 전에 작성한 내 코드를 보고 아니 작명을 왜 이렇게 했을까... 하면서 고민했던 모습이 떠올랐다.
도대체 어떻게 작명해야되는지 사실 아직도 잘 모르겠고 앞으로도 이 부분을 해결할 수 있을지 모르겠지만, 적어도 지금보다는 나을 것이라 생각한다.
좋은 개발자가 되려면 꼭 고민해봐야 할 문제라고 생각했다.
그래서 클린코드
가 도대체 뭘까! 당장 실천할 수 있는 코드가 있다면 모르는 것과 아는 것에 차이가 클 것이기 때문에 클린코드에 대해 살펴보기로 했다.
나쁜 코드
나쁜 코드로 작성한 프로젝트는 초기 개발 속도는 빠를지라도 미래엔 굉장히 개발 속도가 느려져서 생산성이 매우 떨어질 것이고, 나쁜 코드로 작성했기 때문에 새로 들어온 팀원도 코드의 구조를 쉽게 이해하지 못하고 결국 나쁜 코드는 나쁜 코드를 낳는다는 이야기였다.
현재의 내가 편하려고 미래의 내가 죽을 수도 있겠구나..라는 생각이 드는 내용이었다.
나는 그런 적이 있을까? 하고 고민해봤는데 확실히 있었다
물론 아직 공부하는 코린이에 불과하긴 하지만 습관을 제대로 들이는게 좋을 것 같다는 반성을 하게 되었다..ㅎㅎ
미래의 나를 위해 코드를 막 갈기면 안되겠다.
좋은 코드도 금방 나쁜 코드로 변할 수 있다.
좋은 코드로 작성했어도 스케줄, 스펙 등의 문제로 좋은 코드가 나쁜 코드가 되는건 한순간이라고 한다.
나쁜 코드로 작성한다면 조금만 변경해도 될 부분을 하루종일 살펴봐도 고치지 못하는 경우가 생기고 결국 한 줄로 해결할 수 있는 코드를 수백줄의 코드를 고쳐야할 수도 있다.
또, 나쁜 코드는 생산성 저하를 가져오고 나쁜 코드로 작성한 코드는 스케줄을 맞추기 위해 또 나쁜 코드로 작성하게 된다. 이 책에서는 빨리 갈 수 있는 방법으로는 최대한 클린 코드를 작성하라
고 제시하고 있다.
클린 코드
클린 코드는 코드가 잘 읽혀야 하고 효율적이어야 한다.
예를 들면 네이밍이라던가, 에러 핸들링과 같은 사소한 디테일을 신경쓰는 것이 좋다.
좋은 코드일수록 한가지 일을 하려고 할 것이고, 나쁜 코드일수록 여러가지 일을 하려 할 것이다.
클린 코드는 다른 사람이 코드를 봤을 때 수정하기 편하고 간결할 수록 좋다.
중복을 없애고 메서드는 한 가지 일만 하도록 작성해야 한다.
메서드의 이름을 작명할 떄는 코드가 하는 일을 명시하도록 해야 한다.
결국 헷갈리지 않는 명확한 네이밍, 하나의 기능만 하는 메서드, 중복 제거, 남이 내 코드를 봐도 잘 읽혀야하고 여러가지 일을 하지 않아야 한다가 핵심인 것 같다.
읽으면서 중복 제거
부분에 가장 꽂혔는데 생각해보니 네이밍보다 중복된 코드를 어떻게 제거해야하지? 라는 고민도 꽤 많이 했었던 것 같다.ㅎㅎ..
아직 앞부분만 조금 봤지만 시간 날 때마다 틈틈이 읽어봐야겠다.
아 근데 이미 첫 장부터 뚜드려 맞은 기분이라..... 누가 내 얘기 써놨나?
참고 자료
클린 코드