Reading

클린 코드 Clean Code

 2018. 3. 10. 18:29
반응형

인턴 시절 받았던 책인데 절반 정도만 읽어봤던터라 이번 기회에 끝까지 읽어보기로 했다.

각 주제들이 굉장히 많이 압축되어 있는데도 분량이 많은 편이다.

좋은 코드를 짜기 위한 저자의 고민을 배울 수 있고, java로 된 예제들이지만 어떤 언어에도 적용해 볼 수 있는 내용이었다.

저자가 제안한 몇가지 규칙들이 기억에 남는다.


#1 보이스카우트 규칙

우리가 지나간 자리는 처음보다 깨끗하게 한다는 것이 보이스카트 규칙이다.

중복되는 코드나 네이밍이 잘못되어 있는 것이 보이지만 괜한 에러를 발생할 것 같은 걱정이 되어서

수정하지 않았던 경우가 있는데, 이 규칙을 알고나서 의식적으로 여러 코드들을 개선해보려 노력하고 있다.

중복을 제거하다 보면 함수로 다시 분리하게 되고, 잘게 쪼개진 함수들은 클래스로 다시 정리할 수 있다.


이 책을 끝까지 읽다보면 함수로 잘게 쪼개는 것은 어느정도 익힐 수 있을 것이다.

하지만 나의 경우에는 클래스나 프로토콜 처럼 추상화 시키는 것은 아직 쉽지 않다는 생각이 들었다.

책임 단위를 나누는 일이 아직은 익숙하지 않은 것 같다.

책임이 분명히 나눠져 있지 않고 서로가 서로의 기능을 사용하게 많이 작성해왔다는 증거이기도 하다.

이 전의 코드가 부끄럽다는 생각이 들었다. 다행이다. 또 한번 개선할 부분이 눈에 들어온다.


#2 주석

주석에 대한 부분은 초반에 나와 있어서 예전에도 얼핏 보고 놀랐던 기억이 난다.

더욱 자세하고 꼼꼼하게 문서화 시키는 것이 중요하다고 생각했었다.

하지만 함수 그 자체로 설명되게 만드는 것이 더 좋다는 것을 배웠다.

자연스럽게 의미를 알 수 없는 숫자만 덩그러니 있는 코드는 만들지 않게 된다.

그리고 함수나 변수의 이름도 좀 더 서술적으로 작성하려고 노력하게 된다.


#3 동시성

스레드에 관한 파트인데, 몇가지 기본적인 상황에 대해서 알려준다.

몇몇 잊어버린 개념에 대해서 다시 짚어볼 수 있었고, 제대로 공부해야 겠다는 생각이 들었다.


#4 마인드

코드를 보면서 상대의 실력을 폄하하거나 불평하지 않는 것이 중요하다는 것을 배웠다.

모든 상황에서 절대 진리인 코드는 존재하지 않는다.

저자도 리팩토링 하는 예시를 보여주면서 원래 코드를 작성한 프로그래머에를 존중하는 모습을 보여준다.

그렇게 몇 차례에 걸쳐서 리팩토링을 완료하고 좀 더 깨끗한 코드가 되었다.

그리고 맨 마지막에 있는 말이 기억에 남는다.

이렇게 리팩토링 되었으니, 다음 번에 개선할 사람은 좀 더 수월하게 할 수 있을 것이라고.

자신의 코드가 완성품이 아님을 알고 있어야 한다.

그리고 다음 번 수정할 사람을 염두해두고 프로그램을 작성해야 한다.



책의 모든 부분을 제대로 이해한 것은 아니겠지만,

실력을 키우고 나서 또 한번 읽어보고 싶다는 생각으로 책을 덮는다.

이제 실전에서 더욱 적용해봐야겠다.


그리고 요즘 swift 언어에 대해서 다시 공부하고 있는데 

여기에도 적용할 수 있는 부분이 있어서 새로웠다.

조만간 swift 기초 공부를 마치고 다시 글을 남겨야겠다.

반응형