именно SRP.
1) У меня есть сигнал который срабатывает когда пользователь оценивает курс.
2) Сигнал должен обновить поле average_rating(средняя оценка) в модели Course.
3) Для этого я создал функцию get_course_average_rating которая вычисляет среднее значение и возвращает и дальнейшая логика происходит в сигнале.
Так вот эта функция связана с классом Course, если я добавлю ее в класс меня смущает что она должна получать объект класса Course а не общается с self.
Где бы вы создали эту функцию?
У меня 3 варианта:
1) в signals.py
2) в utils.py
3) В модели с которой она связана задекорировав с @staticmethod
А если оценок много? Может среднее инкрементально вычислять? Правда тогда race condition можно словить
Что значит инкрементально?
utils лучшее место для всей бизнес логики
На stackoverflow склонялись к тому что бизнес логику нужно хранить в файле business.py, а в utils.py то о чем само название говорит - всякие утилиты которые применяются в различных частях проекта.
а лучше сразу code.py
современные веб сервисы дружат с кешированием
и не дают
Что И?
Не везёт
Ну вот есть у тебя кеширование настроенное, тобой, на уровне веб сервиса, есть также кеш на уровне бд, есть также кеш на уровне аппки. Ну и?
А вообще тебя жена отругает ата-та
у нас с веб-сервисами свободные отношения
various_shit_no_one_has_idea_where_to_place.py
Обсуждают сегодня