장고를 개발할때 권장사항
☝ 단순명료하게 하라(Keep It Simple, Stupid == KISS )
단 너무 단순화된 구현을 하지는 말자
☝ 모델은 크게, 유틸리티는 모듈로, 뷰는 가볍게, 템플릿은 가볍게
코드를 어느부분에 넣어야 할지 결정할때
Fat Models, Utility Modules, Thin Views , Stupid Template를 생각하고
❕ 뷰와 템플릿을 제외한 다른 부분에 더 많은 로직을 넣어주자
간결한코드, 재사용, 문서화의 장점을 가져갈수 있을것이다.
템플릿 태그와 필터는 가능한 최소의 로직을 포함하고 있어야 한다
☝ 읽기 쉬운 코드를 작성하자
프로젝트의 관리 및 코드의 가독성 측면을 생각해서라도 다음을 권장한다
❕ 축약적이거나 함축적인 변수명은 피한다
함수 인자의 이름들은 꼭 써준다
클래스와 메서드를 문서화 한다.
코드에 주석은 꼭 달도록 한다.
재사용 가능한 함수 또는 메서드 안에서 반복되는 코드들은 리팩터링
함수와 메서드는 가능한 작은 크기를 유지(스크롤 없이 읽을 수 있는 길이)
❕ 1줄에는 최대 79글자만 적도록 하자
코드의 이해도와 가독성을 떨어트리지 않는 수준이다.
(단 변수나 함수 등 축약 네이밍을 하지 않는것이 79글자 제약보다 중요하다)
☝ PEP 8을 따르는게 좋다(새로운 프로젝트부터)
❕ 들여쓰기는 스페이스 네칸을 이용한다
최상위 함수와 클래스 선언 사이는 두줄을 띄운다
클래스 안에서 메서드를 나누기 위해 한줄을 띄운다
이러한 가이드를 확인해주는 코드 편집기용 플러그인을 이용하자
(flake8은 코딩 스타일과 품질, 논리적 에러를 점검하는데 도움이 되는 도구)
장고의 코딩스타일
path 패턴의 name에는 "-" 이 아닌 "_" 를 이용해주자(파이썬 다운 코딩)템플릿 블록의 이름도 "_"를 이용해주자
❕ 통합개발환경이나 텍스트 편집기에 종속되는 스타일의 코딩은 지양하자
항상 다른 개발자가 내 코드를 다른 도구로 볼수도 있다는 생각으로 작성하도록 하자
☝ Import에 대해
Import 의 순서는
표준 라이브러리 임포트(from math import sqrt)
코어 장고 임포트 ( from django.db import models)
장고와 무관한 외부 앱 임포트 ( from django_extensions.db.models ...)
프로젝트 앱 ( appname.models import class)
❕ 명시적 성격의 상대 임포트 이용하기
하드코딩의 문제 및 이식성, 재사용 면에서 명시적 상대 임포트를 이용해주자
from core.views import FoodMixin / 절대임포트 / 외부에서 임포트해서 현재앱에서이용
from .models import WafleCone / 명시적 상대 / 다른 모듈에서 임포트해서 현재앱에서 이용
from models import WafleCone / 암묵적 상대 / 명시적상대와 같지만 좋지 않다.
❕ Import * 는 하지말자
*를 이용하여 import 해주게 되면 추가로딩이 되거나 덮어쓰게 되는 경우가 생기는데
settings requirements 파일의 예외경우를 제외하고는 쓰지 않도록 하자
💡자바스크립트,HTML,CSS 스타일 가이드
JS : JSCS linter를 이용하면 코드스타일을 점검할수 있다.
CSS : CSS comb는 코딩 스타일 포맷 도구
출처 : two scoops of django
댓글 없음:
댓글 쓰기