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.
-
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