[워밍업 클럽 2기 BE - 클린코드 & 테스트] 1주차 발자국
읽기 좋은 코드가 중요한 이유
쓰기보다 읽기에서 더 많은 시간을 소비
시간과 자원을 아끼려면 읽기 수월한 것이 중요
추상과 구체 (이름, 메서드)
추상화는 중요한 핵심 개념을 남겨서 표현한 것
추상으로 구체화된 내용을 예측 가능해야 잘된 것
이름의 다양한 방법으로 표현 가능
하나의 문단에는 하나의 주제로 접근
메서드의 구성으로 예측 가능하도록 하기
상수
날 것의 상수 또한 예측 가능한 표현을 사용하자
뇌 메모리 적게 쓰기
뇌가 힘들면 읽기 좋은 코드가 아니다
Early return,
사고의 depth 줄이기,
공백 라인과
부정어의 고민
예외 처리
예외 처리를 통해 견고한 SW 개발 가능
외부 접점에서 주로 발생
의도에 따라 예외 구분
Null 대한 고민 필요
추상의 객체 지향
객체 간의 협력과 책임 관점으로 생각
관심사의 분리를 통해 부여
객체 지향의 특성에 맞게 객체 설계 및 접근 (캡슐화, 추상화, 상속, 다형성)
SOLID
객체 지향 설계를 더 이해하기 쉽고, 유연성과 유지 보수하기 쉽게 도와주는 원칙들
SRP - 하나의 클래스는 하나의 책임 담당
OCP - 확장에는 열려있고, 수정에는 닫혀있기
LSP - 부모는 자식으로 대체 가능하도록 하기
ISP - 사용하지 않는 인터페이스 의존하지 않기
DIP - 상위 모듈은 하위 모듈의 구현에 의존하면 안되며, 상위 모듈에서 정의한 추상 타입에 의존하자
객체 지향 적용하기
상속보다 조합을 사용
VO,
일급 컬렉션,
Enum,
다형성 활용
완벽한 설계는 없으며, 당시 최선을 다하기
미션 해결 과정 요약
SOLID 정리의 경우 필요한 이유를 중점으로 저의 언어로 표현하였습니다.
그 과정에서 예시를 검색하며, 적용 전과 적용 후를 비교해 저의 것으로 만드는데 많은 도움이 되었습니다.
읽기 좋은 코드를 만드는 과제에서는 어떻게 하면 쉽게 읽을 수 있을지 고민하였습니다.
그 과정에서 수정하고, 다시 읽어보는 식으로 쉽게 읽힐 때까지 반복하여 배움을 적용하는데 큰 도움이 되었습니다.
1주차 회고
강의 내용을 시간이 날 때마다 복습하여 이론적으로는 모두 흡수하여 뿌듯합니다.
자바 개념이 부족하여 새롭게 배운 내용을 찾아보느라 강의 코드 작성을 많이 못해 아쉽습니다.
이론 뿐만 아니라 강의 코드 작성 연습을 통해 다른 면에서도 더 잘 습득할 수 있도록 목표로 하겠습니다.
댓글을 작성해보세요.