프로그래밍 노트/리팩토링

캡슐화 객체를 설계하기 위한 가장 기본적인 아이디어 변경의 정도에 따라 구현-인터페이스를 분리하고 외부에서는 인터페이스에만 의존하도록 관계를 조절하는 것 → (불안정한 부분 / 안정적인 부분을 분리해서 변경의 영향을 통제) 캡슐화? 객체지향에서 가장 중요한 원리 상태와 행동을 하나의 객체 안으로 모아 내부 구현을 외부로부터 감추자. (외부에서 알 필요 없는 부분을 감춤으로써 대상을 단순화시킴) ⇒ 불안정한 구현 세부사항을 안정적인 인터페이스 뒤로 숨김(캡슐화) 응집도와 결합도 응집도 모듈에 포함된 내부 요소들이 연관돼 있는 정도 모듈 내의 요소들이 하나의 목적을 위해 긴밀하게 협력한다면 그 모듈은 높은 응집도를 가진다. 변경의 관점 변경(요구사항)이 발생했을 때 모듈 내부에 발생하는 변경의 정도 응집도 ..
1. 함수 추출하기 (Extract Function) 코드 조각을 찾아 무슨 일을 하는지 파악한 다음, 독립된 함수로 추출하고 목적에 맞는 이름을 붙인다. When? 언제 독립된 함수로 묶어야 할지에 관한 의견이 분분함 길이 기준 재사용성 기준 코드가 무슨 일을 하는지 파악하는데 시간이 걸린다면, 그 부분을 함수로 추출한 뒤 '무슨 일'에 걸맞는 이름을 짓자. 목적과 구현을 분리 Why? 함수의 목적이 눈에 확 들어오고, 본문 코드(목적을 이루기 위해 구체적으로 수행하는 일)에 대해서는 더 이상 신경 쓸 필요가 없다. 함수명으로 함수의 목적을 나타내고, 그 목적을 이루기 위한 구현코드를 분리한다. function printOwing(invoice) { printBanner(); let ou..
깡냉쓰
'프로그래밍 노트/리팩토링' 카테고리의 글 목록