Python study/코딩스타일

코드에서 나는 악취

Chef.lee 2021. 12. 3. 13:53

나쁜 코드들은 좋지 못한 특징들을 가지고 있는데, 이런 코드들은 악취가 난다고 표현한다.

이런 코드들은 리팩터링의 대상이 된다.

 

꼭 리팩토링이 아니라도, 이런 코드가 나쁘다는 '감'정도는 가지고 있어야 한다.

책에서는 24가지를 말하는데, 내가 생각하는 중요한 일부만 정리한다.

 

  • 명료하고 정확하지 않은이름 

변수, 함수, 클래스, 파일 이름 모두 해당된다.

이름은 항상 "무엇을 하는지" 명확하게 드러내야 한다. 이름은 역할과 본질을 나타내 준다.

코딩할 때 가장 어려운 파트이기도 하다

  • 중복 코드

중복 코드가 있다면, 수정할 때 2번 이상 수정해야 한다. 까먹어서 수정 안 하는 등 위험하다.

3번 이상 중복 코드가 등장하면 어떻게든 한 곳으로 모아주어야 한다.

  • 긴 함수, 긴 클래스, 긴 매개변수 목록

길수록 보기 어렵다. 이해하기도 어렵다.

길다는 건 너무 만은 역할을 담당하고 있다는 것이다. 쪼개거나 묶어야 할 대상이다.

 

  • 전역 데이터

전역 데이터는 어디서든 건드릴 수 있고 누가 바꿨는지 찾아내기 힘들다.

  • 추측성 일반화

"나중에 필요할 거야"라는 생각으로 작성한 로직과 코드들은 실제로 사용하지 않는 경우가 많다.

실제로 사용하게 되면 다행이지만, 그렇지 않다면 이해와 복잡도를 증가시킬 뿐이다.

  • 주석

항상 나쁘다는 것은 아니다. 주석은 필요한 경우에 코드에 향기를 입힌다.

다만 장황한 설명이 달린 주석은 코드를 잘못 작성했기 때문인 경우가 의외로 많다.

주석보다는 함수나 변수 이름으로 그 의도를 명료하게 드러내는 것이 좋다.