Clean Code(5)
-
[Clean Code] 함수
1. 함수 1) 작게 만들기 if / else, while 등에 들어가는 블록은 한 줄이어야 한다. 중첩 구조가 생길만큼 함수가 커져서는 안된다. 2) 한 가지만 수행하기 함수는 한 가지만 수행해야한다. 큰 개념을 다음 추상화 수준에서 여러 단계로 나누어 수행하기 위해서이기 때문이다. 3) 함수 당 추상화 수준은 한개 함수가 한 가지만 수행하기 위해서는 함수 내 모든 문장의 추상화 수준이 동일해야한다. 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 혼란스러워하고 특정 표현이 근본 개념인지 혹은 세부사항인지 구분하기 어렵다. 4) 위에서 아래로 코드는 위에서 아래로 읽혀야한다. 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한..
2021.04.21 -
[Clean Code] 의미 있는 이름
1. 이름 변수, 함수 인수, 클래스, 패키지 소스 파일, 디렉터리 jar, war, ear 파일 2. 의미 있는 이름 1) 의도를 분명히 존재 이유? 수행 기능? 사용 방법? 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 지뢰찾기 게임 예제에서는 다음과 같은 문제가 발생한다. public List getThem() { List list1 = new ArrayList; for (int[] x: theList) if(x[0] == 4) list1.add(x); return list1; } theList에 무엇이 들어있나? theList에서 0번째 값이 왜 중요한가? 값 4는 무엇을 의미하는가? 함수가 반환하는 리스트 list1을 어떻게 사용하는가? 이 예제를 수정한다면 다음과 같다. pub..
2021.04.21 -
[Clean Code] 나쁜 코드, 깨끗한 코드
1. 나쁜 코드 프로젝트의 진행 속도 감소 생산성 감소 재설계 시 인력 증가 업무 시간 증가 2. 깨끗한 코드 " 우아하고 효율적인 코드, 철저한 오류 처리 (메모리 누수, 경쟁 상태, 일관성 없는 명명법) " 나는 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리한다. 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 깨끗한 코드는 한 가지를 제대로 한다. - 비야네 스트룹스트룹의 교훈 中 - " 가독성 " 깨끗한 코드는 단순하고 직접적이다. 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. 깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추..
2021.04.21 -
[Clean Code] 요약 (2)
1. 의미있는 이름 의도를 분명히 밝혀라 그릇된 정보를 피하라 의미있게 구분하라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 검색 결과가 너무 많을 경우, 원하는 내용을 쉽게 찾기 힘들다. 인코딩을 피하라 자신의 기억력을 자랑하지 마라 클래스 이름 명사, 명사구 - User, Payment) 메서드 이름 동사, 동사구 - getName(), pay()) 기발한 이름은 피해라 한 개념에 한 단어를 사용하라 User, Member, Customer 말장난을 하지 마라 해법 영역에서 가져온 이름을 사용하라 문제 영역에서 가져온 이름을 사용하라 의미있는 맥락을 추가하라 불필요한 맥락을 없애라 2. 메서드 작게 만들어라 한 화면에 나오도록 책에서는 가로 150자 이하, 세로 100줄 이하를 권장 ..
2021.04.20 -
[Clean Code] 요약 (1)
1. Clean Code 란? 사람마다 Clean한 기준이 다르다. 책의 멘토가 전하는 Clean Code는 다음과 같다. 나는 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리한다. 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 깨끗한 코드는 한 가지를 제대로 한다. - C++ 창시자 Bjarne Stroustrup - 깨끗한 코드는 단순하고 직접적이다. 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. 깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다. - Object Oriented Analysis a..
2021.04.20