TDD, 클린 코드 with Java 18기: 실시간 강의 정리(3)
개발자 성장 로드맵
1단계 개인역량 쌓기
- 클린 코드, 유지보수하기 좋은 코드를 구현하는 능력
- 자기 주도적으로 문제를 해결하는 능력
2단계 소프트 스킬 역량 강화
3단계 도메인 지식, 대용량 트래픽 경험
- 대용량 트래픽을 처리할 수 있는 아키텍처 설계 역량
4단계 리더십 성장
- 개발 문화 만드는 리더십 경험
- 기술 아키텍처 설계를 경험할 수 있는 테크 리더
테스트 코드
- 테스트 데이터는 차후에 유지보수를 고려하여 필요한 만큼만 작성하는게 좋다.
객체 설계
- SOLID
- 추상적이고 실제로 적용하기 힘들고 어렵다.
- 이는 경력이 쌓인 사람한테도 동일한 문제이다.
- 객체지향 생활 체조 원칙
- 추상적인 개념이 매달리지 않기 위해 제공된 정략적인 가이드(기준)
- 이 가이드(기준)을 통해서 객체지향 프로그래밍을 어떻게 하는지 감을 잡아야 한다.
- 클래스 분리(설계)를 위한 정량적인 원칙
- 모든 원시값과 문자열을 포장하라
- 일급 컬렉션을 사용하라
- 일급 컬렉션이란 인스턴스 변수로 콜렉션 하나만을 가지는 객체이다.
- 3개 이상의 인스턴스 변수를 가진 클래스를 구현하지 않는다.
- 2개의 인스턴스 변수까지만 허용해라.
- 인스턴스 변수 개수 줄이는 법
- 불필요한 변수 제거
- 클래스의 필드들 중 비슷한거 끼리 묶는다.
- 함수의 인자는 적은게 좋다.
- 인자가 많아지면 개발자가 사용하기 힘들다.(2개까지만 OK, 그 이상은 너무 많다.)
- 만약 priavte 메서드를 테스트 하고 싶다면 해당 메서드를 다른 클래스로 이동 분리를 고려하라.
- 추가) enum도 클래스이다. 그러니 enum 또한 값을 끄집어내려고 하지 마라.
- 원시값 포장과 일급 객체로 인한 이슈
- 구현해야할 코드의 양이 무지하게 많아진다.
- 생성자를 적극 활용하여 이러한 문제를 해결할 수 있다.
- 주생성자, 부생성자 활용
- 주생성자: 프로퍼티 초기화
- 부생성자: 주생성자 호출
- 주생성자를 가장 마지막에 선언(관례)
- 이를 통하여 유지보수성 또한 높일 수 있다.