Вопрос - хорошая ли практика использовать с React'ом Pytnon'овский фреймворк?
то есть разработка на микрофреймворках - это обязательно велосипедостроение разве?или поиски чужого велосипеда
любой ормки в виде сторонней библиотеки
Возможность разрабатывать быстро разве что.собственно на данной фразе можно закончить
И то порог вхождения для новичка в любой микрофреймворк явно ниже, чем в джангу.для практики - ок. Написал 10 проектов в /dev/null и получил опыт
Да и так ли уж в Django не будет велосипедов?будут. Но они будут в виде пристройки, а не квадратных колес
Тот же насущный вопрос "где в Django хранить бизнес-логику" уже приводит к спорам и разногласиямFat models
А почему так увереннопотому как так проще.
Как раз лучше использовать готовое решение для рендеринга, чем пилить свою балалайку для аналогичной задачи.
хорошую архитектуру вижу как-то так: entity - repository - service - controllerKISS
"Упростит ли ето что-то?" - даст возможность абстрагировать бизнес-логику от конкретного фреймворка, его ОРМок и т.п.а зачем?
точнее, где лежит граница между нормальной архитектурой и излишней сложностью?вот тут
entity - repository - service - controllerКогда начинают добавлять паттерны поверх MVT
"а зачем?" - чтобы проект можно было поддерживать, развивать, покрывать тестами и чтобы из глаз не текла кровь))Я не вижу, как абстрагирование от орм (и неизбежный оверкодинг) упростят юнит-тестирование и функциональное тестирование
Когда начинают добавлять паттерны поверх MVT
А зачем нам отвязываться от ОРМ, если неизбежно произойдет построение параллельного апи к ОРМ, которое будет дублировать ОРМ
бизнес-логику, которая может взаимодействовать с другими моделями, выполнять обращения к сторонним сервисам, работать с кешем и т.п. - это странноСначала в Manager
Потому что в таком случае "простота" сомнительнапросто нет
Тем более, что в случае с тестированием сервисов мокать придется явно меньшенет же. Те части сервисов, которые сильно завязаны на орм просто тестируем, как модель вместе с данными
Я так понял, речь о репозиториях?
"Упростит ли ето что-то?" - даст возможность абстрагировать бизнес-логику от конкретного фреймворка, его ОРМок и т.п.
Сегодня у тебя mysql используется для хранения списка товаров интернет магаза, а завтра приперло redis для этих же целей использовать (ну, чисто для примера)нет. Просто нет
Завтра скажутнет. Всегда постгрес. В запущенных случаях оракл
Я скорее скажу, что из-за такого оверинжиниринга и замедление написания кода проект прикроют сегодня, потому как вчера не было написано и строчки кода для решения бизнесс-задач
Потом в отдельный файл с функциями
мускул не используется никогда. Редис не используется для перманентного хранения чего-либо
Следуя такой логике, можно и тесты не писатьнет
Использование шаблонов проектирования не является никаким образом оверинжинирингом и не является какой-либо преждевременной оптимизацией или чем-то в том духев том виде, что вы описали - является и оверинжинирингом и преждевременной оптимизацией
Нужно, чтобы была возможность легко при необходимости переключиться на другой источник данных
Следуя Вашей логике, введение уровней абстракции придумали для дураковмоя логика - если уровни абстракции усложняют мою работу - они не нужны
В данном случае использование слоя сервисов решает вполне конкретную задачу: избавиться от толстых моделей.Еще раз, в приведенном примере толстая модель заменяется на толстое вью
Тот же уровень абстракции, о котором я и говорю. Что файл с функциями, что сервисы - в данном случае суть примерно та же.Когда я делаю декомпозицию и выноу чистые функции, которые легко юнит-тестировать, я не делаю никаких сервисов, репозиториев и тп вещей
Я ж это написал в качестве примера, что специально подчеркнул. Можно заменить "Редис" в этом высказывании на любое хранилище любого вида.я видимо неясно выразился - все храним в постгресе, кеши - где удобнее