2차 프로젝트 코드리뷰 정리

개발자 강세영·2022년 6월 16일
0

category__name__in 보다 category_id로 필터링하는게 더 좋다.
size__name__in 보다 size__id__in이 좋다.

  • 이유는 id는 기본 설정으로 인덱싱하기 때문에 속도가 빠르다

  • 이렇게 하기 위해서는 프론트엔드에서 필터링 값을 하드코딩해서 처리하거나, 필터나 카테고리 데이터(id값)를 조회하는 API를 따로 만들어서 처리할 수 있다.

  • prefetch_related는 쿼리셋 코드의 마지막 부분에 넣어줄것, 동작에 차이는 없지만 컨벤션이다

  • annotate가 subquery 형태로 적용되는 경우가 있다

  • .distinct()는 필요없으면 빼도 된다.

장고 실무 프로젝트 코드를 보면 보통 models class에 메서드를 많이 추가해서 활용한다.

  • @classmethod @staticmethod @property 등이 있다.
  • 데이터 자체를 다루는 함수를 models에서 관리하는게 장고에서 추천하는 방식이다. 가격 정보를 출력하는 함수같은것도 models class에 메서드로 넣어서 관리하면 좋다.
  • 열거형 데이터(Enum)는 models 파일 에서 관리할것, views에선 임포트해서 쓰면 된다.

좋은 코드란?

  • 모듈화가 잘 된 코드이다 모듈화를 위해서 클래스와 함수를 활용할 수 있다
  • 기본값으로 활용하는 데이터가 많은 경우 클래스가 좋고, 데이터가 필요없거나 많지 않은 경우 함수가 좋다.

_access_token 같이 앞에 언더바를 한개 넣으면 내부적으로 사용하라는 의미의 변수가 된다.
앞에 언더바가 한개 붙은 변수나 함수 등은 from module import *로 임포트되지 않는다.
이런 것들은 from module import _access_token 같이 확실하게 임포트해줘야 한다.

파이썬에서 if else를 쓰듯이 SQL에선 CASE WHEN이 있고 장고 ORM에서도 쓸 수 있다.

테스트 코드는 success, fail 까지는 만들어 주는게 좋다.

0개의 댓글