Skip to content

Latest commit

 

History

History
49 lines (36 loc) · 2.79 KB

ch1(CleanCode).md

File metadata and controls

49 lines (36 loc) · 2.79 KB

1. 깨끗한 코드란?

  1. 나쁜 코드의 경험

어느 한 회사의 예를 들어 80년대에 인기있는 앱을 출시한 회사가 있었다. 그 회사의 앱은 인기가 많았지만 업데이트 기간이 길어지기 시작했다. 이전의 버그가 새 버전에도 남아있고 프로그램 시동 시간이 길이지고 갑자기 다운되기도 했다. 결국 망했다고 한다.

결론적으로 말하자면 나쁜 코드때문이라고 한다. 출시일은 다가오는데 개발은 덜 됐고 기능을 추가하다 보니 감당이 불가능한 수준에 이르렀다고 한다.

나쁜 코드는 한 회사를 망하게 만들 수 있다고 생각하게 되었다.

나또한 많은 잘못된 코드들을 만들어본적이 있다. 급해서 시간이 부족해서 지겨워서 등등이 있었다. 하지만 이러한 코드들은 결국에 나한테 다 돌아오게 되어있다. 유지보수할때 새로운 기능을 추가하려고 할때 등등 처음부터 잘짜고 잘못된 점이 생각났을 때 고치자 다음은 없다는 마음을 갖게된 계기가 되었다.

그러므로 오히려 코드를 깨끗하고 깔끔하게 작성하려는 노력이 비용과 시간을 절감하는 방법일 것이다.

2. 좋은 코드란

각종 전문가들이 한말들을 정리한다.

c++ 제작자(비야네 스트롭스트룹)

  1. 깨끗한 코드는 '보기에 즐거운' 코드다.
  2. 나쁜 코드는 나쁜코드를 유혹한다.
  3. 오류처리(메모리 누수, 경쟁 상태)등 세세한 사항까지 꼼꼼하게 처리하는 코드다.
  4. 깨끗한 코드는 한가지를 잘하는 코드.

그래디 부치

  1. 단순하고 직접적인 코드
  2. 가독성( 잘쓴 문장처럼 잘읽힌다.)
  3. 추측이 아닌 사실에 기반해야한다.

데이브 토마스(이클립스 전략의 대부)

  1. 작성자가 아닌 코드도 읽기 쉽고 고치기 쉽다.
  2. 깨끗한 코드에는 의미있는 이름이 붙는다.
  3. 의존성은 최소이며 각 의존성을 명확히 정의한다.
  4. 테스트 케이스에 모두 잘 돌아가야한다.

마이클 페더스

  1. 깨끗한 코드는 언제나 주의깊게 짰다는 느낌을 준다.
  2. 주의 (시간을 들여 단정하게 정리한코드)
  3. 꼼꼼하게 신경쓴 코드

론 제프리스

대부분의 모든 언어로 서비스를 개발한 개발자

  1. 모든 테스트에 통과(같은 작업을 여러차례 반복하면 안된다.
  2. 중복이 없다.
  3. 시스템 내 모든 설계 아이디어를 표현한다.
  4. 클래스 메소드, 함수 등을 최대한 줄인다.
  5. 이름을 확정하기 전 여러번 생각해보기
  6. 객체가 여러기능을 수행한다면 여러객체로 나눈다.
  7. 메소드가 여러기능을 수행한다면 메소드 추출을 통해서 여러개로 나눈다.