
Null
12.09.2018
07:22:15
http://masnun.rocks/2017/04/15/interfaces-in-python-protocols-and-abcs/

Stepan
12.09.2018
07:28:36
я не фанатик, честно:
если существует способ не создавать поле, от него геттер и сеттер, а просто работать осторожно - так и будет, но, объективно, существуют задачи, которые объектно куда удобнее решать чем скриптами

Алексей
12.09.2018
07:34:35
я не фанатик, честно:
если существует способ не создавать поле, от него геттер и сеттер, а просто работать осторожно - так и будет, но, объективно, существуют задачи, которые объектно куда удобнее решать чем скриптами
Я тут больше фанатик, да... Проблема в том, что я мало работал в строгой ООП-среде и мне сложно понять эти паттерны. Inversion of control например: вместо того чтобы использовать что-то определенное заранее мы принимаем что-то определяемое на лету, правильно?

Stepan
12.09.2018
07:37:15
если вкратце:
контрол: есть задача - добраться до бд, ты берешь и соединяешься - сам, пишешь под это методы, классы, обвязку
инвершен оф контрол - юзаешь spring data jpa - аннотируешь поля(т.е. переменные) определенным образом, запускаешь - и вот в них уже лежат данные из бд

Google

Stepan
12.09.2018
07:37:28
может быть, ты так и написал, но я просто не понял

Алексей
12.09.2018
07:40:13
и для чего.


Stepan
12.09.2018
07:42:58
ну, например так:
мы с тобой сели и договорились, что я напишу поддержку бд, а ты контроллер
я реализую классы у себя в столе, которые будут очень похожи на реализацию спринг фреймворк, а в твою сторону будут торчать аннотациями, интерфейсами и тд, если тебе будет достаточно, не вдаваясь в подробности моей реализации - просто реализовать интерфейсы и что-то унаследовать/переопределить, а мой кусок сделал всё "сам" - значит, для тебя это inversion of control
это, на самом деле, самый частый вопрос на собеседованиях, поскольку - ну спорный как полиморфизм
я транслирую позицию, которую мне недавно рассказал один c# senior

Алексей
12.09.2018
07:45:20
Снова всё ещё непонятно. Мы можем договориться об API, да. Зачем для этого фреймворки? Где здесь IoC?
Ты можешь написать абстрактные классы работы с базой данных. Или мы можем использовать какой-ниубдь ORM типа SQLAlchemy

Stepan
12.09.2018
07:47:09
то, что в питоне sqlalhemy - в джава ыпринг дата
вот и все
просто, здесь это либа, там это - фреймворк
но тут я рискую ошибиться, потому что я не юзал склалхеми
вот на это ориентируюсь просто

Google

Stepan
12.09.2018
07:48:05
SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL. Википедия

Алексей
12.09.2018
07:48:42
но это не отвечает на вопрос про IoC, понимаешь?
Это отвечает на вопрос "как работать с бд для сложных данных" - "использовать готовый ORM или написать свой"

Stepan
12.09.2018
07:49:37
использование sqlAlchemy - это и есть инвершн оф контрол, ты просто вызываешь методы библиотеки, а она всё сама

Алексей
12.09.2018
07:50:04

Stepan
12.09.2018
07:50:11
при этом ты и понятия не имеешь - как работает sqlalhemy - как там оно под капотом
просто дергаешь методы
ну, функции

Алексей
12.09.2018
07:50:27
def hello():
print ("hello world")
hello()
это не инвершен оф контрол

Roman
12.09.2018
07:50:56
@Ariksu @stvlpotapov парни, вы что-то покурили?

Stepan
12.09.2018
07:51:13
)) недостаток пайтона в крови

Алексей
12.09.2018
07:51:34

Stepan
12.09.2018
07:52:55
в общем, ты сможешь зафиксировать это до вечера ? - мне, правда, интересно, но дедлайны не ждут..

Green
12.09.2018
11:35:27
В обычной программе программист сам решает в какой последовательности делать вызовы процедур. Но если используется фреймворк то программист может разместить свой код в определенных точках выполнения (используя callback или другие механизмы), затем запустить "главную функцию" фреймворка которая обеспечит все выполнение и вызовет код программиста тогда когда это будет необходимо. Как следствие происходит утеря контроля над выполнением кода - это и называется инверсия управления (фреймворк управляет кодом программиста, а не программист управляет фреймворком).
(c) Вики
Мне кажется, что та-же алхимия не сильно подходит по паттерн IoC
Под IoC скорее подходят (например) хендлеры в фласке - фреймворк сам решает, когда их дергать.

Stepan
12.09.2018
11:50:05

shigarus
12.09.2018
11:51:07
Я подозреваю, что интересно как делается что-то вида алхимии - ты определяешь класс с парой аттрибутов, а там уже куча геттеров, сеттеров и еще всякой магии.
Можно посмотреть в сторону метаклассов и декораторов. А потом залезть в код той же алхимии. И каждый раз, когда хочется использовать метаклассы в решении обычных задач - найти способ их не использовать:)

Google

Дмитрий
12.09.2018
11:55:39

Green
12.09.2018
12:01:44

Valery
12.09.2018
12:07:03

Stepan
12.09.2018
12:13:21

Green
12.09.2018
12:17:49
Это я понял)
Только я никак не пойму, что вызывает у тебя затруднения) Реализовать такое поведение можно на чем угодно и это не зависит от применяемого шаблона проектирования и языка)

Den
12.09.2018
12:19:13
очень непросто сходу натянуть жаву на питон

Alex
12.09.2018
12:19:27
а главное зачем...

Den
12.09.2018
12:19:47
со временем мозг перестроится

Маша
12.09.2018
12:20:50

Den
12.09.2018
12:21:19

Stepan
12.09.2018
12:21:28
у меня нет желания натянуть жаву на питон
у меня есть желание разобраться с логикой работы питона вцелом
вот есть джава - начал с обжект и погнал до коллекций, прочитал - молодец, всё понимаешь
есть питон
начал с синтаксиса и в какой-то момент уперся в то, что не совсем понимаешь самой логики работы питона, некоторые моменты превращаются в charm, и что с этим делать непонятно

Denis
12.09.2018
12:21:28
питон на жабу проще, да

Eugene
12.09.2018
12:22:43

Roman
12.09.2018
12:25:17

Den
12.09.2018
12:25:26

Stepan
12.09.2018
12:25:57
хорошо, спасибо, кто отвечал, я продолжу ботать, а там поглядим)

Den
12.09.2018
12:27:41

Stepan
12.09.2018
12:28:04
Особых вроде и нет
Спасибо!

Den
12.09.2018
12:28:51

Google

Andrey
12.09.2018
13:00:29

Некто
12.09.2018
13:06:48
Читаешь такой Новости и тут новость про Python среди политики
Создатель Python предложил убрать из своего языка программирования слова «master» (хозяин) и «slave» (раб).
Всё из-за политкорректности
Желтые СМИ оценили

Den
12.09.2018
13:09:20
вот он - 3.8 которого мы все ждали))

Admin
ERROR: S client not available

Марат
12.09.2018
13:11:19
Наконец-то негры смогут нормально пользоваться Python

Stepan
12.09.2018
13:16:10
Вообще то мы не любим, когда нас называют неграми

Danil
12.09.2018
13:16:11
в каком это тёмном мире master выполняют большую часть работы, а когда умирает, то slave берёт на себя его роль?

amureki
12.09.2018
13:16:38
Я с утра уже поплевался от помойки комментов на опеннете, так тролли и сюда пришли

Eugene
12.09.2018
13:24:06
Легко вешать ярлыки :)

amureki
12.09.2018
13:24:51

Eugene
12.09.2018
13:25:45

amureki
12.09.2018
13:26:26

Eugene
12.09.2018
13:36:42
Я так не думаю
Меня оскорбляет терминология parent/child, давайте меняйте!

amureki
12.09.2018
13:37:39

Eugene
12.09.2018
13:37:59
motherboard, не согласен, давай fatherboard!
Вообще если к каждому оскорблённому фрику прислушиваться, всё нахрен развалится и все перессорятся.

amureki
12.09.2018
13:38:50

Google

amureki
12.09.2018
13:38:56
К тебе мало кто прислушивается :)

Eugene
12.09.2018
13:39:03
ну вот там так примерно и есть

amureki
12.09.2018
13:39:58
Прости, мне неинтересна эта беседа, мы мало чего добьемся дискутируя тут, разве что только подогреем странную тему

Eugene
12.09.2018
13:40:27
» Прости, мне неинтересна эта беседа
пффф сейчас расплачусь

Dmitry
12.09.2018
13:40:32
плохо что теперь будет много документации и статей где будет старая терминология и появятся новые где будет новая, и в каждой похоже придётся делать заметку, что A теперь принято называть B, C - D.

Andrey
12.09.2018
13:41:02
а потроха репликации все равно везде работают чуть по разному и их надо описывать

Dmitry
12.09.2018
13:44:49
я вот когда читал какую-то лохматый пейпер про btree был удивлён, что там используется термин "sons" для детей ноды. сейчас бы за такое хз что было.

Eugene
12.09.2018
13:45:01

amureki
12.09.2018
13:45:13
Идем в личку, если хочешь, но не туту
Я приношу извинения, что принес дополнительный повод для срача
Сливаюсь потому что понял, что мы ни к чему хорошему тут не придем своим оффтопом

Serge
12.09.2018
14:30:46

Dmitry
12.09.2018
14:36:45
А все началось с того, что freebsd заменили лого чёртика на 2 сосиски в тесте

amureki
12.09.2018
14:39:04
А вообще, ну правда же, по сути это некоторый рефакторинг с точки зрения необходимой работы, не сильно больше