[Clean Code] 클린 코드 #Day 6 / Mission: 더러운 코드 고치기

ChilihC·2022년 3월 1일
0

Clean Code

목록 보기
7/13
post-thumbnail

TIL(Today I Learned) 🧑🏻‍💻


복습 & Mission(2)


Mission: 더러운 코드 고치기

Mission 1

// 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이라는 변수명을 추가해주었다. 어떤 코드를 볼 때 값의 의미가 한번에 전달이 되지않는다면 그것은 문제가 있는 코드라고 볼 수 있다. 변수명, 함수명등 적절한 이름을 부여함으로써 이를 해결할 수 있어야 한다.


Mission 2

// BAD 더러운 코드 😣
// Hint❕ : 의미있는 이름을 사용해주세요.

const yyyymmdstr = moment().format("YYYY/MM/DD");

// GOOD 😎
// 위 코드를 깨끗하게 다시 작성해 주세요.

const newDate = moment().format("YYYY/MM/DD");

// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.

의미있는 변수명으로 바꾸어주었다. 의미없는 변수명이 해당 프로그램을 이해하는데 큰 방해가 된다는 것을 이해하였다. 항상 이름을 지어줄때는 종합적으로 고려할 필요가 있겠다.


Mission 3

// 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 값의 헷갈릴 수 있는 이름을 바꾸어주었다. 중복되는 이름이 프로그램 파악에 도움이된다고 생각하는 경우가 많다. 이런 것은 오히려 가독성을 헤치기 마련이다. 불필요한 중복을 없애자.


생각 & 느낀점 📝

  • 이름을 지어주는 것이 얼마나 중요한지 한 번 더 느낄 수 있던 미션이었던 거 같다. 적절한 변수명, 함수명, 클래스명이 코드를 이해하는데 얼마나 도움이 되는지 알 수 있었다. 여태 내가 짜고있던 코드들을 보면 한 번에 이해하기 어려운 부분들, 이름만 보고는 파악할 수 없는 기능들이 있다. 또한 이러한 문제점을 알고 있으면서도 다음 기능을 빠르게 또는 프로그램을 빨리 완성하기 위해 넘어가고는 했다. 물론 다음에 돌아와서 고치는 법은 없었다. 이런 부분 부분들이 모여 프로그램은 어느새 복잡복잡한 도떼기 시장이 되어버렸다.

profile
developer junior

0개의 댓글

관련 채용 정보