장고 앱 디자인의 기본
💬 용어정리
장고 프로젝트 : 장고 웹 프레임워크를 기반으로 한 웹 애플리케이션
장고 앱 : 프로젝트의 한 기능을 표현하기 위해 디자인된 작은 라이브러리
프로젝트는 다수의 앱으로 구성
때때로 외부 장고 패키지를 지칭하기도 한다
INSTALLED_APPS : 프로젝트에서 이용하려고 INSTALLED_APPS 세팅에 설정한 장고앱
서드파티 장고패키지 : 파이썬 패키지 도구에 의해 패키지화된,
재사용 가능한 플러그인 형태로 이용가능한 장고앱
"좋은 장고앱을 정의하고 개발하는 것은 더글라스 맥얼로이의 유닉스 철학을 따르는 것
'한번에 한가지 일을 하고 그 한가지일을 매우 충실히 하는 프로그램' " -제임스베넷
💬 앱 생성의 권장사항
✔ 한가지 기능에 특화된 앱을 만들어야 한다
✔ 앱의 확장이 아닌 앱의 분리를 통해서 복잡하게 로직이 얽히는 것을 막는게 중요하다
크기는 최대한 작게 하는 것이 좋다
✔ 앱의 이름은 가능한한 한단어로 된 명료한 이름을 사용하자
✔ 좀더 일반적인 규칙을들자면 앱이름은 앱의 중심이 되는 모델의 복수형태가 되어야하는데 다양한 예외가 존재한다
(앱의 성격이 복수의 의미를 나타내는 것이 아니라면 그냥 단수를 쓰도록 하자)
✔ 더 중요한것은 사이트의 URL과 어떤방식으로 직관적으로 매칭시킬것인지를 고려하는게 중요하다
✔ PEP8규약에 맞게 임포트 될수있는 이름을 이용하도록 하자
-, . , 공백 등의 특수문자를 제외하고 단어 사이는 _로 연결하여 나타내도록 하자
✔ 앱 디자인을 너무 고민하지 말자 항상 유지보수가 동반되는 일이다
❔ 앱의 공통적인 모듈들의 이름규칙을 따르지 않으면
비표준화에 따른 여러 문제에 부딪힐수 있다.
💬 비공통 모듈(앱레벨에 적용)
behaviours.py : 모델 믹스인 위치에 대한 옵션
constants.py : 앱 레벨에서 이용되는 세팅을 저장하는 장소의 이름
decorators.py : 데코레이터가 존재하는곳
db/ : 여러 프로젝트에서 이용되는 커스텀 모델이나 컴포넌트
field.py : 폼 필드 이용에 쓰인다.
factories.py : 테스트 데이터 펙터리 파일
helpers.py : 헬퍼함수, 뷰와 모델을 가볍게 하기위해 뷰와 모델에서 추출한 코드를 저장utils.py 와 비슷한 기능을 한다
manager.py : model.py가 너무 커질경우 일반적인 해결책으로 커스텀 모델매니저가 이동되는곳
signales.py : 커스텀 시그널을 제공하는 것에 대안으로 커스텀 시그널을 넣기에 유용한 공간
utils.py : helpers.py와 같은 기능
viewmixins.py : 뷰 믹스인을 이 모듈로 이전함으로써 뷰 모듈과 패키지를 더 가볍게
출처 : two scoops of django
댓글 없음:
댓글 쓰기