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
- 보행자 천국
- jdbc
- 프로그래머스
- Spring Boot
- 크레인 인형뽑기 게임
- 트라이 #trie #알고리즘
- 트라이
- 가사 검색
- 튜플
- 호텔 방 배정
- 카카오 인턴
- trie
- bulk update
- Open API
- 불량 사용자
- 티스토리
- Tistory
- 티스토리 open api
- pycon
- CleanCode
- 징검다리 건너기
- 알고리즘
- Python
Archives
- Today
- Total
택시짱의 개발 노트
Two Scoops of Django - 1장 코딩 스타일 본문
1. 코딩 스타일
읽기 쉬운 코드를 만들기 위해서는
- 축약적이거나 함축적인 변수명은 피한다.
- 함수 인자의 이름들은 꼭 써준다.
- 클래스와 메서드를 문서화한다.
- 코드에 주석은 꼭 달도록 한다.
- 재사용 가능한 함수 또는 메서드 안에서 반복되는 코드들은 리팩터링을 해둔다.
- 함수와 메서드는 가능한 작은 크기를 유지한다. 어림잡아 스크롤 없이 읽을 수 있는 길이가 적합하다.
임포트 (import)
- PEP 8은 임포트(import)를 할 때 다음과 같은 순서를 제안
- 표준 라이브버리 임포트
- 연관 외부 라이브러리 임포트
- 로컬 애플리케이션 또는 라이브러리에 한정된 임포트
- 장고 프로젝트 안에서는 아래와 같은 순서로 임포트 문들을 구성할 수 있다.
# 표준 라이브러리 임포트
from math import sqrt
from os.path import abspath
# 코어 장고 임포트
from django.db import models
from django.utils.translation import ugettext_lazy as _
# 서드 파티 앱 임포트
from django_extensions.db.models import TimeStampModel
# 프로젝트 앱 임포트 from sqlits.models import BananaSqlit
- 장고 프로젝트에서 임포트 순서는 다음과 같다.
- 표준 라이브러리 임포트
- 코어 장고 임포트
- 장고와 무관한 외부 앱 임포트
- 프로젝트 앱 임포트
명시적 성격의 상대 임포트 이용
- 파이썬에서는 명시적 성격의 상태 임포트(explict relative import)를 통해 모듈의 패키지를 하드 코딩하거나 구조적으로 종속된 모듈을 어렵게 분리해야 하는 경우들을 피해 갈 수 있다.
- 좋은 예제
# cones/views.py
from django.views.generic import CreateView
# 'cones' 패키지 상대 임포트
from .models import WaffleCone
from .forms import WaffleConeForm
# 'core' 패키지 절대 임포트
form core.views ipmort FoodMixin
class WffleConeCreateView(FoodMixin, CreateView):
model = WaffleCone
form_class = WaffleConeForm
- 전역/외부 임포트에 대해 로컬/내부 임포트가 지니는 또 하나의 장점은 파이썬 패키지를 하나의 코드 유닛화할 수 있다는 것이다.
import * 는 피하자
- 다른 파이썬 모듈의 이름공간들이 현재 우리가 작업하는 모듈의 이름공간에 추가로 로딩되거나 기존 것 위에 덮여 로딩되는 일을 막기 위함
- 나쁜 예제
from django.forms ipmort * from django.db.models import * # 이름 충돌 from django.forms ipmort CharField from django.db.models import CharField
- 좋은 예제
from django import forms from django.db import models
2. 장고 코딩 스타일
URL 패턴 이름 에는 대시 (-)
대신 밑줄 (_)
을 이용한다.
- 나쁜 예제
patterns = [
path(route='add/',
view_views.add_topping,
name='add-topping'),
]
- 좋은 예제
patterns = [
path(route='add/',
view=views.add_topping,
name='add_topping'),
]
반응형
'Django(장고)' 카테고리의 다른 글
4장. 장고 앱 디자인의 기본 (0) | 2021.09.02 |
---|---|
3장. 어떻게 장고 프로젝트를 구성할 것인가 (0) | 2021.09.02 |
Django DRF response format 만들기 (JSONRenderer 이용) (0) | 2021.02.13 |
drf serializer에서 instance 유무의 차이 (0) | 2021.02.04 |
ORM (Object-Relational Mapping)이란 (0) | 2020.11.16 |
Comments