@oop_ru

Страница 423 из 785
Mykola
11.12.2017
11:43:08
корректная "последовательность" ивентов же составляет консистентность приложения

Aleh
11.12.2017
11:43:27
ну ты опять про асинхронность

зачем ты это мешаешь с ивентами и IoC неясно

потому что у вас так было сделано и ты страдал?

Google
Mykola
11.12.2017
11:44:07
ну у всех так сделано

есть примеры другого подхода?

Aleh
11.12.2017
11:44:39
симфонишные\спринговые контроллеры - пример IoC

нормальный другой подход без ивентов, просто с вызовами методов

Mykola
11.12.2017
11:45:00
так там же ивенты сплошные)

Sergey
11.12.2017
11:45:04
Aleh
11.12.2017
11:45:29
так там же ивенты сплошные)
ты можешь сделать дамми диспатчер, а контроллеры все равно работать будут)

и ивенты там - благо, почти мана небесная

Антон
11.12.2017
11:46:16
есть примеры другого подхода?
Callbacks, scheduler, template method?

Mykola
11.12.2017
11:47:50
это же все про ивенты :)

Aleh
11.12.2017
11:49:14
что такое ивенты?

Антон
11.12.2017
11:49:55
это же все про ивенты :)
Эээ, где в шаблоном методе ивент? Очередность вызова метода? о.О

Mykola
11.12.2017
11:50:47
ок, поясню: есть синхронный флоу, это например мы получили реквест интерпретируя его как RPC, зароутили его на определенный контроллер, вызвали и вернули результат

Google
Mykola
11.12.2017
11:51:15
но синхронный флоу нам не интересен, мы хотим реюзать код

Aleh
11.12.2017
11:51:43
реюзать код никто не хочет

все хотят реюзать абстракции)

Mykola
11.12.2017
11:52:08
абстракции это тоже код

Aleh
11.12.2017
11:52:11
и синхронный флоу никакого влияния на реюз не оказывает, либо опять же мы о чем-то очень разном

Mykola
11.12.2017
11:52:19
абстракции для того и придуманы, чтоб их реюзать

так вот, с синхронным флоу понятно? тут чистый IoC как процедурный подход

Aleh
11.12.2017
11:53:08
что значит “чистый IoC как процедурный подход”?

Mykola
11.12.2017
11:53:12
внезапно, добавим асинхронности

ну в википедию глянь, что-ли)

там как раз кейсы описаны

к примеру мы хотим писать логи в контроллере

чот мы можем сделать, чтоб не нарушить IoC?

Mykola
11.12.2017
11:56:14
но мы же тогда явно будем дёргать функционал другого модуля

а по идеологии IoC мы можем только с фреймворком общаться

Антон
11.12.2017
11:57:58
а по идеологии IoC мы можем только с фреймворком общаться
Ладно, сдаюсь, говори, что в твоей голове:)

Mykola
11.12.2017
11:59:07
да я ж уже все сказал: мы шлем ивент для фреймворка ака "залогируйте мне вот это пожалуйста" :)

этим мы не нарушим IoC

Aleh
11.12.2017
11:59:27
ну в википедию глянь, что-ли)
ну в википедии нет никаких “чистых IoC как процедурного подхода”

Google
Aleh
11.12.2017
11:59:43
этим мы не нарушим IoC
нарушение такое же как с вызовом метода

Mykola
11.12.2017
12:00:33
почему? мы же не вызываем никакой метод, это не контрол флоу

Anton
11.12.2017
12:00:43
Похоже я не могу уловить мысль...

Anton
11.12.2017
12:01:28
Наброшу: окей, AOP будет нарушать IoC в вашем представлении?

Mykola
11.12.2017
12:01:45
грубо говоря типа так: application.dispatch('my_event')

Aleh
11.12.2017
12:01:56
явный вызов есть, за ним следуют действия

control flow полностью соответстует тому, как ты вызываешь методы

нет никакой инверсии

Mykola
11.12.2017
12:02:16
AoP может и нарушать, почему нет?

Антон
11.12.2017
12:02:52
да я ж уже все сказал: мы шлем ивент для фреймворка ака "залогируйте мне вот это пожалуйста" :)
С помощью чего ты бросишь ивент в контроллере? С помощью диспетчера? А диспетчер от куда ты возьмёшь ?

Mykola
11.12.2017
12:03:03
методы, процедуры и другие штуки - это конкретные реализации конкретных языков

Mykola
11.12.2017
12:03:19
а контрол флоу - это понятие абстрактное

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

control - контролировать

что тут не ясно же?

Anton
11.12.2017
12:04:07
Ну т.е. в вашем примере если мы сделаем аспект для логирования и будет в котроллере висеть поинт на него это нарушение, а ивент нет? Моя не понимать

Aleh
11.12.2017
12:04:28
я ваще перестал понимать, что тут обсуждается

Антон
11.12.2017
12:05:16
Mykola
11.12.2017
12:05:23
С помощью чего ты бросишь ивент в контроллере? С помощью диспетчера? А диспетчер от куда ты возьмёшь ?
диспетчер можно себе представить как реализацию асинхронного возвращения результата работы контроллера

Google
Mykola
11.12.2017
12:05:31
а не как продолжение флоу

Aleh
11.12.2017
12:06:18
также можно представить и любой вызов метода

короч ладно, я все)

Антон
11.12.2017
12:06:48
Mykola
11.12.2017
12:11:19
чуть позже, надо уехать срочно

Антон
11.12.2017
12:12:10
чуть позже, надо уехать срочно
Жду ответа, как соловей лета:)

Mykola
11.12.2017
13:35:03
я тут, ща вам обьясню на пальцах

Admin
ERROR: S client not available

Mykola
11.12.2017
13:36:03
почему DI не решает задачу IoC очень просто можно понять на примере внешнего вызова сервиса, который может упасть

у нас например кейс логировать действия юзера, для аналитики

если этот сервис, скажем, заинжектить в контроллер, а потом вызвать, то надо заворачивать в try-catch

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

вот вам на лицо нарушение ioc

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

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

Mykola
11.12.2017
13:47:57
тут же вопрос кто владеет интерфейсом

Google
Mykola
11.12.2017
13:49:07
если этот safe-интерфейс живет в фреймворке, то это надо для каждого внешнего вызова такое создаавать, и декорировать там, и.т.д, очень много бойлерплейта

а диспатчер если накрылся - то это фреймворк накрылся, можно падать)

но я хз как реализовать диспатчер, чтоб он падал

Alexey
11.12.2017
15:04:05
Всем привет. А никто не кинет статьей на Хабре про проектирование рест апи? Там ещё запуск ракеты был в примерах. Давно смотрел, сейчас хочу перечитать, но не нашел сходу

Борис
11.12.2017
15:05:56
Кто тут спец по английским терминам? "Атомарная операция" как Linearizability это норм? https://en.wikipedia.org/wiki/Linearizability

Bohdan
11.12.2017
15:20:39
во-первых (не вчитывался еще) linearizability - это свойство то есть, это может быть "атомарность"

Sergey
12.12.2017
07:02:41
Всем привет. А никто не кинет статьей на Хабре про проектирование рест апи? Там ещё запуск ракеты был в примерах. Давно смотрел, сейчас хочу перечитать, но не нашел сходу
rest api не бывает. А так - почитай что такое идемпотентность, какие http verbs обязаны быть идемпотентными, ну а дальше смотри какие-нибудь стандарты вроде json api для примера форматов респонсов. Ну или не заморачивайся и делай тупо http api так как тебе удобно. Или вообще graphql бери

Alexey
12.12.2017
07:17:23
Все конечно хорошо, но я вроде задал вполне конкретный вопрос - не смог найти статейку. Я же не уточнял что именно ищу в ней

Sergey
12.12.2017
07:18:25
и лучше разобраться с тем что такое идемпотентность и как она аффектит клиент

Alexey
12.12.2017
07:21:28
окей

Mykola
12.12.2017
07:39:27
мы про DI или про DIP?
Пардон. Я имел ввиду декоратор. Ну как "safe-интерфейс" не в смысле интерфейса

Alexey
12.12.2017
08:29:14
> Или вообще graphql бери jsonrpc

Sergey
12.12.2017
08:30:05
Alexey
12.12.2017
08:43:05
Если бы гуглом нашел - тут не спрашивал)

Alexey
12.12.2017
08:43:23
первая же ссылка

Alexey
12.12.2017
08:44:07


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