클린 코드 특강2

빵어 ㅣ 2023. 12. 12. 20:45

클린 코드 특강

6. 가변 데이터(Mutual Data)

'데이터 불변성'

데이터가 생성된 후에는 데이터가 변경되는 것에는 신중을 가해야한다.

setter는 항상 조심해서 만들어야 한다. - 사용한다면 private

 

변수를 조회하는 함수와 변경하는 함수는 분리

변경안된다는 확신이 있는 변수는 setter를 아예 없애는 것도 방법

 

 

7. 뒤엉킨 변경(Divergent Change)

단일 책임 원칙 - 하나의 클래스는 하나의 기능만

샷건 수술: 변경이 필요할 때 여러 다른 클래스를 수정해야하는 상황

 

 

8. 기본형 집착(Primitive Obsession)

복잡한데이터를 단순한 기본형(int, float, string 등)에 과도하게 의존하는 경향

-> 복잡한 개념은 차라리 클래스나 구조체를 사용

 

변수의 클래스화 필요

 

 

9. 반복되는 Switch문 (Switch, If)

Switch, if문이 코드에 중복되는 문제

switch문은 현업에서 잘 쓰지 않음 -> 쓴다고 해도 리팩토링의 대상

- switch문은 좋지 않은 코드, 웬만하면 피하자

 

다형성을 활용하자

별도의 클래스로 정의, 인터페이스나 추상 클래스로 다루는 것이 더 좋음

 

 

10. 성의 없는 요소(Lazy Element)

너무 많은 것을 구현하려 하지 말자

굳이 필요없는 것을 만들 때.

 

예를 들어 인터페이스가 필요없는데, 구현을 다 해놓으면 시간 낭비

확장할 때는 좋지만 나중에 확장할 가능성이 없다고 하면 굳이 구현하지 말자