Войти
ПрограммированиеФорумОбщее

Простая система событий на С++11 (комментарии) (4 стр)

Страницы: 13 4 5 68 Следующая »
#45
8:48, 10 дек. 2015

0r@ngE

Повторно предлагаю сделать альтернативный вариант с слушателями

#46
12:52, 10 дек. 2015

0r@ngE
> Будут конструктивные замечания к коду?
Я уже написал вам конструктивные замечания, а вот насколько вы конструктивно
приняли к сведению эти замечания, это уже другой вопрос.

> Покажите мне систему в которой не надо этого делать
То есть у вас даже нет представления о том, что такие системы существуют и как они реализованы?

> Ибо данная система писалась из расчета на асинхронность в будущем
Кривые отмазки не принимаются.

#47
16:33, 10 дек. 2015

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

На более-менее конструктивные я ответил. Как по вашему я должен отвечать на пункт "это все говнокод и мне не нравицца" ?  Я и так максимально сдержанно ответил.

Hybernaculum
> То есть у вас даже нет представления о том, что такие системы существуют и как они реализованы?

Вы не уходите от темы. В качестве обвиняющей стороны выступили вы - от вас и должны идти аргументы на которые мне надо будет отвечать.
Но повторюсь - покажите мне систему в которой этого не надо делать.  Понятно что это можно спрятать и делать неявно (как в Qt), но все равно это происходит.

Hybernaculum
> Кривые отмазки не принимаются.

И что такого кривого в асинхронности? Еще раз повторою для тех кто не читал текст статьи - прелесть данного подхода в "бросил ивент и забыл".
Если вам надо получать ответ - это уже есть некий контракт между вызывателем и получателем, используйте другие подходы.

Странные люди на ГД.ру - если чье-то решение конкретно под его задачу не подходит - решение говно и вообще все убейтесь...

#48
17:44, 10 дек. 2015

0r@ngE
> Понятно что это можно спрятать и делать неявно (как в Qt), но все равно это происходит.
Отписываться от событий "вручную" в каждом классе тупо неудобно и даже потенциально опасно, если учесть т.н. человеческий фактор.

> И что такого кривого в асинхронности?
Не надо прикрывать "асинхронностью" свою некомпетентность.

> прелесть данного подхода в "бросил ивент и забыл"
В вашей текущей реализации системы эвентов асинхронностью даже и не пахнет,
raise_event не возвращает управление пока не раздаст евенты всем подписчикам.

> это все говнокод и мне не нравицца
Это ваши слова.

> Если вам надо получать ответ - это уже есть некий контракт между вызывателем и получателем
В большинстве реальных задач желательно иметь возможность получать ответ от подписчика.

#49
18:09, 10 дек. 2015

Hybernaculum
> Не надо прикрывать "асинхронностью" свою некомпетентность.

Вы бы аккуратнее словами разбрасывались.  Если у вас плохо со зрением, то я в статье упоминал что это ЛИШЬ ПРИМЕР, и планируется расширять до RPC.
О какой некомпетентности идет речь?  Если вам надо получать результат - это всего лишь дополнительный параметр шаблона, и все.

Hybernaculum
> Это ваши слова.

А как мне понимать абстрактный высер типа
> 3. Много лишних сущностей, выделений памяти и синтаксического мусора

Hybernaculum
> В большинстве реальных задач желательно иметь возможность получать ответ от подписчика.

В моих РЕАЛЬНЫХ задачах такой потребности нет.  Если в ваших есть - добавьте, код под PD.
Не нравится код - пишите свой, ради бога.


И перестаньте скатываться на личности, как минимум это непрофессионально, как максимум - попахивает школоло.

#50
18:10, 10 дек. 2015

0r@ngE
Расскажешь как подписать на одно событие два подписчика?

понял задумку

#51
18:37, 10 дек. 2015

в общем не благодари

+ Показать

#52
18:39, 10 дек. 2015

0r@ngE
> как мне понимать
Как написано, так и понимать и не надо ничего выдумывать.

> И перестаньте скатываться на личности
Где вы видели чтобы я обращался к вам как к личности? :)

> В моих РЕАЛЬНЫХ задачах такой потребности нет.
Вы запостили статью и код на ГД.ру, то есть для всех, поэтому будьте добры
адекватно воспринимать и реагировать на конструктивную критику.

> Не нравится код - пишите свой, ради бога.
Вы слишком высокого мнения о своём коде, если думаете что я собираюсь его где-то использовать.

#53
19:42, 10 дек. 2015

cNoNim

Что хуже - множественное наследование или 200 строк кода на шаблонах и дефайнах ? :)

#54
19:57, 10 дек. 2015

innuendo
а при множественном наследовании сколько строк кода?

#55
19:58, 10 дек. 2015

cNoNim
> понял задумку
;)

cNoNim
> в общем не благодари
Интересная мысль, спасибо, вечером проверю.
Хоть кто-то с конструктивом, что радует ;)

Hybernaculum
> Вы запостили статью и код на ГД.ру, то есть для всех, поэтому будьте добры
> адекватно воспринимать и реагировать на конструктивную критику.
На критику, особенно конструктивную я всегда только положительно реагирую.
Но то что пишете вы - это не конструктив, а непонятные мне попытки докопаться до автора. (см. ниже)

Hybernaculum
> Вы слишком высокого мнения о своём коде, если думаете что я собираюсь его где-то использовать.
Да ради бога, мне то что.  Я же никому не навязываю, написал и написал статью, авось кому пригодится.
И тут прибегаете вы, весь такой в лучах солнца и начинаете мне рассказывать что это ва не в бок не впилось,
что автор некомпетентен ибо вам лично такой подход к решению задачи не нравится и т.д.
Успокойтесь, выдохните, выпейте водички и пишите дальше свой код.
Судя по вашим постам - вы постоянно пытаетесь кому-то что-то доказать. Технических постов не вижу. Ваше право.
Когда будете готовы к конструктиву - возвращайтесь, с удовольствием обсужу.

#56
20:19, 10 дек. 2015

0r@ngE
та я еще не закончил конструктив...
просто важно что бы ты по этапно все понимал )

+ Показать
#57
20:23, 10 дек. 2015

ну и все расходимся

+ Показать

#58
20:31, 10 дек. 2015

0r@ngE
> На критику, особенно конструктивную я всегда только положительно реагирую.
Что-то незаметно.
Судя по вашим ответам в теме, в том числе и на мою критику, у вас нет ни малейшего желания
что-то менять, добавлять или улучшать в своём, как вы выразились, говнокоде.

> начинаете мне рассказывать что это ва не в бок не впилось
Опять у вас фантазия разыгралась?

> Когда будете готовы к конструктиву
Это вам нужно быть готовым к конструктиву, это ведь ваша статья и ваш,
как вы выразились, "говнокод", которые вы вынесли на обсуждение.

> попытки докопаться до автора
Где вы здесь увидели попытки "докопаться до автора" ?

Неудобная система, как минимум по 3 причинам:
1. Перед удалением объекта требуется вручную отписывать все его функции, ранее подписанные на события
2. Нет возможности подписывать функции, которые возвращают значение (порой важно знать, обработал ли объект событие или нет, например в иерархии GUI объектов)
3. Много лишних сущностей, выделений памяти и синтаксического мусора

Всё исключительно конструктивно и по делу.

innuendo
> множественное наследование
Вот это правильное пиво! :)

#59
21:10, 10 дек. 2015

cNoNim
> ну и все расходимся
Если все локально используется - то да, можно расходиться.

Я же уже писал ранее (да и в самой статье тоже), даже специально не удалял из кода EventTrait  ParamsTuple.
Использовать планируется для передачи ивентов по сети. В ParamsTuple захватываются передаваемые параметры, и все это отправляется другому клиенту, где читается,
и благодаря хешу - EventSystem сможет пришедший ивент бросить.

Из невошедшего в код и пример -  deferred events - те что с таймером (хотя я он них вроде уже упоминал).
Т.е. у EventSystem теперь есть Update, и ивенты бросаются если подошло их время.

Страницы: 13 4 5 68 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.