본문 바로가기

# Development/Methodologies

[클린 코드] 주석 & 포맷팅

클린 코드: 주석 & 포맷팅

주석을 사용 할 때

1. 법적인 정보를 담을 때

# Copyright (C) 2021 ...

2. 의도를 명확하게 설명할 때

# throughput을 늘리기 위해 스레드를 10개까지 늘린다.
for idx in range(10):
    thread = threading.Thread(target=...)
    thread.start()
...

3. 중요성을 강조할 때

# 최종 결제를 하기 전에 진행해야 하는 validation 함수 
def validate_buyable(wallet, price, ...):
    ...

4. 결과를 경고할 때

# WARNING: API 서버가 항상 양호한지 알 수 없음.

관용적으로 사용되는 키워드

  • TODO : 당장은 아니지만 다음에 해야 할 때
  • FIXME : 치명적인 에러를 발생하는 코드는 아니지만 수정해야 할 때
  • XXX : 더 생각해볼 필요가 있을 때

포맷팅

1. Vertical Formatting

한 파일에 코드를 다 넣지 말고, 개념에 맞게 파일을 나눠서 사용

# as-is 
# store.py에 전부 있음
class FruitsStore:
    ...

class ComputerStore:
    ...

# to-be
# fruit_store.py
class FruitsStore:
    ...

# computer_store.py
class ComputerStore:
    ...

다른 개념의 코드는 Spacing으로 분리 & 비슷한 개념의 코드는 붙여서 사용

def test_user_buy_product():
    user = User()
    product = Product()

    product.set_sold_out(True)
    user.get(product)

    assert result == "success"

2. Horizontal Formatting

한 줄에 코드를 다 넣기보단 변수 등을 활용해서 가독성 높이기

#as-is
product_list.extend([Product("모니터"), Product("키보드"), Product("노트북")])

#to-be
items = [Product("모니터"), Product("키보드"), Product("노트북")]
product_list.extend(items)

네이밍 잘해서 길이 줄이기

user_with_name_and_email = User("그랩", "grab@world.com")

#to-be
user = User("그랩", "grab@world.com")

 

<참고>

  1. https://yansfil.github.io/awesome-class-materials/
  2. https://dojang.io/mod/page/view.php?id=2389

'# Development > Methodologies' 카테고리의 다른 글

[클린 코드] 에러 핸들링  (0) 2023.01.31
[클린 코드] 클래스  (0) 2023.01.31
[클린 코드] 함수  (0) 2023.01.31
[클린 코드] 네이밍  (0) 2023.01.11