클린코드
Search


15. chap17 - 냄새와 휴리스틱


14. chap15 & chap16 - 라이브러리 분석을 통해 코드를 바라보는 시각 기르기
1. 책의 예제
명령형 인수 구문 분석기
코드 초안
•
모든 로직이 하나의 클래스에 들어가 있다.

13. chap14 - 점진적인 개선
1. 동시성 프로그래밍이란
동시성 프로그래밍
•
어플리케이션을 효율적으로 실행하기 위해 멀티코어를 온전히 활용하도록 구현하는 방식
•
외부 서비스의 응답을 기다리면서 아무일도 하지 않으면 CPU 사이클이 낭비됨

12. chap13 - 동시성
1. 창발적 설계란
창발성(Emergence)
하위 계층에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출연하는 현상
•
각각의 개미는 집을 지을 능력이 없지만, 작은 개미들의 상호작용을 통해 집이라는 결과물이 나오는 것처럼 작은 요소들의 상호작용 반복이 전체구조에 영향을 미친다.

11. chap12 - 창발적 설계로 깔끔한 코드 구현하기


10. chap11 - 관심사 분리 패턴들


9. chap10 - 클래스 잘 설계하기


8. chap09 - 깨끗한 테스트 코드


7. chap08 - 경계


6. chap07 - 오류 처리


5. chap06 - 객체와 자료구조


4. chap05 - 형식 맞추기
1. 주석을 최대한 쓰지 말자
// 직원에게 복지 혜택을 받을 자격이 있는지 검사
if ((employee.flags & HOURLY_FLAG) && employee.age > 65))
// 의미있는 이름을 지으면 해결됨
if (employee.isEligibleForFullBenefits())
주석은 나쁜 코드를 보완하지 못한다
•
코드에 주석을 추가하는 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는데 시간을 보내야 한다.
•
코드로도 의도를 표현할 수 있다.

3. chap04 - 코드를 보조하는 주석
1. SOLID
객체지향 설계의 5가지 원칙
1.1 SRP : 단일 책임 원칙
한 클래스는 하나의 책임만 가져야 한다.
•
클래스는 하나의 기능만 가지며, 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.

2. chap03 - 함수
1. 나쁜 코드
성능이 나쁜 코드 : 불필요한 연산이 들어가서 개선의 여지가 있는 코드
의미가 모호한 코드 : 이해하기 어려운 코드, 네이밍과 그 내용이 다른 코드
중복된 코드 : 비슷한 내용인데 중복되는 코드들은 버그를 낳음

1. chap01 & chap02 - 깨끗한 코드, 의미 있는 이름




