2019년 2월 7일 목요일

#4 Django App 디자인의 기본


장고 앱 디자인의 기본



💬 용어정리


        장고 프로젝트 : 장고 웹 프레임워크를 기반으로 한 웹 애플리케이션

        장고 앱 : 프로젝트의 한 기능을 표현하기 위해 디자인된 작은 라이브러리

                    프로젝트는 다수의 앱으로 구성

                    때때로 외부 장고 패키지를 지칭하기도 한다

         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

댓글 없음:

댓글 쓰기

가장 많이 본 글