클린코드 2- 임시변수

金秀·2022년 4월 29일
0

클린코드

목록 보기
2/4

임시변수!! What is wrong with it

  • 명령형으로 가득한 코드이고
  • 어디서 잘못되었는지 디버깅 힘들고(예측 힘듦)
  • 추가적 코드 작성하고 싶은 유혹에 빠지기 쉬움(간단히 유지보수 하기 위해서..but 하나의 역할만 하는 함수짜기에서 벗어남)

해결책
-함수를 나누고, 바로 리턴하기 !!
-고차함수 사용하기(map,filter,reduce) - 이후 강의
-명령형에서 선언형 코드로 바꿔보는 연습하기 - 이후 강의

CASE 1

이렇게 임시 객체가 생기는 순간

객체에 접근해서 CRUD(조작) 한 후에 리턴만 하면 된다고 생각하기 쉬움

리팩터링 1

  • clearer

리팩터링 2

  • 객체 자체 리턴하기 => CRUD 차단
  • causing much less side effects

CASE 2

특정 date obj를 받아서 월,날짜,시간을 뽑아서 CRUD하고 리턴함

  • 추가적인 spec을 넣거나 마케팅적인 요소로 날짜에 대한 요구사항이 생겼을 때?
  1. 함수 추가
  2. 해당 함수를 유지보수/수정 => 이 함수를 사용하는 모든 곳에서 재확인해야함

So 처음부터 CRUD 없이 바로 리턴하는 형태가 좋음

리팩터링 1

  • let 을 const로 바꾸고 (수정/재할당 금지) => 바로 리턴하도록 변경

추가 수정내용이 생기면 => 함수를 그대로 사용하는 additional 함수 만들기

  • 임시변수를 만들어서 지지고 볶고 하지 않고
    필요한 내용/추가적인 내용에 해당하는
    함수를 만들어서 껍데기를 씌우고 벗기고😄 하는게 바람직함 => 임시변수 줄이기!

CASE 3

간단하게 연산을 return하는 함수이지만
(미래에 누군가) 중간에 코드를 넣고 조작할 수 있는 가능성 있음

함수를 만들 때, 함수 내부의 임시변수를 CRUD 하지 못하도록

하나의 역할만 하는 함수`로 만드는 것이 중요

CASE 4
자바스크립트 초심자들이 많이 짜는 코드 sample
변수 temp 의 값이 계속 바뀌면서 예측하기 어려움

  • 임시 변수를 사용하지 않는 방법을 많이 고민하기!

👸원래 쉽게 감동을 잘 받는 사람이지만 이 강의도 진짜 X100 알차고 좋음!!
(feat. 하지 말라고 하는 거 다하고 있던 1인)

profile
기록하기

0개의 댓글