
Denis
22.07.2018
16:24:17
А еще лучше готовый воркер внутрь менеджера передавать
mgr = DbManager(SqliteWorker())
И abc тут не нужен

Mihail
22.07.2018
16:27:00
спасиб в любом случае) я бы с радостью согласиться, но завтра выхожу на работу на должность junior python, до этого разговоривал с тим лидом, он говорит что прям надо знать реализации этих патернов на python, буду пытать его зачем ему это надо)

Denis
22.07.2018
16:27:29
Неужели на шарпе так плохо с работой?

Google

Mihail
22.07.2018
16:27:57
переехал в другой город, на python очень жирная вакансия, подумал почему бы и нет

Ученик
22.07.2018
16:39:27
Это ужасный человек
Сразу бан

Zart
22.07.2018
17:17:17

Mihail
22.07.2018
17:18:24
я конечно не эксперт, но https://docs.python.org/2/library/abc.html

Zart
22.07.2018
17:18:42
поэтому ты и не эксперт
выше денис уже отметил что это другое

Mihail
22.07.2018
17:20:39
окай
странная тема python с заявкой на ООП, а часть парадигм рушит

Zart
22.07.2018
17:21:52
а в чем проблема?

Mihail
22.07.2018
17:22:44
например до кучи поля скрыть можно только условно

Zart
22.07.2018
17:22:56
и в чем проблема?

Mihail
22.07.2018
17:23:41
да в целом нет проблемы, просто не привычно после того же .net

Google

Zart
22.07.2018
17:24:12
ооп в питоне проще, потому что половины той хуйни не нужно

Mihail
22.07.2018
17:25:38
тоже может быть, язык на порядок проще

Zart
22.07.2018
17:26:32
если хочется пошарпоёбствовать, полномасштабные интерфейсы есть

Mihail
22.07.2018
17:26:45
это которые zopo?

Zart
22.07.2018
17:26:51
угу

Mihail
22.07.2018
17:27:54
читал про них, как-то все костыльно выглядит, буду менять мышление на питоновское это похоже лучший выход

Zart
22.07.2018
17:28:09
костыльно?
тогда в шарпе что?

Mihail
22.07.2018
17:31:57
ориентировался на эту статью https://habr.com/post/72757/ на первый взгляд осталось такое впечатление. костыльно в том плане, что это не является встроенным средством языка, нужно заимортировать либу, потом отнаследоваться от класса и тд. когда в шарпе ты создаешь интерфейс, и имплиментишь его сементически выглядит куда лучше

Zart
22.07.2018
17:34:32
обзорная статья, но суть в целом передает

Mihail
22.07.2018
17:34:41
и еще один момент ключевой, фактически проверки имплементации нет

Zart
22.07.2018
17:34:52
абц в стдлибе сделали как продолжение дактайпинга
скажем в питоне обычно требовалось чтобы объект был например итерируемым, или файл-лайк

Mihail
22.07.2018
17:36:13
захотел объект заюзать, который имплементит некоторый интерфейс, а он внезапно не полностью его имплементит

Zart
22.07.2018
17:36:23
поэтому часто для этого делали две вещи - или проверку на наследование isinstance(x, basestr), например
или проверку на наличие hasattr(fp, 'write')

Mihail
22.07.2018
17:37:30
короч хз, как практики больше будет тогда смогу спорить, пока только очень поверхостное представление о мире питона

Zart
22.07.2018
17:37:37
если ты настолько параноик, можно напидарасить ассерты с верифаями. есть zope.interface.verify который валидирует что объект имплементит/провайдит заявленное
на практике никому это нахуй не нужно

Google

Mihail
22.07.2018
17:38:16
надеюсь)

Zart
22.07.2018
17:38:16
в шарпах и жабах эта проверка бесплатна на этапе линковки
в питоне её можно делать лишь в рантайме
и если кто-то чтото забыл дописать - мудак, чо

Alexey
22.07.2018
17:38:46

Zart
22.07.2018
17:39:15
в общем абц это способ формализовать вот те проверки выше, что я упомянул

Mihail
22.07.2018
17:40:09

Zart
22.07.2018
17:40:11
т.е. за основу взяли isinstance механизм, и впилили в него интеграцию с абц, чтобы этим проверять объекты на то, что они предоставляют какое-то поведение
isinstance(x, types.Iterable) к примеру
до абц надо было делать try: iter(x) ; return True except TypeError: return False

Mihail
22.07.2018
17:42:09
картинка вроде собирается, спасиб за подробности

Zart
22.07.2018
17:42:12
и это всё что умеет убогий абц

Zart
22.07.2018
17:42:30
зопоинтерфейсы сильно наворочены и поэтому их не пустили в стдлиб
потому что тащат за собой кучу дополнительного багажа
на основе интерфейсов нафигачены адаптеры/утилиты, регистри из них, потом еще и ивенты до кучи
и на всем этом фундаменте хуева гора прочего кода живет

Mihail
22.07.2018
17:44:10
о кстати насчет эвентов, я так понимаю тоже только вручную делать их встроенного механизма нет?

Zart
22.07.2018
17:44:22
а где есть?

Mihail
22.07.2018
17:44:34
в шарпе)
ну там это больше конкатенация делегатов

Google

Zart
22.07.2018
17:45:28
там это не фича языка, а либы скорее

Mihail
22.07.2018
17:45:28
но есть и объекты которые реализуют патерн observable

Zart
22.07.2018
17:45:40
аналогичных вариантов в питоне дохуя
каждая гуи либа с ивентами у нас
питону не нужны делегаты, обычных коллбаков хватает
обсервер паттерн реализован кучей способов - и в гуи фреймворках, и в ормах, и в сетевых либах

Mihail
22.07.2018
17:47:34
а в стандартных есть что-то?

Admin
ERROR: S client not available

vlade11115
22.07.2018
17:48:30
https://docs.python.org/3/library/signal.html
Формально, есть.
Но не для того что ты спрашиваешь.

Zart
22.07.2018
17:48:41
это вообще не то
даже близко

vlade11115
22.07.2018
17:48:47
Ага
Я не видел где вы выше определили "то".

Zart
22.07.2018
17:49:33
ну мы вроде о вполне конкретном механизме, как сигналы/слоты куте, например
где есть возможность и слать и ловить
сигнал питона позикс онли, и обёртка к интерфейсу ос
назвать это ивентами я как-то не могу

vlade11115
22.07.2018
17:51:07
Вопрос терминологии ;)

Zart
22.07.2018
17:51:25
ну очень рудиментарные и хуевые ивенты

vlade11115
22.07.2018
17:51:32
Вот так лучше.

Google

Zart
22.07.2018
17:51:36
как примерно весь ссаный позикс

vlade11115
22.07.2018
17:52:08
Бгг

Zart
22.07.2018
17:52:21
*поджиг пуканов ин 3.. 2..*

vlade11115
22.07.2018
17:52:30
Не в этом чате ж.

Zart
22.07.2018
17:52:51
ну да. тут всем пофиг, а в нубасах уровень не тот

vlade11115
22.07.2018
17:52:52
Ваши горящие пуканы в другом замке.

Alexey
22.07.2018
17:53:06
В нубасах даже не поймут об чом базар.

Zart
22.07.2018
17:53:10
именно

Mihail
22.07.2018
17:54:06

Alexey
22.07.2018
17:54:37
Рад, что полезно.

vlade11115
22.07.2018
17:55:15
50 гигов книг?

Alexey
22.07.2018
17:55:22
50 гигов книг.

vlade11115
22.07.2018
17:55:31
А в штуках это сколько?

Alexey
22.07.2018
17:55:44
Да хуй его знает.

Zart
22.07.2018
18:11:07
пара сотен александрийских библиотек

Гения
22.07.2018
18:31:09
Гения:
#работа Москва м. Дмитровская
Ищем программиста Python
Обязанности:
-Разработка кассового программного обеспечения
-Разработка программного обеспечения для терминалов самообслуживания
-Доработка существующего программного обеспечения
Требования:
-Опыт написания ПО на Python от 3х лет.
-Знание устройства операционной системы Linux.
-Опыт создания дистрибутивов
Желательно:
-Знание работы промышленных сетей Lon Work
-Знание протокола http, протокола IFSF
-С++
Оклад: В зависимости от уровня кандидата до 230 000 рублей.
Возможность индивидуального графика работы при условии сохранения 40-часовой недели.
Вопросы и резюме в личку или на emakarova@cornerstone.ru

Alexey
22.07.2018
18:31:37
Какой скромный эйчар. :)
Нормально, 230. В Екатеринбурге на удалёнку возьмёте? :)