170 похожих чатов

Скажите, пожалуйста, для предотвращения кругового импорта подойдет ли последний способ

из предложенных в этой ветке?

https://stackoverflow.com/questions/33691411/circular-imports-hell

А именно вот такой:

_MODULEA = None

def util1():
if _MODULEA is None:
from mymodule import modulea as _MODULEA

obj = _MODULEA.ClassYouWant
return obj

По виду урод уродом, конечно. Но должен дело свое делать. Что скажете?

15 ответов

15 просмотров

https://docs.djangoproject.com/en/3.0/ref/applications/#django.apps.apps.get_model посмотри

Nonverbis- Автор вопроса

Не моделями едиными. нужны еще утилиты, константы. Да мало ли что нужно.

если часто такие проблемы значит проблема в архитектуре, почитай про грасп, свзяанность, зацепленность и тд.

Nonverbis- Автор вопроса

Да, у меня не получается сделать аккуратную архитектуру. Я это признаю. Но из того, что я сумел прочитать на форумах, невозможно написать на питоне программу, полностью лишенную проблемы кольцевого импорта.

Nonverbis- Автор вопроса

Про связанность. Я бы хотел использовать что-то вроде dependency injection. Но я не могу это как-то все организовать в проекте на django.

возможно, просто ребята с форумов плохо стараются)

Nonverbis- Автор вопроса

А нельзя ли мне посоветовать конкретные ресурсы к прочтению? Вот по Dependency injection в джанге? Про связанность я хотя бы слышал. Хотя, у меня не получается разбить тесную связанность. А про грасп и зацепленность я вообще впервые слышу. И материал найти не могу.

https://ru.wikipedia.org/wiki/GRASP максимально простым языком: https://www.youtube.com/watch?v=pswA3Prf_YQ

Nonverbis- Автор вопроса

спасибо. в общем, надо думать о DI.

Nonverbis- Автор вопроса

Вы используете DI в проектах на джанге? Если да, то как (какой-то di-фреймворк или что-то самописное)?

не использую

Nonverbis- Автор вопроса

а как же тогда побороть тесную связанность?

https://softwareengineering.stackexchange.com/questions/306483/how-to-solve-circular-dependency вот тут есть информация про борьбу с циклическими зависимостями.

продумывать архитектуру

Nonverbis- Автор вопроса

Так это джависты. Мне джава нравится. Но все-таки я на ней не работаю. Лучше бы как-то поближе к питону.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта