book
![[Clean Code] 4. 주석](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4gbtJ%2FbtrdwTU4O3l%2FckFh7Zj6hyIMh3I7LRhTPK%2Fimg.jpg)
[Clean Code] 4. 주석
주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 코드가 지저분하면 주석을 달게 아니라 코드를 정리해야 한다! 깔끔하고 주석이 거의 없는 코드가, 복잡하고 주석이 많이 달린 코드보다 훨씬 좋다. 코드로 의도를 표현하라! 많은 경우 주석으로 달려는 설명을 코드로 대다수 의도를 표현할 수 있다. 좋은 주석 어떤 주석은 필요하거나 유익하다. 몇 가지를 소개한다. 때로는 회사가 정립한 구현 표준에 맞춰 법적인 이유로 특정 주석을 넣으라고 명시한다. 예를 들어, 각 소스 파일 첫 머리에 주석으로 들어가는 저작권 정보와 소유권 정보는 필요하고도 타당하다. 다음은 FitNess에서 모든 소스 파일 첫 머리에 추가한 주석이다. // Copyright (C) 200..
![[Clean Code] 3. 함수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwz12C%2FbtrdpLplRCL%2FNFk3BKGzPILdPyg6jz3WUk%2Fimg.jpg)
[Clean Code] 3. 함수
작게 만들어라! 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. if문, while문 등에 들어가는 블록은 한 줄이어야 한다. 대개 여기서 함수를 호출한다. 블록 안에서 함수 이름을 적절히 짓는다면, 코드를 이해하기도 쉬워진다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 한 가지만 해라! 함수는 한 가지만을 해야 한다. 여기서 그 '한 가지'는 어떻게 알 수 있을까? 지정된 함수 이름 아래 추상화 수준이 하나이면 된다. 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다. 한 가지 작업만 하는 함수는 자연스럽게 섹션으로 나누기 어렵다. 여러 섹션으로 나눠진 함수는 여러 작업을 한다는 증거다. 함수 당 추상화..
![[Clean Code] 2. 의미 있는 이름](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyDxTM%2FbtrdmCL5tDI%2FZ12cokRrnt6McLWeb0OwDK%2Fimg.jpg)
[Clean Code] 2. 의미 있는 이름
들어가면서 소프트웨어에서 이름은 어디나 쓰인다. 변수, 함수, 클래스, 패키지 등 이름을 붙인다. 그래서 이름을 잘 지으면 여러모로 편하다. 이 장에서는 이름을 잘 짓는 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 변수의 존재 이유는? 수행 기능은? 사용 방법은? 이에 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. int d; // 경과 시간(단위: 날짜) int elpasedTimeInDays; 이름 d는 아무 의미도 드러나지 않는다. elapsedTimeInDays처럼 측정하려는 값의 단위를 표현하는 이름이 필요하다. 그릇된 정보를 피하라 프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다. 예를 들어, h..
![[Clean Code] 1. 깨끗한 코드](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbEg5N%2FbtrdlyXstmT%2FMVEwYnnrSyw3c9hf3fDVYK%2Fimg.jpg)
[Clean Code] 1. 깨끗한 코드
코드가 존재하리라 코드에 집중을 굳이 해야할까? 모델이나 요구사항에 집중해야 하지 않을까? 코드는 요구사항을 표현하는 언어, 코드의 도움 없이 요구사항을 상세히 표현하기란 불가능하다. 나쁜 코드 프로그래머라면 누구나 나쁜 코드로 고생한 경험이 있다. 그렇다면 어째서 나쁜 코드를 짰는가? 급해서? 서두루느라? 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 그러나 나중은 결코 오지 않는다. 나쁜 코드로 치르는 대가 나쁜 코드는 개발 속도를 크게 떨어뜨린다. 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 생산성이 떨어지면 관리층은 재설계를 위해 새로운 팀을 꾸린다. 하지만 새로운 팀은 모두 떠난다. 왜? 현재 시스템이 너무 엉망이라서 일정이 촉박해 제대로 된 코딩을 할 시..