
class Account {
get overdraftCharge() {...}class AccountType {
get overdraftCharge() {...}class Customer {
get plan() {return this._plan;}
get discountRate() {return this._discountRate;}class Customer {
get plan() {return this._plan;}
get discountRate() {return this.plan.discountRate;}문장 슬라이드하기를 적용해 근처로 옮긴다.함수로 추출한다.result.push(`<p>title: ${person.photo.title}</p>`);
result.concat(photoData(person.photo));
function photoData(aPhoto) {
return [
`<p>location: ${aPhoto.location}</p>`,
`<p>date: ${aPhoto.date.toDateString()}</p>`,
];
}result.concat(photoData(person.photo));
function photoData(aPhoto) {
return [
`<p>title: ${aPhoto.title}</p>`,
`<p>location: ${aPhoto.location}</p>`,
`<p>date: ${aPhoto.date.toDateString()}</p>`,
];
}emitPhotoData(outStream, person.photo);
function emitPhotoData(outStream, photo) {
outStream.write(`<p>title: ${photo.title}</p>\n`);
outStream.write(`<p>location: ${photo.location}</p>\n`);
}emitPhotoData(outStream, person.photo);
outStream.write(`<p>location: ${person.photo.location}</p>\n`);
function emitPhotoData(outStream, photo) {
outStream.write(`<p>title: ${photo.title}</p>\n`);
}Replace Inline Code with Function Call
let appliesToMass = false;
for(const s of states) {
if (s === "MA") appliesToMass = true;
}appliesToMass = states.includes("MA");const pricingPlan = retrievePricingPlan();
const order = retreiveOrder();
let charge;
const chargePerUnit = pricingPlan.unit;const pricingPlan = retrievePricingPlan();
const chargePerUnit = pricingPlan.unit;
const order = retreiveOrder();
let charge;let averageAge = 0;
let totalSalary = 0;
for (const p of people) {
averageAge += p.age;
totalSalary += p.salary;
}
averageAge = averageAge / people.length;let totalSalary = 0;
for (const p of people) {
totalSalary += p.salary;
}
let averageAge = 0;
for (const p of people) {
averageAge += p.age;
}
averageAge = averageAge / people.length;Refactoring with Loops and Collection Pipelines
const names = [];
for (const i of input) {
if (i.job === "programmer")
names.push(i.name);
}const names = input
.filter(i => i.job === "programmer")
.map(i => i.name)
;if(false) {
doSomethingThatUsedToMatter();
}
너무 좋은 글이네요. 공유해주셔서 감사합니다.