Size: a a a

2021 November 23

A

Andrey in Python
Хз
Я последнее время когда «архитектуру» продумываю, то сразу думаю о простоте написания теста
Если тест легко пишется, то все ок

Мб херовый подход, конечно
источник

T

Tishka17 in Python
хороший
источник

AK

Alex Kalinin in Python
так это и есть считай tdd
источник

AK

Alex Kalinin in Python
тест это в т.ч. то как мы будем использовать код на практике. Соответственно простой тест - простой код.
источник

A

Andrey in Python
Да я в курсе про тдд, просто там же по сути сначала тест пишется, а потом код
Я все же код первый пишу
Но опять же, я могу править код во время написания тестов
источник

T

Tishka17 in Python
не совсем. Сначала проектируется как будет работать код, пишется прототип, потом пишутся тесты, потом реализуется полноценный код
источник

KL

Kirill Leontev in Python
слушай.

а вот допустим, у меня есть какой-то метод. он принимает свои зависимости через DI. эти зависимости принимают свои зависимости, так же через DI. и так рекурсивно, несколько уровней.

каждый компонент иерархии по отдельности компактный, single responsibilitiy, его легко юнит-тестировать.

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

как его правильно тестировать? что он правильно всё собрал? только интеграционный тест, который выполнит всё от и до, и проверит все сайд-эффекты?
источник

МС

Максим Скуйбида... in Python
Я сейчас делаю рефакторинг и уже сделал, чтобы сессия была одна на update. Но запросы в бд все равно будут блокировать луп и все обработчики апдейтов будут ждать, пока выполнится запрос в бд у какого то обработчика и так на каждый запрос в бд. Что можно сделать для того, чтобы запросы в бд перестали блокировать луп? Могу ли я использовать одну сессию на апдейт, но на каждый запрос делать run_in_executor?
источник

T

Tishka17 in Python
только интеграционный тест. По сути у тебя сборка тоже отделена получается, так что там не должно быть супер сложной логики.
источник

МС

Максим Скуйбида... in Python
Я пробовал так сделать и получал interfaceerror
источник

n

nibble in Python
источник

T

Tishka17 in Python
сессия должны быть одна на одно логическое событие
источник

T

Tishka17 in Python
нахрена тебе вообще асинк?
источник

T

Tishka17 in Python
да, можешь так делать
источник

МС

Максим Скуйбида... in Python
aiogram + sync db это норм?
источник

МС

Максим Скуйбида... in Python
А что делать с interfaceerror?
источник

T

Tishka17 in Python
40к строк бота? что ж там такое
источник

b

bars in Python
ограничение длины строки в 20 символов
источник

T

Tishka17 in Python
без понятия, я запутался от чего он у тебя
источник

МС

Максим Скуйбида... in Python
я, честно, не очень понимаю от чего он. В гугле нашёл, что из за использования одной сессии в разных потоках
источник