
Tigran
01.03.2017
13:04:00
я бы конечно сделал два приложения
но допустим, они в джанге как приложения
где вы будете хранить их шаблоны?

parikLS
01.03.2017
13:04:30
не верю я в реюзабл приложения.....

Google

Serge
01.03.2017
13:04:42
Как в идеале. То что ты можешь юзать 2 и более раза без изменений надо выносить в пакеты и отдельный гит. и ставть через pip. остальное для вашего проекта будет уникально.
Но это в идеале.

Tigran
01.03.2017
13:04:55

Serge
01.03.2017
13:06:08
Так что то что вы не можете вынести одельным проектом в гит, но считаете реюзабл. Это самообман) "Авось где-то пригодится еще"

Denis
01.03.2017
13:06:29

Eugene
01.03.2017
13:07:52
У меня сейчас проект, предыдущий разраб вынес шаблоны и статику в /themes/default/ и тут папки static и templates
А модельки и админки все в папке /core/models.py и admin.py
Ну, а в папках с приложением forms views urls etc
Вот мне из этого только Модели и Админка не понравилось, а все остальное очень даже какжется удобным )

Serge
01.03.2017
13:09:23
Ну все складывать в папку core или типа того неправильно. Нужна модульность и разбивка на приложения
Если конечно это не блог из пары страниц

Eugene
01.03.2017
13:09:59
Угу, ме этот момент тоже не понравился : )
Неее, там огромная приложуха .
1к строк почти в models.py ...
Это просто ужасно.

Serge
01.03.2017
13:11:01
Да это печально) Для отого кому надо это поддерживать

Google

Eugene
01.03.2017
13:11:12
Two scops with Django рекомендуют хранить все шаблоны в templates/

Tigran
01.03.2017
13:11:27

Eugene
01.03.2017
13:11:57

Serge
01.03.2017
13:12:07

Tigran
01.03.2017
13:12:18
на прошлых местах работы были классы по 10к строк (один класс, не список)
да и сейчас есть

Serge
01.03.2017
13:12:54
Я про это и сказал выше.

Denis
01.03.2017
13:13:12

Tigran
01.03.2017
13:13:27
в крупных проектах это нормально
сейчас есть модель Car, 9456 строк)

Dmitriy
01.03.2017
13:15:50

amureki
01.03.2017
13:15:59
Я бы не говорил, что это нормально
Насколько тестами всё покрыто?

Denis
01.03.2017
13:16:58

Tigran
01.03.2017
13:17:08
или когда у тебя онлайн аукцион машин - тоже нормально

Serge
01.03.2017
13:17:25
Большие проекты это отдельный разговор)

Tigran
01.03.2017
13:17:28

Google

Tigran
01.03.2017
13:18:00
а сейчас стараемся разбивать на микросервисы

Serge
01.03.2017
13:18:30
В больших проектах хорошо дробить модели, классы через абстракции уже и т.д. иначе поддерживать сложно

amureki
01.03.2017
13:18:32

Tigran
01.03.2017
13:19:08

Serge
01.03.2017
13:20:31
В джанго меня бесит одна вещь, что логика сущностей не отделена от самой сущности. Все пихают в модель кучу кода управления. В больших проектах это совсем очевидно

Tigran
01.03.2017
13:20:59
этому есть решение
мне нравится идеология, которая реализована в Symfony
там есть модель и сервис
модель - описание самой сущности
сервис - логика сущности
ну, это конечно оптимизирует и разделит какую то часть кода

Serge
01.03.2017
13:21:56
Ну ты можешь делать абстракции, наследовать логику в сущность, но все решения костыли, ибо в самой архитектуре уже заложено что сущность и управление сущностиью в одном классе

Tigran
01.03.2017
13:22:21
ну, абстракции - это хорошо
но они никак тебе не помогут, если эта логика используется в одном месте

Serge
01.03.2017
13:22:49
Но не все их делают, я тоже встречался с моделями в 10к+ строчек, где все вперемежку

amureki
01.03.2017
13:23:29
Все можно вынести

Denis
01.03.2017
13:23:44

Tigran
01.03.2017
13:23:51
там много функций

Google

amureki
01.03.2017
13:24:25
Да

Serge
01.03.2017
13:24:52
В сущность пихают и нестандартную валидацию и тригеры (вроде отправки уведомлений) и сами действия вроде что-то посчитать и когда это растет это довольно тяжко для поддержки

Eugene
01.03.2017
13:25:15
А какие вьюхи в таких проектах?: )

Tigran
01.03.2017
13:25:27
валидации у нас отдельно

Serge
01.03.2017
13:25:49
Вьюхи как раз там не шибко большие, в крайнем случае Mixin и тд. А вот с сущностями беда

Tigran
01.03.2017
13:26:16

Serge
01.03.2017
13:26:22

amureki
01.03.2017
13:26:38
там много функций
Можно вынести часть функций, относящихся к одной подтеме в миксин, например. Это не запрещено, даже если миксин будет импортиться один раз

Tigran
01.03.2017
13:28:11

Admin
ERROR: S client not available

Eugene
01.03.2017
13:28:21

Serge
01.03.2017
13:28:46
CBV конечно

Tigran
01.03.2017
13:28:55
шаблоны - twig

Denis
01.03.2017
13:29:46
там много функций
И вынести функции в utils абстрагируясь от типа оперируемых объектов

Tigran
01.03.2017
13:30:30
но в целом, они все равно будут большими
из 10к строчек 100 не получится сделать =)

amureki
01.03.2017
13:31:14
Не всё же сразу

Google

amureki
01.03.2017
13:31:56
В итоге эти части будут абстрагироваться, их будет легче мейнтейнить и тестировать

Denis
01.03.2017
13:31:57
Просто для разных объектов

amureki
01.03.2017
13:32:32
А на лапшу в 10к строк даже смотреть не хочется, радости от работы с таким очень мало

Serge
01.03.2017
13:33:38
К Джанго не относится, но руководство не любит рефакторинг как правило. Результатов не видно и все такое. Сначала убеди)

Tigran
01.03.2017
13:33:56
смотря какое руководство
если они его не любят, они не совсем компетентны

Denis
01.03.2017
13:34:24
Покрытие тестами легче -> меньше багов

Serge
01.03.2017
13:34:53

Tigran
01.03.2017
13:35:13
но это не значит, что они правы)
в крупных компаниях часто создают рабочие группы из нескольких человек, которые занимаются определенной задачей
это может быть unit economic
user experience
acquisition
code refactoring и так далее
если все время писать код и оставлять таким какой он есть, это ведет к материальным ущербам

Serge
01.03.2017
13:40:42
В особо крупных компаниях да, так и есть в большинстве случаев. Но представь какой-то средний интернет бизнес, кода навалом. Разработчиков несколько, пара тестеров, ну 1 архитектор, он же тим лид и штук 50 всяких там маркетологов и прочий нечисти. Там не до рефакторинга, надо отбиваться от нечисти, которая хочет то се)
И таких большинство

Denis
01.03.2017
13:41:30
"Вы же специалист "

Serge
01.03.2017
13:41:56
Ну ему бы за качеством кода следить) А он только отбивается