@oop_ru

Страница 643 из 785
Евгений
13.05.2018
20:37:05
Много всяких поп на самом деле.

Антон
13.05.2018
20:37:07
Sergey
13.05.2018
20:37:10
Или «процедурно ориентированное»?
самый мэйнстримный на сегодня подход, че

Антон
13.05.2018
20:37:13
Google
Евгений
13.05.2018
20:37:15
Надо давать более точное определение.

Sergey
13.05.2018
20:37:26
Надо давать более точное определение.
протокол вполне себе неплохое определение)

Евгений
13.05.2018
20:37:36
Ну да.

Charles
13.05.2018
20:37:38
какую к черту магию? у тебя есть консоль, писать в нее может кто-то один. Либо твоя консоль изолирует сайд эффекты давая тебе некую очередь запросов (mailbox в контексте actor model) либо ты сам разруливаешь блокировки
блин, если ты как говорил наш товарищ заинжектишь консоль - для твоей системы это не сайд эффект. о какой системе мы говорим? в общем о всей вообще включая консоли, исключения, все дела?..

Евгений
13.05.2018
20:37:42
А «ПОП» не очень.

Антон
13.05.2018
20:38:10
Почему?

Sergey
13.05.2018
20:38:27
блин, если ты как говорил наш товарищ заинжектишь консоль - для твоей системы это не сайд эффект. о какой системе мы говорим? в общем о всей вообще включая консоли, исключения, все дела?..
ну то есть мы говорим о объектах?) и все твое красивое чистое без-сайдэффектовое ФП будет внутри одного такого объекта (или эктора, называй как хочешь))

Charles
13.05.2018
20:38:37
блин, если ты как говорил наш товарищ заинжектишь консоль - для твоей системы это не сайд эффект. о какой системе мы говорим? в общем о всей вообще включая консоли, исключения, все дела?..
это я к тому что для твоей системы не будет сайд-эффектом консоль, блокировки, доступ и вообще что угодно - надо просто разграничивать где система заканчивается

Евгений
13.05.2018
20:38:40
Нууу, Процедурно. Прототипно. Протоколо.

Антон
13.05.2018
20:38:43
Это типа структур

Евгений
13.05.2018
20:38:44
3 варианта ПОП.

По этому надо точнее.

Google
Charles
13.05.2018
20:39:03
А «ПОП» не очень.
Почему Оно Плохо

Евгений
13.05.2018
20:39:21
Умный??

Сильно умный? Да.

Ща мы тебе дадим.

И поп.

И функции.

Sergey
13.05.2018
20:39:45
и тебе тоже дадим, не волнуйся)

всех вылечим

Charles
13.05.2018
20:39:57
"заинджектил консоль" - кто должен разруливать стэйт самой консоли?
не та система с которой ты работаешь. Ибо для нее любое изменение среды тоже суть среда а не ее часть (этой системы).

блен да контрактное же вроде примерно на этом и основано

Sergey
13.05.2018
20:40:38
не та система с которой ты работаешь. Ибо для нее любое изменение среды тоже суть среда а не ее часть (этой системы).
ты хоть раз писал с ncurses каким в консоль? примерно представляешь как устроен эмулятор терминала?

Charles
13.05.2018
20:41:15
эмулятор терминала честно - смутно и каюсь. с ncurses нет ибо зачем, нужд не было. но при этом писал ДКА, и?

делить надо на разные системы, вот тебе и чистота

что не так-то???

Sergey
13.05.2018
20:42:08
ну это ж именно то о чем я и говорю, у тебя может быть красивый и чистый конечный автомат завернутый в уродливую машину тьюринга)

Charles
13.05.2018
20:42:30
так и что не так-то с этим???

я согласен, но - твое "но" в чем заключается?))))

Google
Charles
13.05.2018
20:43:36
эта машина = среда. вот и все, не?

Sergey
13.05.2018
20:44:09
Или в рамках модуля. И этот модуль тогда более переиспользуемый
чем объект не модуль?) и да, я сейчас говорю о тех объектах которые по Кею а не том говне которое в плюсах или джавке)

я согласен, но - твое "но" в чем заключается?))))
ну ни в чем, собственно) вопрос в изоляции)

Charles
13.05.2018
20:44:36
блен ну это как разница в архитектурах и доступном наборе операций на разных процах. ну да, они разные - и что с того-то? для твоего автомата это просто разные входные сигналы, и ничем больше они не будут для него - а если будут, то это либо сама машина тьюринга либо хреновый конечный автомат

ну ни в чем, собственно) вопрос в изоляции)
дык я ж тебе о том же говорил что надо делить)

Sergey
13.05.2018
20:44:55
эта машина = среда. вот и все, не?
ну было б неплохо конечно но пока этим вроде только эрланг может похвастаться (ну мол предоставляет такую вот среду и возможность изоляции от эффектов)

Serhii
13.05.2018
20:45:06
Sergey
13.05.2018
20:45:33
Хайер-левел-систем (чаще всего фреймворк)
тебе когда-нибудь приходилось в коде делать что-то типа Date.now()?

как это соотносится с твоей идеей идемпотентности операций?

Charles
13.05.2018
20:46:06
мне приходилось. на пыхе правда

Serhii
13.05.2018
20:46:43
чем объект не модуль?) и да, я сейчас говорю о тех объектах которые по Кею а не том говне которое в плюсах или джавке)
Да, модуль может и из одного объекта состоять. Но в реальных системах модуль обычно побольше

Charles
13.05.2018
20:48:07
как это соотносится с твоей идеей идемпотентности операций?
да никак, тут вопрос в изолированности о которой ты выше говорил. нельзя на один набор грамматики выносить одновременно например температуру с датчика (иди Date.now()) и стейт в том смысле в котором с ним работают в программировании (в земном я имею ввиду, а не RTOS)

так что тут как мне кажется зеленое с мягким сравнивают. поправь если я не так понял

Sergey
13.05.2018
20:51:07
Да, модуль может и из одного объекта состоять. Но в реальных системах модуль обычно побольше
модуль это структурная единица, ты можешь хоть все приложение модулем назвать. Это довольно условный термин в этом случае.

Charles
13.05.2018
20:53:04
сейчас перечитал и понял что не совсем правильно сформулировал - там не "стейт в том смысле в котором с ним бла-бла-бла" а какой-нибудь скаляр который мало отношения к системным таймерам имеет. ну, к примеру

Sergey
13.05.2018
20:53:39
объект - тут тоже расплывчато - можно ими называть то что ты привык, типа инстанс класса, а можно что-то более абстрактное - метафора комьютера со своей изолированной памятью и поведением. Для меня объект и есть эта точка изоляции эффектов. Ну короч мне нравятся экторы)

Serhii
13.05.2018
20:54:01
модуль это структурная единица, ты можешь хоть все приложение модулем назвать. Это довольно условный термин в этом случае.
Ну, как только твою систему через пэкэдж-менеджер удастся переиспользовать в другой системе - называй ;)

Google
Sergey
13.05.2018
20:54:33
docker run -d jira - модуль?

kubectr deploy application - модуль?)

Charles
13.05.2018
20:55:30
а последнее это что? kubernetes?

Sergey
13.05.2018
20:55:37
Charles
13.05.2018
20:55:44
ок

Sergey
13.05.2018
20:55:47
там правда честнее было бы через helm тогда

типа helm install elasitcsearch и вот у тебя крутится класстер из 10-ти нод, чем не модуль

Charles
13.05.2018
20:56:47
чет мы далеко зашли

Serhii
13.05.2018
20:57:00
apt-get install nginx - модуль?
Если система, использующая модуль, линукс - да

Sergey
13.05.2018
20:57:04
ну я просто демонстрирую бесполезность термина "модуль" в этой дискусии)

Charles
13.05.2018
20:57:15
)))

Serhii
13.05.2018
20:57:32
docker run -d jira - модуль?
Это же ран. Где тут менеджер пакетов?

Sergey
13.05.2018
20:57:39
мне кажется что человек под словом "модуль" явно имеет ввиду "что-то что описывает границы"

Charles
13.05.2018
20:57:59
ага, еще UML вспомни)

Sergey
13.05.2018
20:58:00
Это же ран. Где тут менеджер пакетов?
ну образ - это пакет, он будет скачан и запущен)

Serhii
13.05.2018
20:58:13
kubectr deploy application - модуль?)
А это деплой. Опять, где менеджер пакетов?

Sergey
13.05.2018
20:58:28
https://github.com/kubernetes/helm - пруф

менеджеры пакетов есть разные

Charles
13.05.2018
20:58:53
в данном контексте они все суть менеджеры пакетов потому что каждый - своим способом - выдают артефакт коим является установленный в системе пакет

Google
Charles
13.05.2018
20:59:03
мы ж абстрактно

Sergey
13.05.2018
20:59:32
ну абстрактно мы вспоминаем структурное программирование и тамошние концепты связанности и зацепления модулей, а размеры модуля неважны

Charles
13.05.2018
20:59:58
я вот нихера их не помню если честно.

Sergey
13.05.2018
21:00:11
ну а связанность и зацепление напрямую связаны и с information hiding (тобишь инкапсуляция здорового человека) и прочие штуки (GRASP, SOLID, все крутится вокруг этих двух простых концептов)

SOLID строится на идеях того что у тебя есть контракты, они должны быть простыми, ориентированными на нужды клиентского кода, не должны сильно меняться, и предоставлять точки расширения (вместо того что бы их переписывать). GRASP - тоже самое но чуть другими словами

контракты которые не мутируют стэйт, которые предоставляют идемпотентные операции - они прекрасно ложатся на все это

более того сайд эффекты сильно влияют на связанность, потому тут нам тоже надо изолировать все. Ну короч все то же самое просто под разными предлогами.

но если ты захочешь игрушку написать или любую другую систему где каждая микросекунда важна - тут совсем другие разговоры...

Serhii
13.05.2018
21:05:33
контракты которые не мутируют стэйт, которые предоставляют идемпотентные операции - они прекрасно ложатся на все это
Именно. Я как раз это и реализовывал для редакс, чтоб не опираться на структуру глобального стейта

Charles
13.05.2018
21:05:41
бл9, вот читаю это все. самое важное - это то делим мы состояние от системы или нет. если делим - что-то пошло не так, там уже значит пошло "препарирование".

Charles
13.05.2018
21:06:16
Именно. Я как раз это и реализовывал для редакс, чтоб не опираться на структуру глобального стейта
кстати про глобальный стейт - это если честно вообще отврат. я вот только начал смотреть редакс и так начали про этот глобальный стейт.... мне чет не очень

Sergey
13.05.2018
21:06:53
так что в целом все ок

Charles
13.05.2018
21:07:01
дай определение "системе"
набор элементов которые вместе работают как системе, а по отдельности - работают уже как-то иначе

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