특정 코드의 중복만을 얘기하는 좁은 의미가 아니라 (ex. 한 함수 내에서의 코드 중복)
로직, 의도, 비즈니스 로직 이 모든 것들이 중복되지 않도록 한다. (ex. 여러 함수 내에서의 특정 로직 중복)
반복되는 코드가 있다면 추출해서 관리하자.
[code] - 너무 축약되지 않은 심플한 코드
10줄짜리 코드를 한줄로 축약해 가독성을 떨어뜨리기 보다는 코드가 길어지더라도 가독성있게 풀어서 작성하는 것이 더 좋다.
[function] - 한 가지 기능의 함수
하나의 함수는 하나의 기능만 하도록 작성한다.
함수의 파리미터에 boolean값을 전달해서 조건에 따라 액션 2개 이상을 구현하기 보다는 함수를 2개로 구분하는 것이 좋다.
[class] - 한 가지 책임만 담당하는 클래스
view컴포넌트는 ui에 관련된 로직만 담기도록, 비즈니스 로직을 담당하는 클래스를 따로 만들어서 사용해야한다.
불필요한 복잡성을 더하지 않는 내에서 확장성 있는 코드를 작성해야한다.
문제 해결하려는 코딩 초반부에는 우선 동작에 초점 맞춰서 작업하고, 그 후에 깔끔하게 코드를 정리하는 것이 좋다!