// BAD 더러운 코드 😣
// Hint❕ : 검색하기 쉬운 이름을 사용하세요.
// blastOFF는 로켓 발사를 의미. 86400000은 하루의 밀리초 (milliseconds) 의미.
// What the heck is 86400000 for?
setTimeout(blastOff, 86400000);
// GOOD 😎
// 위 코드를 깨끗하게 다시 작성해 주세요.
// 86400 * 1000 * 24 * 60 * 60
const BLAST_OFF_HOURS = 24;
const MINUTES_UNIT = 60;
const SECONDS_UNIT= 60;
const MILLI_SECONDS_UNIT = 1000;
const blastOffTime = BLAST_OFF_HOURS * MINUTES_UNIT * SECONDS_UNIT * MILLI_SECONDS_UNIT;
setTimeout(blastOff, blastOffTime);
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
8640000 밀리초의 의미를 쉽게 알 수 있도록 상수에 해당 값을 저장해주었다. 해당 값이 무엇을 의미하는지 또 어떻게 계산되었는지를 서술하기 위해 시간, 분, 초, 밀리초로 나누어 저장하였고 이를 곱한 값이 로켓 발사 시간임을 알려주기위해 변수명은 blastOffTime으로 정하였다. 시간 외에 분과 초, 밀리초는 단위이므로 이를 분명하게 하기 위해 unit이라는 변수명을 추가해주었다. 어떤 코드를 볼 때 값의 의미가 한번에 전달이 되지않는다면 그것은 문제가 있는 코드라고 볼 수 있다. 변수명, 함수명등 적절한 이름을 부여함으로써 이를 해결할 수 있어야 한다.
// BAD 더러운 코드 😣
// Hint❕ : 의미있는 이름을 사용해주세요.
const yyyymmdstr = moment().format("YYYY/MM/DD");
// GOOD 😎
// 위 코드를 깨끗하게 다시 작성해 주세요.
const newDate = moment().format("YYYY/MM/DD");
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
의미있는 변수명으로 바꾸어주었다. 의미없는 변수명이 해당 프로그램을 이해하는데 큰 방해가 된다는 것을 이해하였다. 항상 이름을 지어줄때는 종합적으로 고려할 필요가 있겠다.
// BAD 더러운 코드 😣
// Hint❕ : 불필요하게 반복하지 마세요.
const Car = {
carMake: "Honda",
carModel: "Accord",
carColor: "Blue"
};
function paintCar(car, color) {
car.carColor = color;
}
// GOOD 😎
// 위 코드를 깨끗하게 다시 작성해 주세요.
const Car = {
Make: "Honda",
Model: "Accord",
Color: "Blue"
};
function paintCar(car, newColor) {
car.color = newColor;
}
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
객체에 반복되고 있는 이름인 car를 제거하였다. funciton의 인자에서 객체의 key 값의 헷갈릴 수 있는 이름을 바꾸어주었다. 중복되는 이름이 프로그램 파악에 도움이된다고 생각하는 경우가 많다. 이런 것은 오히려 가독성을 헤치기 마련이다. 불필요한 중복을 없애자.