@spbpython

Страница 768 из 785
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
может быть, ты так и написал, но я просто не понял

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
@Ariksu @stvlpotapov парни, вы что-то покурили?
нет, просто я не умею в статические языки, а человек не умеет в динамические и мы пытаемся найти общий понятийный словарь

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
Green
12.09.2018
12:01:44
Вот это же самое я имел ввиду, когда говорил про спринг
То-есть ты наследуешься от какого-то базового класса и переопределяешь нужные тебе методы, так?

Valery
12.09.2018
12:07:03
То-есть ты наследуешься от какого-то базового класса и переопределяешь нужные тебе методы, так?
Никогда не думал, что у этого подхода есть такое умное название как inversion of control)

Stepan
12.09.2018
12:13:21
То-есть ты наследуешься от какого-то базового класса и переопределяешь нужные тебе методы, так?
Ну, на примере фласка: Ты пишешь app.route ('/') И говоришь, что будет если в урл ткнуть '/' При этом ты ожидаешь ту логику, которую за тебя фласк реализует Это и есть оно Об этом и говорит парень из вики

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
питон на жабу проще, да

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

Den
12.09.2018
12:27:41
хорошо, спасибо, кто отвечал, я продолжу ботать, а там поглядим)
есть неплохой гайд https://docs.python-guide.org/ если с английским нет особых проблем

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

Den
12.09.2018
12:28:51
Особых вроде и нет Спасибо!
если что есть русский перевод называется кажется Автостопом по python

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
Меня оскорбляет терминология parent/child, давайте меняйте!
Пожалуйста, вноси предложения в соответствующие места где тебя это оскорбляет

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.

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

Eugene
12.09.2018
13:45:01
Прости, мне неинтересна эта беседа, мы мало чего добьемся дискутируя тут, разве что только подогреем странную тему
что самое забавное, ты её и начал про "помойку комментов", а теперь сливаешь, типа я "выше всей этой грязи" и мне не интересно. не красиво

amureki
12.09.2018
13:45:13
Идем в личку, если хочешь, но не туту

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

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

amureki
12.09.2018
14:39:04
Ты просто нахамил в процессе обсуждения, назвав его срачем. Но извинения приняты, ок:)
Когда я увидел шутки про рабов и негров, я не распознал в этом обсуждение, прошу и за это прощения

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

Страница 768 из 785