답변:
James Bennett에는 Django에서 재사용 가능한 앱을 구성하는 방법에 대한 멋진 슬라이드 세트가 있습니다 .
저는 Django 애플리케이션을 "애플리케이션"이라기보다는 재사용 가능한 모듈 또는 구성 요소로 생각하는 것을 선호합니다.
이렇게하면 특정 기능을 서로 캡슐화하고 분리하여 특정 "앱"을 커뮤니티 전체와 공유하기로 결정한 경우 재사용 가능성과 유지 관리 가능성이 향상됩니다.
내 일반적인 접근 방식은 특정 기능 또는 기능 세트를 공개적으로 릴리스하려는 것처럼 "앱"에 버킷으로 묶는 것입니다. 여기서 어려운 부분은 각 버킷의 크기를 파악하는 것입니다.
내가 사용하는 좋은 비결은 내 앱이 공개적으로 출시되면 어떻게 사용 될지 상상하는 것입니다. 이것은 종종 버킷을 축소하고 "목적"을 더 명확하게 정의하도록 권장합니다.
다음은 2008 년 9 월 6 일에 업데이트 된 프레젠테이션입니다.
DjangoCon 2008 : 재사용 가능한 앱 @ 7 : 53
슬라이드에서 가져온
자체 애플리케이션이어야합니까?
- 앱의 초점과 완전히 관련이 없습니까?
- 내가하고있는 다른 일과 직각입니까?
- 다른 사이트에서도 유사한 기능이 필요합니까?
그들 중 "예"가 있다면? 그런 다음 별도의 응용 프로그램으로 나누는 것이 가장 좋습니다.
웹에서 찾은이 질문에 대한 두 가지 최고의 답변은 다음과 같습니다.
두 소스 모두 다음 상황에서 별도의 앱을 만들어야한다는 데 동의합니다.
'앱'은 여러 가지가 될 수 있으며 모든 것이 실제로 맛볼 수 있습니다. 예를 들어 블로그를 만들고 있다고 가정 해 보겠습니다. 귀하의 앱은 전체 블로그가 될 수도 있고, '관리자'앱, 모든 공개보기를위한 '사이트'앱, 'rss'앱, '서비스'앱이있어 개발자가 자신의 블로그에서 블로그와 인터페이스 할 수 있습니다. 자신의 방식 등
개인적으로 블로그 자체를 앱으로 만들고 그 안에있는 기능을 분리합니다. 그런 다음 블로그를 다른 웹 사이트에서 쉽게 재사용 할 수 있습니다.
Django의 좋은 점은 디렉토리 트리의 모든 수준에있는 모든 models.py 파일을 Django 모델을 포함하는 파일로 인식한다는 것입니다. 따라서 기능을 '앱'자체 내에서 더 작은 '하위 앱'으로 분리한다고해서 더 어려워지는 것은 아닙니다.