Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- reCAPTCHA V2
- 선택 정렬
- request.path
- Proxy_pass
- check ajax
- is_ajax() not working
- 포맷팅
- 알고리즘
- HTTP
- 트리란
- Djnago CSRF
- 복수 외래키
- Django Ajax
- Trre heap
- CleanCode
- 글자 수
- django 시작하기
- 클린 코드
- django
- request.GET
- 정렬
- queryset filter
- render html
- 버블 정렬
- queryset
- 효울적
- 클린코드
- 자료구조
- 클린코드-함수
- nginx
Archives
- Today
- Total
Yang 코딩 공부
클린 코드 - 주석, 포맷팅 본문
본 내용은 인프런 강의
`모든 개발자의 실무를 위한 올인원 기본기 클래스`
를 보고 정리한 내용입니다.
주석
모든 내용을 주석으로 넣게되면 코드가 지저분할 수 있다.
대부분은 좋은 네이밍으로 충분히 해결이 가능하기에 네이밍에 조금 더 신경을 써보자.
네이밍으로 표현할 수 없는 영역을 주석으로 표현하자.
- 법적인 정보를 담을 때
# 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 |