본문 바로가기

기타

(12)
[Refactoring] Encapsulation(2) 마틴파울러의 Refactoring 2판 7과의 내용 정리(2)입니다. Extract Class(클래스 추출하기) -메서드와 데이터가 너무 많은 클래스는 이해하기가 쉽지 않으니 잘 살펴보고 적절히 분리하는 것이 좋다. -특히 일부 데이터와 메서드를 따로 묶을 수 있다면 어서 분리하라는 신호! -함께 변경되는 일이 많거나 서로 의존하는 데이터들도 분리! // from class Person { ... get officeAreaCode() {return this._officeAreaCode;} get officeNumber() {return this._officeNumber;} } ------------------------------------------------------ // to class Perso..
[Refactoring] Encapsulation(1) 마틴파울러의 Refactoring 2판 7과의 내용 정리(1)입니다. Encapsulate Record(레코드 캡슐화하기) -레코드의 단점은 계산해서 얻을 수 있는 값과 그렇지 않은 값을 명확히 구분해 저장해야 하는 점이다. -때문에 가변 데이터를 저장하는 용도는 객체가 더 나을 수 있다. 값과 계산과정을 숨기고 메소드로 제공할 수 있다. // from organization = {name: "애크미 구스베리", country: "GB"} -------------------------------------------------------- // to class Organization { constructor(data) { this._name = data.name; this._country = data.c..
[Refactoring] A First Set Of Refactorings(2) 마틴파울러의 Refactoring 2판 6과의 내용 정리(2)입니다. Rename Variable(변수 이름 바꾸기) -명확한 프로그래밍의 핵심은 이름짓기..! let a = height * width; --> let area = height * width; Introduce Parameter Object(매개변수 객체 만들기) -데이터 뭉치를 데이터 구조로 묶으면 데이터 사이의 관계가 명확해진다 -매개변수 수가 줄어든다 -같은 데이터 구조를 사용하는 모든 함수가 원소를 참조할 때 항상 같은 이름 쓰기에 일관성도 높여준다 -나중에 동작까지 함께 묶기 좋도록 class로 만드는것 추천 // from function readingOutsideRange(station, min, max) { return sta..
[Refactoring] A First Set Of Refactorings(1) 마틴파울러의 Refactoring 2판 6과의 내용 정리입니다. Extract Function (함수 추출하기) -목적과 구현을 분리 -코드가 5~6줄을 넘어가면 추출할 냄새가 나기 시작..! -성능 느려질 걱정은 ㄴㄴ 요즘은 그럴일 거의 없다 // from function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); // 세부 사항 출력 console.log(`고객명: ${invoice.customer}`); console.log(`채무액: ${outstanding}`); } -------------------------------------------- // to function printOwing(inv..