Yang 코딩 공부

클린 코드 - 주석, 포맷팅 본문

Coding Study/Clean Code

클린 코드 - 주석, 포맷팅

코딩하는 Yang 2022. 12. 30. 09:31

본 내용은 인프런 강의 

`모든 개발자의 실무를 위한 올인원 기본기 클래스`

를 보고 정리한 내용입니다.

 

주석

모든 내용을 주석으로 넣게되면 코드가 지저분할 수 있다.
대부분은 좋은 네이밍으로 충분히 해결이 가능하기에 네이밍에 조금 더 신경을 써보자.

네이밍으로 표현할 수 없는 영역을 주석으로 표현하자.

  • 법적인 정보를 담을 때
  # Copyright (C) 2021 ...
  • 의도를 명확하게 설명할 때
    • 의도가 애매한 경우 작성해주도록 하자
  # throughout을 늘리기 위해 스레드를 10개까지 늘린다.
  for idx in range(10);
      thread = threading.Thread(target=...)
      thread.start()
  • 중요성을 강조할 때
# 최종 걸제를 하기 전에 진행해야 하는 validation 함수
def valdate_buyalbe(wallet, price, ...):
   ...
  • 결과를 경고할 때
    • 아두이노와 라즈베리파이 통신할 때 통신이 항상 양호하게 되지 않을 경우가 있었다 이때 작성했으면 좋았겠다고 느낀다
# WARNING : API 서버가 항상 양호한지 알 수 없음.
def connect_api_server():
...

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

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

    # TODO@username: 객체의 책임 더 분리하기 ( 누구에게로 확실히 지정하는편이 Good )
    class GrabStore:
    ...
    # FIXME: 반복문의 depth를 줄이기
    # xxx : 시간 소요가 큼 해결 알고리즘 구상
    def sell_food(self):
        for food in food_list:
            for discount in discount_list:
                ...

 

포맷팅

Vertical Formatting

  • 한 파일에 코드를 다 넣지 않고, 개념에 맞게 파일을 나눠서 사용하는 포맷팅 기법
# as-is 
# store.py에 전부 작성되어 있다고 가정 
class PonStore: 
    ...

class ComStore:  
    ...

# to-be

# pon_store.py
class PonStore:  
    ...

# com_store.py
class ComStore:  
    ...
  • 다른 개념의 코드는 Spacing으로 분리하기
  • 비슷한 개념의 코드는 붙여서 사용하기
def test_user_buy_product():  
    user = User()  
    product = Product()  
    # Spacing  
    product.set_told_out(True)  
    user.get(product)  
    # Spacing  
    assert result == "success"

Horizontal Formatting

  • 한 줄에 코드를 다 넣기보단 변수 등을 활용해서 가독성 높이기
#as-is  
product_list.extend([Product("모니터"), Product("키보드"), Product("노트북")])


#to-be
items = [Product("모니터"), Product("키보드"), Product("노트북")]
product_list.extend(items)
  • 네이밍 신경써서 길이 줄이기
#as-is
#굳이 표현해주지 않아도 유추할 수 있는정도는 제거하기
user_with_name_and_email = User("그랩", "grab@world.com")

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

 

'Coding Study > Clean Code' 카테고리의 다른 글

클린 코드 - 함수  (0) 2022.12.30
클린 코드 - 네이밍  (0) 2022.09.19