В качестве примера возьмем код примера опросов в учебнике по django, есть две модели: Polls и Choice.
Это объекты уровня домена или объекты уровня базы данных?
Нужна ли DDD с ORM?
Если да, можете ли вы предоставить хорошая ситуация, когда вам нужно использовать подход DDD с ORM
Например, это модель
Код: Выделить всё
class Polls(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
Код: Выделить всё
class PollService(object):
def __init__(self, poll_repository):
self.poll_respository = poll_respository
def update(self, poll_id):
poll = self.poll_respository.fetch_by_id(poll_id)
poll.question += '?'
self.poll_respository.update(poll)
#assume that the following code works?
class PollRepository():
def __init__(self, db):
self.db = db
def update(self, poll):
try:
self.db.session().add(poll)
self.db.session.commit()
except Exception:
self.db.session.rollback()
Всегда ли используется DDD с DDD-репозиторием? Зачем нам DDD-репозиторий, если у нас есть ORM
Другой подход
Код: Выделить всё
views.py
def update_poll(poll_id):
poll = models.Polls.objects.get(poll_id)
poll.question += '?'
poll.save()
Подробнее здесь: https://stackoverflow.com/questions/420 ... ven-design
Мобильная версия