Skip to content

코드 컨벤션

chea-young edited this page Jul 31, 2022 · 3 revisions

📌 규칙

  • PHP8 준수하되 Django 공식 문서의 권고사항을 준수하는 규칙사용

파이썬 스타일

  • 줄 당 글자 수는 최대 119개 사용하기

    • PHP8은 한 줄 당 79글자를 넘지 말라고 하지만 Django는 119 글자를 최대 글자로 선정하기 때문
  • 들여쓰기 4칸 공백 사용하기

    • 예시
raise AttributeError(
    "Here is a multiline error message "
    "shortened for clarity."
)
  • '%-formatting', 'f-strings', 'str.format()' 문자열 포맷팅을 상황에 맞게 적절히 활용하기

  • 스네이크 케이스 사용하기

  • 테스트 dostrings에는 각 테스트에 기대하는 동작 작성하기

def test_foo():
    """
    A test docstring looks like this (#123456).
    """

임포트 스타일

  • 임포트를 할 때 각 항목을 그룹짓고 순서 베열하기

  • 임포트 구문 사이에는 한줄, 마지막 임포트 구문과 함수 또는 클래스 사이는 두 줄 띄우기

템플릿 스타일

  • 중괄호와 태그 내용 사이에는 한 칸 띄우기
{{ foo }}

모델 스타일

  • class Meta는 필드 정의 뒤에 쓰고 한 줄 띄우기
class Person(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=40)

    class Meta:
        verbose_name_plural = 'people'
  • 모델 내부 클래스와 표준 메소드는 다음과 같은 순서로 작성하기
1. All database fields
2. Custom manager attributes
3. class Meta
4. def __str__()
5. def save()
6. def get_absolute_url()
7. Any custom methods
  • choices 필드를 정의하다면 모두 대문자로 이루어진 튜플로 정의하기
class MyModel(models.Model):
    DIRECTION_UP = 'U'
    DIRECTION_DOWN = 'D'
    DIRECTION_CHOICES = [
        (DIRECTION_UP, 'Up'),
        (DIRECTION_DOWN, 'Down'),
    ]
Clone this wiki locally