#유코딩 코딩연습장

00. CleanCode 본문

#Programming/#CleanCode

00. CleanCode

YooCoding 2021. 12. 26. 14:28

1. 나쁜 코드란 무엇인가?

  • 나쁜 코드의 의미는 다향하지만, 우선적으로 코드를 읽을때 WTF이란 생각이 많이 들 수록 나쁜 코드
  • 성능이 나쁜 코드, 당연한 얘기지만 불필요한 연산이 들어가있어 퍼포먼스의 하락을 초래할 수 있는 코드
  • 의미가 모호한 코드, 이해하기 어렵거나, 함수 및 변수의 네이밍과 그 기능이 다를경우
  • 중복되는 코드, 비슷한 내용의 중복 코드들은 많은 버그를 야기한다

2. 나쁜 코드가 나쁜 이유는 무엇인가?

  • 나쁜 코드는 나쁜 코드의 연속성을 뛸 수 밖에 없다. 
  • 생산성이 저하된다. 나쁜 코드는 이해와 가독성이 좋지 않고, 의존적인 코드가 많기때문에 변경에 유연하지 못하고, 이해하기 쉽지 않기 때문에 유지보수에 더 큰 코스트를 소비하게 된다. 특히 협업을 통한 업무시 최악의 효율을 보여줄 수 있다.

3. 나쁜 코드는 왜 나타나는가?

  • 일정에 맞춘 개발로 인하여, 기능 구현에 초점을 맞추고 코딩을 하기때문이다.
  • 나쁜코드는 의존성이 높아서 리팩토링을 진행 할 때 그 코드만 수정을 하면 끝나는것이 아니라 여러 구분에 걸쳐 수정을 해야한다. 그렇기 때문에 방치된 나쁜 코드들이 계속해서 다른 나쁜 코드를 낳게 된다.
...
논리가 간단해야 버그가 숨어들지 못한다.
의존성을 최대한 줄여야 유지보수가 쉬워진다.
오류는 명백한 전략에 의거해 철저히 처리한다.
성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다.
까끗한 코드는 한 가지를 제대로 한다.
-비야네 스트롭스트룹

아주 마음에 와 닿고, 앞으로 코드를 작성할때 어떤 생각으로 코드를 작성해야 할 지 방향성을 알려주는 말 같다.

 

4. 클린코드란?

  • 성능이 좋은 코드, 당연한 말이다.
  • 의미가 명확한 코드, 즉 가독성이 좋으며 적절한 네이밍과 기능을 가지고 있고, 한 가지의 일을 하는 코드
  • 중복이 없는 코드, 여기저기서 사용되는 비슷한 코드의 덩어리들은 수정시 코스트가 높다.

5. 어떻게 클린코드를 작성하는가?

  • 의미가 분명한 네이밍을 해야한다. 정말 좋은 코드란 변수와 함수명을 보기만 해도 무슨 기능을 하는지 추론이 가능하다. 의미가 불분명하면 코드 전체를 보고 이해해야하기 때문에 가독성이 떨어지게 된다.
  • 통일성 있는 단어를 사용한다, 갯수를 의미하는 변수가 있을때 count, num , number 이렇게 다양하게 사용하게 되면 혼란을 야기할 수 있다.
  • 변수명에 타입을 넣지 않는다, 변수의 이름만 보고도 이 변수의 타입을 파악 할 수 있는 네이밍을 하도록 한다.
Comments