-
Notifications
You must be signed in to change notification settings - Fork 2
Coding Convention
chanbyeongee edited this page Sep 14, 2022
·
12 revisions
- 탭을 사용하거나 탭과 스페이스를 섞어서 사용하지 마세요.
- 코드를 작성할 때 4 칸 들여쓰기를 하세요.
- 여러 원소를 나열할 때 후행 쉼표는 ], ), } 와 같이 컨테이너를 닫는 토큰이 마지막 원소와 같은 줄에 있지 않을 때만 권장됩니다.
- 함수나 변수명, 파일명, 패키지명은 기본적으로 lower_snake_case 를 사용합니다.
- 예외적으로 클래스명은 CapCamel 을 사용하며, 클래스/글로벌 상수는 CAP_WITH_UNDER을 사용합니다. (아래 표 참조)
- imports는 개별적인 라인에 두어야 합니다. typing imports에 대한 예외가 있습니다..
// 올바른 예
import os
import sys
from typing import Mapping, Sequence
// 부적절한 예
import os, sys
-
최대 줄 길이는 80자 입니다.
- 예외
- 긴 import 구문
- URLs, 경로이름, 또는 주석의 긴 플래그
- 경로이름이나 URLs와 같은 공백을 포함하지 않는 긴 모듈수준 문자상수는 여러 줄에 나누어 기록하기 불편할 경우
- Pylint 비활성화 주석문 (e.g.: # pylint: disable=invalid-name)
- 예외
-
3개 이상의 컨텍스트 매니저를 요구하는 with 구문을 제외하고 백슬래쉬() 를 이용한 문장연장을 사용하지 마세요.
-
필요하다면, 구문 양쪽에 추가로 괄호를 더할 수 있습니다.
//올바른 예
foo_bar(self, width, height, color='black', design=None, x='foo',
emphasis=None, highlight=0)
if (width == 0 and height == 0 and
color == 'red' and emphasis == 'strong'):
- 만약 리터럴 문자열을 한 줄에 표현하기 어렵다면 아래와 같이 괄호를 이용하여 묵시적 라인결합을 사용하세요.
x = ('This will build a very long long '
'long long long long long long string')
- 주석의 경우 긴 URLs 들은 한줄에 표현하세요.
//올바른 예
# See details at
# http://www.example.com/us/developer/documentation/api/content/v2.0/csv_file_name_extension_full_specification.html
//부적절한 예
# See details at
# http://www.example.com/us/developer/documentation/api/content/\
# v2.0/csv_file_name_extension_full_specification.html
- DB 모델은 SQLAlchemy의 db.model을 상속합니다.
- 모델명은 CamelModel로 작성되며, 고유 이름 뒤에 Model 붙여야 합니다.
- Column명은 기본적으로 lower_snake를 사용하며, id를 PK로 가집니다.
- 관계형 DB를 나타낼경우 db.relationship를 와 FK로 나타냅니다.
- 리소스는 클래스로 작성되며 Model명의 고유이름을 포함하여 작성합니다.
- endpoint별로 클래스를 작성하며, 해당 리소스는 다른 리소스를 의존하지 않습니다.