본문 바로가기

JavaScript│Node js67

마틴 파울러 - 리팩토링 - Remove Middle Man 프로그램에서는 getter 함수를 사용해서 데이터에 접근하기도 한다. 불필요한 getter 함수를 없애고 코드를 간결하게 만든다. 여기서 불필요한 getter 함수가 바로 Middle Man이다. 코드를 통해서 단계를 살펴본다. manager = aPerson.manager; class Person { get manager() { return this.department.manager; } Person 클래스 안에는 manager 함수가 있다. manager 함수는 department의 manager를 리턴한다. manager = aPerson.department.manager; 클래스의 getter를 사용하지 않고 person.department.manager로 가져온다. 리팩토링 기법인 High De.. 2019. 11. 6.
마틴 파울러 - 리팩토링 - Extract Class 소스 코드에서 각 클래스의 책임과 역할은 명확해야 한다. 하나의 클래스가 여러 개의 책임과 역할을 가지고 있다면 리팩토링이 필요하다. 여러 개의 책임을 가지는 클래스를 리팩토링해본다. 순서는 이렇다. 1. 책임을 어떻게 분리할지 기준을 정한다. 2. 책임을 넘길 자식 클래스를 만든다. 부모 클래스가 할 역할이 바뀐다면 역할과 책임에 맞게 클래스 이름을 바꾼다. 3. 부모클래스와 자식클래스를 연결할 때 자식 클래스의 인스턴스를 만든다. 4. 부모 클래스에서 자식 클래스로 옮길 변수들을 옮긴다. 5. 부모 클래스에서 자식 클래스로 옮길 함수들을 옮긴다. 6. 클래스, 함수 이름을 적절하게 바꾼다. 필요없는 함수는 지운다. 7. 새로운 자식 클래스를 더 만들어서 분리할지 결정한다. 코드를 통해서 단계를 살펴본.. 2019. 10. 31.
마틴 파울러 - 리팩토링 - Split Phase 리팩토링 기법. Split Phase const orderData = { orderString.split(/\s+/ ); const productPrice = priceList[orderData[0].split("-")[1]]; const orderPrice = parseInt(orderData[1]) * productPrice; const orderRecord = parseOrder(order); const orderPrice = price(orderRecord, priceList); function parseOrder(aString) { const values = aString.split(/\s+/); return ({ productID: values[0].split("-")[1], quantity:.. 2019. 10. 18.
react 앱 firebase 에 배포하기 https://console.firebase.google.com/에 들어가서 앱을 하나 생성한다. 1. 프로젝트 디렉토리에서 firebase tool을 다운 받는다. npm install -g firebase-tools 2. 프로젝트 디렉토리에서 firebase에 로그인 한다. firebase login 3. 프로젝트 디렉토리에서 firebase 를 초기화 한다. firebase init 4. firebase deploy를 사용해서 배포한다. public 디렉토리를 사용할 것이냐는 질문에는 build 라고 답한다. single page app 은 No 로 대답한다. overwrite 404 , index.html 모두 no 로 답한다. 5. 배포 된 웹사이트를 확인하면 된다. 6. 변경사항을 배포하고 싶.. 2019. 10. 16.
마틴 파울러 - 리팩토링 - Encapsulate Variable 리팩토링 기법. Encapsulate variable let defaultOwner = { firstName: 'Martin', lastName: 'Fowler' } let defaultOwner = { firstName: 'Martin', lastName: 'Fowler' } export function defaultOwner() { return defaultOwnerData; } export fuction setDefaultOwner(arg) { defaultOwnerData = arg; } 리팩토링은 프로그램의 구성요소를 조작하는 일이다. 데이터를 조작하는 일은 함수를 조작하는 것보다 곤란하다. 데이터를 조작하는 게 더 곤란한 이유는 데이터는 함수처럼 동작하지는 않기 때문이다. 만약 데이터를 이동하.. 2019. 10. 5.