[TIL] 클린코드 작성연습

클린코드

TIP✨

//파이참에서.. 👀
오른쪽 마우스+ Refactor+Rename =>

  • shift f6 : 한번에 변수명 바꾸기
  • Shift+Tap : 인덴트, 들여쓰기 없애기
  • Alt+J : 커서 같이 잡기
  • Refactor+Extract Method 함수 추출 지원
  • is_000 : boolean값을 가진다는 이름 true,false로 답 나옴

  • return은 함수를 아예 끝내버리는 거고
    pass는 아무것도 하지 않고 지나간다.

  • 그냥 숫자나 문자열이 들어가 있는 경우에는
    상수라는 변수에 대체해서 넣는게 좋다.
    상수는 맨앞에 정의하는 것이 좋다.


def func(obj, var):
    # 버스가 만석인지 확인합니다. 
    # 버스가 만석이라면 함수를 종료하고, 그렇지 않다면 유저가 해당 버스에 탑승합니다.
    if obj.check():
        return
    else:
        var.fun(obj)

    # 탑승해서 나의 나이에 맞게 사용요금을 냅니다.
    if var.prop < 19:
        var.fun2(800)
    elif var.prop > 65:
        pass
    else:
        var.fun2(1300)

    # 만약 버스의 현재 위치가 내가 내리고 싶은 종착지라면 하차합니다.
    if obj.loc == var.dst:
        var.fun3(obj)

이 코드를 의도가 분명한 코드로 변경해보았다. ↓

함수에 적용하는 클린코드

제 1규칙 - 함수는 최대한 작게 만들어라
함수를 줄이는 첫 번째 규칙은 바로
"추상화 수준을 높여 같은 일을 하는 것들을 추출하자." 입니다.
=> 목적을 명확히 하여 복잡한 것은 숨기고 핵심만 드러내는 것이 추상화의 목적이라 할 수 있습니다.

그렇다면, 추상화의 수준은 과연 무엇일까요?
어느 정도까지 디테일한 부분을 숨겼는가에 대한 정도라고 보시면 될 것 같습니다.
다시 말해서,
추상화의 수준이 높다라는 것은 디테일을 많이 숨겼다는 것이고
추상화의 수준이 낮다라는 것은 디테일이 많이 드러났다고 볼 수 있습니다.

추상화 수준을 높이면 한 번에 전체적인 맥락을 이해하기가 훨씬 수월해집니다! (가독성이 좋다)
즉, 추상화 수준이 낮은 것들 중에 같은 일을 하는 것들을 모아서 함수로 추출해야 한다.


옆에 주석으로 무슨 의미를 갖는지 적고
추상화 시켜서 같은 의미를 갖는 것끼리 모아 놓는다.
그 후에 REFACTOR+Extract method 함수묶기

좋은 웹페이지 즐겨찾기