@ru_python

Страница 7942 из 9768
Tishka17
31.01.2019
11:02:47
ну concurrent не получишь

Alex
31.01.2019
11:03:01
ну concurrent не получишь
concurrent как раз получишь не?

Tishka17
31.01.2019
11:03:44
concurrent как раз получишь не?
ну почему, переключение происходит только на IO, поэтому безопасно писать в мапу без лока. А вот race condition можно и получить

Bogdan (SirEdvin)
31.01.2019
11:03:44
Ты был или смотрел доклады Селиванова и Светлова с pycon-ru 2018? Сами коре-девелоперы называют его ужасным и просят прощения за поломанную совместимость от версии к версии
Нет, будет классно, если найду. Но мнение автора не всегда объективное. Вот мне недавно скидывали видео, где авторы называют dataclass классными, а на мое мнение, они полный шлак. Тот же typing, не видел, что бы авторы где-то извинились за то, что решили поломать всю совместимость между 3.6 и 3.7 проверку типов еще сложнее, ведь теперь надо впиливать костыли на проверки "а какая версия питона?". Авторы mypy вообще какое-то время считали, что "мы не будем делать систему плагинов, нам лень стабилизировать внутрение api", поэтому у них избранные пакеты удастаивались костылей в репе, а остальные должны ставить type: ignore. В противовес этому asyncio + aiohttp как-то нормально работает и при переходе с 3.6 на 3.7 я ничего не переписывал. Может повезло, но все-таки оно работает

Google
Bogdan (SirEdvin)
31.01.2019
11:04:04
а с asyncio ты этого не получишь?
Ну, у меня пока не получалось :)

Tishka17
31.01.2019
11:04:36
race condition - это как правило нарушение логики

Alex
31.01.2019
11:04:37
ну почему, переключение происходит только на IO, поэтому безопасно писать в мапу без лока. А вот race condition можно и получить
эм... но ведь переключение происходит не только на IO.. а в принципе в любом месте, где ты вызовешь await

Tishka17
31.01.2019
11:05:11
эм... но ведь переключение происходит не только на IO.. а в принципе в любом месте, где ты вызовешь await
разве если это питоновская функция без IO будет переключение а не обычный вызов?

хз как оно

Alex
31.01.2019
11:05:25
ок, сорян, я пожалуй спутал с race condition.

Tishka17
31.01.2019
11:06:59
Кстати, а у нас нет много…эээ…поточного asyncio?

Alex
31.01.2019
11:07:03
нужно внутривенное вливание кофе

Bogdan (SirEdvin)
31.01.2019
11:07:34
Кстати, а у нас нет много…эээ…поточного asyncio?
Что бы троллировать гоферов?) Не-а :)

Jentry
31.01.2019
11:07:57
Кстати, а у нас нет много…эээ…поточного asyncio?
по лупу в потоке? )есть возможность запускать что-то в тредах внутри асинхронного кода - ThreadPoolExecutor

LighteR
31.01.2019
11:08:20
Google
Tishka17
31.01.2019
11:08:23
по лупу в потоке? )есть возможность запускать что-то в тредах внутри асинхронного кода - ThreadPoolExecutor
ну чтобы разные корутины моглы выполняться в разных потоках, а я вообще об этом не думал

Bogdan (SirEdvin)
31.01.2019
11:08:38
ага
Такое можно сделать на процессах, но вот передавать корутину из процесс в процесс это сложновато

LighteR
31.01.2019
11:08:51
Alex
31.01.2019
11:09:05
вот с gevent было веселей

LighteR
31.01.2019
11:09:07
sleep, например )

Tishka17
31.01.2019
11:09:14
вообще, надо бы потыкать уже реалньо asyncio, а то я все теоретически чет

Bogdan (SirEdvin)
31.01.2019
11:09:37
Очень советую, так сказать)

Если веб проект, то как я понимаю, лучше всего взять fastapi

Выглядит очень сочно

Но не тыкал, я пока на sanic все еще

Tishka17
31.01.2019
11:10:05
увы, у меня уже go

Alex
31.01.2019
11:10:11
мы тут щас в проект притянули кусок на aiohttp

Jentry
31.01.2019
11:10:15
Alex
31.01.2019
11:10:16
микросервисом

обкатываем

Bogdan (SirEdvin)
31.01.2019
11:10:25
Alex
31.01.2019
11:10:54
увы, у меня уже go
сочувствую

Jentry
31.01.2019
11:11:46
увы, у меня уже go
у меня тож, держи пятюню ?

Tishka17
31.01.2019
11:12:03
у меня тож, держи пятюню ?
да тут уже полчата таких

Google
Alex
31.01.2019
11:12:08
есть ненулевой шанс что и у меня скоро будет

но если честно я тут тыкал тестовое задание на Go и меня блевать тянет

даже на задаче сраного http сервера все в один голос рассказывают как делать подключение в базе через глобальный объект. DI? не не слышали, а если слышали то это делается через какие-то дикие костыли сбоку.

Terminator
31.01.2019
11:15:17
@nadirq будет жить. Поприветствуем!

Alex
31.01.2019
11:15:32
Во во. Я тут как раз пытаюсь распилить один такой проект.
Я честно пытался, но к счастью это не было целью тестового, в итоге я забил.

Terminator
31.01.2019
11:15:39
@asdxsw будет жить. Поприветствуем!

Егор
31.01.2019
11:16:29
а зачем отступы в питоне?

Николай
31.01.2019
11:16:39
Terminator
31.01.2019
11:16:42
@keipa будет жить. Поприветствуем!

Alex
31.01.2019
11:16:43
а зачем отступы в питоне?
а зачем скобки в С++?

Bogdan (SirEdvin)
31.01.2019
11:17:00
К счастью, у нас маленькая компания, меня го не ждет) Разве что когда rust немного стабилизируется, попробую его подучить

Alex
31.01.2019
11:17:08
а зачем отступы в питоне?
в @ru_python_beginners и читать книжку по питону быстро блеать

Егор
31.01.2019
11:17:10
а зачем скобки в С++?
для смайлов в комментах

Alex
31.01.2019
11:17:34
@Tishka17 кандидат на RO \ банхаммер

Tishka17
31.01.2019
11:19:28
DI - это не про инструменты, а про связность кода

El Mariachi
31.01.2019
11:19:45
@Tishka17 https://habr.com/ru/post/84629/
очень акутальная статья 2009 года.... учитывая что уже в 2010 в 3.2 там многое принципиально поменялось....

Jentry
31.01.2019
11:20:35
DI - это не про инструменты, а про связность кода
не совсем, в понятие DI входит injector и часто это конкретная реализация, если ты про подход и несвязность это IoC

Aragaer
31.01.2019
11:21:09
это конкретная реализация

Google
Aragaer
31.01.2019
11:21:38
инъекцию можно делать разными способами и далеко не все они требуют наличия DI-фреймворка (не люблю фреймворки)

просто тупо руками передать в конструктор или сеттер экземпляр того, что требуется - и оно работает

Jentry
31.01.2019
11:22:10
да, можно, в питоне вообще импортом можно делать)

Aragaer
31.01.2019
11:23:39
собственно провайдер зависимостей это уже паттерн service locator по-моему

Bogdan (SirEdvin)
31.01.2019
11:23:50
Ну, говнокод, бывает.. А для DI есть uber dig, uber fx, google wire..
Ну, а тут приходит другая проблема - все эти штуки очень плохо смотрятся в го, кмк

Aragaer
31.01.2019
11:24:11
и опять же, может возникнуть желание сделать сам провайдер синглтоном, а можно его передавать как зависимость

Sfy
31.01.2019
11:25:28
а зачем отступы в питоне?
Идентация (отступ) в Питоне используется для выделения блоков кода.

Tishka17
31.01.2019
11:25:59
Егор
31.01.2019
11:26:06
Aragaer
31.01.2019
11:26:26
а в тестах делают специальный провайдер с тестовыми сервисами/заглушками

Jentry
31.01.2019
11:26:27
Ну, а тут приходит другая проблема - все эти штуки очень плохо смотрятся в го, кмк
не знаю, мне dig нравится, простой и понятный, но это оффтоп в этом чате)

Aragaer
31.01.2019
11:28:01
да

это для интеграционных и behavior тестов

хотя .. зависит от апи юнита. Мало ли, у тебя юнит это "передать туда такого-то, а все методы что-то над этим товарищем делают"

и тебе надо сенсить, что тестируемые методы действительно выполняют нужные действия над переданным внутрь объектом

тогда можно засунуть мок

но когда надо засунуть более одного мока - то есть тестируемый объект должен "достать результат из метода А мока1, передать его в метод Б мока2", то ... уже можно подумать о том, чтобы инжектить моков одной пачкой, особенно если для рабочего варианта используется тот же самый инструмент инжекта

Google
Terminator
31.01.2019
11:31:44
@amstir будет жить. Поприветствуем!

Виктор Мортид будет жить. Поприветствуем!

Bogdan (SirEdvin)
31.01.2019
11:41:07
Кстати, раз мы уже заговорили про DI. Я вот использую DI на основе импортов и classmethod. Насколько все плохо?)

То есть модели чисто для данных, вся логика хранится в "сервисах", которые я так вызываю

Tishka17
31.01.2019
11:43:00
Кстати, раз мы уже заговорили про DI. Я вот использую DI на основе импортов и classmethod. Насколько все плохо?)
Ну вот представь что тебе надо в сервис подсунуть для теста мок. Ты это сможешь сделать?

Модели имхо норм

Страница 7942 из 9768