CleanCode 4

9장 단위 테스트

Test Driven Development: 실제 코드 짜기 전 단위 테스트부터 짜라. 1) 실패하는 단위 테스트 작성할 때 까지 실제 코드 짜지 않는다. 2) 컴파일은 가능하지만 실행이 실패하는 정도로만 단위 테스트 작성. 3) 현재 실패하는 테스트를 통과할 정도로만 실제 코드 작성. 이 규칙을 따르면 개발과 테스트가 대략 3초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나온다. 깨끗한 테스트 코드 유지: 테스트 코드가 지저분할수록 코드를 변경하기 어려워진다. 테스트는 유연성, 유지보수성, 재사용성을 제공. 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다. 테스트 코드에서 가장 중요한 것은 가독성. Build-Operate-Check패턴. 첫 번째 부분은 테스트 자료를 만들고, 두 번째 부분은..

Clean Code 2022.04.24

7장 오류 처리

예외를 사용하라! 개념을 뒤섞지 말고, 원하는 로직을 처리하는 알고리즘과 오류를 처리하는 알고리즘 분리 try-catch-finally 잘 활용하기. try에서 무슨 일이 생기든 catch블록이 프로그램 상태를 일관성있게 유지. 호출자가 기대하는 상태 정의하기 쉬워진다. 먼저 강제로 예외를 일으키는 테스트 케이스를 작성하고, 테스트를 통과하도록 코드를 작성하라. 확인된 예외는 메서드의 일부기 때문에 메서드 사용할 때 선언된 것과 일치하지 않으면 오류 발생. OCP(Open Closed Principle) 위배. 하위 단계 코드 변경시 상위 단계 선언부도 전부 고쳐야(catch에서 새로운 예외 처리, throw 절 추가 등 연쇄적 수정. 모든 함수가 최하위 함수에서 던지는 예외를 알아야하므로 캡슐화 깨짐)..

Clean Code 2022.04.21

6장 객체와 자료구조

😃 책에서 기억하고 싶은 내용을 써보세요. 보통 변수를 비공개로 정의하고, get() 과 set()을 공개 함수로 설정해 비공개 변수를 외부에 노출한다. 구현을 외부로 노출하는 셈. 변수 사이에 함수라는 계층을 넣는다고 구현이 감추어지는 게 아니라 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. 자료구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다 절차적 방식 예시: 각 도형 클래스는 간단한 자료구조이고, 도형이 동작하는 방식은 Geometry class에서 구현한다. (class Square, class Rectangle, class Circle, c..

Clean Code 2022.04.20

5장 형식 맞추기

😃 책에서 기억하고 싶은 내용을 써보세요. 코드가 깔끔하고, 일관적이며 꼼꼼해야 함 -> 형식을 깔끔하게 맞추는 것이 중요. 귯칙을 따라야 한다. 규칙을 자동으로 적용하는 도구를 활용하라 코드 형식은 의사소통의 일환으로, 매우 중요하다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 세로 적절한 행 길이: 평균 파일 크기는 약 65줄이다. 대략 1/3의 파일이 40-100줄 사이이고 가장 긴 파일은 약 400줄, 가장 짧은 파일은 6줄. 신문 기사처럼 작성하기. 최상단에 몇 마디로 요약하는 표제, 첫 문단이 전체 내용을 요약, 쭉 읽으며 내려가면 세세한 사실 묘사. 즉 소스 파일..

Clean Code 2022.02.27