[Clean Code] 1. 깨끗한 코드

  images cleancode

  • 클린 코드 책을 읽으며 내용을 요약 정리한 글입니다.

1. 깨끗한 코드

import React from 'react'

const TEMPLATE = 'gatsby-starter-bee'class Foo extends React.Component {  handleClick = val => {    if (val === 'bar') {      return 1
    } else if (val !== 'zoo') {
      return 2
    }
    console.log(`clicked`)
    return 3
  }

  render() {
    return <div>Welcome, Gatsby, ${TEMPLATE}</div>
  }
}

나쁜 코드

  • 우리 모두는 자신이 잔 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다.
  • 르블랑의 법칙(leblanc’s law) : 나중은 결코 오지 않는다.

나쁜 코드로 치르는 대가

  • 나쁜 코드는 개발 속도를 크게 떨어뜨린다.
  • 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.
  • 태도

    • 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
    • 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.
  • 원초적 난제

    • 기한을 맞추는 유일한 방법은, 빨리가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.
  • 깨끗한 코드라는 예술?

    • 열쇠는 ‘코드 감각’
  • 깨끗한 코드란?

    • 비야네 스트롭스트룹

      • 우아하고 효율적인 코드
      • 의존성을 최대한 줄여야 유지보수가 쉬워진다.
      • 오류는 명백한 전략에 의거해 철저히 처리한다. (메모리 누수, 경쟁 상태, 일관성 없는 명명법 처리)
    • 그래디 부치

      • 깨끗한 코드는 단순하고 직접적이다.
      • 깨끗한 코드는 잘 쓴 문장처럼 읽힌다.
      • 명쾌한 추상화, 단순한 제어문
    • 데이브 토마스

      • 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다.
    • 마이클 페더스

      • 깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.
    • 론 제프리스

      • 모든 테스트를 통과한다.
      • 중복이 없다.
      • 한 기능만 수행한다.
      • 제대로 표현해야한다.
      • 작게 추상화하라.
    • 워드 커닝햄

      • 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 된다.
      • 언어를 단순하게 보이도록 만드는 책임은 프로그래머에게 있다.

우리는 저자다

  • 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다.

보이스카우트 규칙

  • 시간이 지날수록 코드가 좋아지도록 코드를 정리하자.
  • 변수 이름 하나를 개선하고, 조금 긴 함수 하나를 분할하고, 약간의 중복을 제거하고, 복잡한 if 문 하나를 정리하면 충분하다.

Written by@Ji Yeong Choe
안녕하세요 !

GitHub