[클린코드] 1장. 깨끗한 코드

Ted·2023년 2월 13일
0

CleanCode

목록 보기
1/1
post-thumbnail

프로그램 작성 요령을 설명하는 책이고 온통 코드들인 책이다. 코드에 대한 많은 사실을 배워보라

코드가 존재하리라

  • 궁극적으로 코드는 요구사항을 표현하는 언어이다.
  • 요구사항에 더욱 가까운 언어를 만들 수도 있고, 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다.

나쁜 코드

  • 나쁜 코드의 경우 초기에는 모르지만 시간이 지나 점점 기능을 추가하면 할 수록 코드가 엉망이 되간다.
  • 흔히 고행이라고 할 정도로 힘겹게 헤쳐나가야한다.
  • 우리는 대충 짠 프로그램이 돌아갔다고 안도하고 나중에 정리해야지라고 하지만 실제로 하지 않는다.
    • 르블랑의 법칙

나쁜 코드로 치르는 대가

  • 쓰레기 코드는 개발 속도를 크게 떨어뜨린다.
  • 매번 기존 코드를 해석하고 얽히고 섥힌 코드를 파헤치느라 바쁘다
  • 프로그래머들은 기한을 맞추기 위해서 나쁜 코드를 양산할 수 밖에 없다고 말한다.
    • 하지만 전문가들은 이를 틀렸다 한다.
    • 나쁜 코드기에 오히려 속도가 느려지기 때문이다.
  • 깨끗한 코드라는 것은 보기에 즐거운 코드이다.
  • CPU자원을 낭비하는 코드 또한 우아하지 못한 코드이다.
  • 프로그래머들이 흔히 놓치기 쉬운 실수
    • 오류처리
      • 메모리 누수
      • 경쟁 상태
      • 일관성 없는 명명법

깨끗한 코드는 단순하고 직접적이다. 깨굿한코드는 잘 쓴 문장처럼 읽힌다. 깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다.

  • 깨끗한 코드는 다른 사람이 고치기에도 쉬운 코드이다.
  • 깨끗한 코드는 주의 깊게 짜야하는 것
  • 단순한 코드
    • 모든 테스트를 통과한다.
    • 중복이 없다.
    • 시스템 내 모든 설계 아이디어를 표현한다.
    • 클래스, 메서드, 함수 등을 최대한 줄인다.
  • 중복을 줄이기 위해 이름을 달리해 표현력을 강조
  • 객체가 여러 기능을 수행한다면 이를 세분화, 메서드 또한 메서드 추출 리팩터링을 통해서 여러 개로 분할
  • 집합의 추상화

코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드이다.

  • 이 책에서는 다양한 설계 원칙을 산발적으로 거론한다. SRP(Single Responsibility Principle), OCP(Open Closed Principle), DIP(Dependency Inversion Principle) 등이 그 예이다.
profile
iOS Developer

0개의 댓글