Replies: 4 comments
-
|
저는 개인적으로 abstract_models.py 라는 모듈내에서 별도로 역시 별도의 모듈에서 관리되고 있지 않기때문입니다. |
Beta Was this translation helpful? Give feedback.
-
|
위치에 대해서는 저도 models.py 에 함께 두는것이 좋다고 생각해요. |
Beta Was this translation helpful? Give feedback.
-
|
이름에 대해서는 Base, Abstract 의 사용에 대한 규칙 또는 패턴을 만들지 않는것이 좋다고 생각합니다. 하지만 보다 좋은 방향은 sub class 의 이름을 보다 명확하게 작성하는것 입니다. ex) BasePayment 를 상속받았으니 그냥 Payment 라고 이름 짓자 중첩된 구조에 대해서도 중첩(여러 단계 두기)을 해야만 하는 이유가 있을겁니다. 그렇다면 그 이유를 설명할 수 있는 적절한 이름을 정할 수 있겠습니다. 예전에 이 논의를 한번 한적이 있습니다. 이 부분이 논의의 결과로 남아 있는 대표적인 예입니다. 과 같은식으로 유사한 역할을 하는 class 들의 이름을 모두 다르게 할 필요가 있는가? 에 대한 논의 였던것으로 기억합니다. 로 구분해서 쓰자로 결론 내렸던것 같습니다. 유사한 일을 하는 각 Class의 이름을 동일하게 맞춰서 접근을 쉽게 만드는것도 가치가 있는 일이지만 지금은 프로젝트 내의 Class 이름을 유니크하게 (네. 의견이 바뀌었어요.) |
Beta Was this translation helpful? Give feedback.
-
|
추상모델의 위치에 관해서 각각의 추상모델이 커버하는 계층에 존재하는 것도 좋을 것 같습니다. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
1. 추상 모델의 이름에 Abstract, Base를 붙이지 않는 것을 제안합니다.
추상 모델명에 prefix를 붙이는 컨벤션이 Django에서 일반적으로 사용되지 않는 것으로 보입니다. (예: TimeStampedModel, UUIDModel 등)
기본적으로 추상 모델은 충분히 일반화된 이름을 붙이고, 이를 상속하는 구체 모델에서는 구체적인 이름을 붙여 관리하는 것이 어떨까요?
단, prefix를 사용하지 않으면 네이밍이 어려워 질 수도 있습니다.
중첩된 추상화의 경우에는 prefix를 붙이는 것을 고려해 볼 수 있습니다.
아래는
apps.payments.abstract_models의 사례입니다.2. 추상 모델 모듈의 위치는 어디가 적절할까요?
추상모델의 모듈은 어떤 곳에서 관리되는 것이 좋을지, 의견을 주시면 좋겠습니다.
대체로 아래와 같이 app level에서 abstract_models.py 모듈이 정의되어 있습니다.
app이 세분화되고 모델이 증가함에 따라 abstract_models 단일 모듈의 복잡도가 높아질 가능성이 있습니다.
아래와 같이 의도가 동일한 영역 내에서 abstract_models를 분리해 볼 수 있습니다.
Beta Was this translation helpful? Give feedback.
All reactions