powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / connect(): слоты и сигналы
25 сообщений из 130, страница 4 из 6
connect(): слоты и сигналы
    #39998492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ так по 5 лет учатся на синьоров и еще 10 лет работают и все равно ошибки делают.

Вот поэтому я и не заморачиваюсь на "макросы v2 aka templates" и пишу на "Си с объектами",
добивая недостающее дизайном.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998496
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravДавайте напишем на std::function и сравним. Там всё будет непохоже.

Что, разница действительно настолько велика? Ну ничего, к какому-нибудь С++22 комитет таки
сделает самоочевидный шаг от "pointer to member" к "pointer to member of object".

Лень компилировать но быстрее уж так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
typedef std::function<void()> TNotifyEvent;

class PushButton
{
public:
   TNotifyEvent OnClick;
};

MyButton.OnClick = std::bind(&MyClass::MyMethod, this);


И да, это совершенно не похоже на код Борланда. Это больше похоже на мой класс выше: Command.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998498
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Ну, если в Qt или шарпе, событие в потоке отправил и голова не болит.
Всё будет разрулено.
То в плюсах еще попотеть надо).

Получается что язык не приспособлен для некоторых вещей. Или они делаются
через страшные танталовы муки. Кстати забавный факт. Каждый хочет написать
свою нетленку в виде фреймворка который аки золотая пуля бъет в цель и решает
все текущие проблемы. Но что-то я не видел чтоб эта нетленка в гитхабе выходила
хотя-бы на уровень выше 100 форков или столько же использований.

Qt - отдельная тема. Он создавался как коммерческий продукт. Стало-быть
была железная мотивация к тому чтобы сорцы хотя-бы тестами покрыть.
А это немаловажно.

Остальная нетленка - остается уделом гаражных поделий.

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии
чем технологии.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998505
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПолучается что язык не приспособлен для некоторых вещей. Или они делаются
через страшные танталовы муки.

При чём тут язык-то? Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а
потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет
осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет.

И, внезапно, будет ли это называться Qt, VCL или WinForms - тоже совершенно без разницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998511
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

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

Интересно было бы увидеть какое-то приземлённое сравнение-пример.

Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998534
Dimitry Sibiryakov
Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а
потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет.

в C++ много чего изобретать даже не надо, уже всё есть
petrav
Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.

можно ещё вспомнить PHP, Haskell, Python :)
"мыслить в ООП стиле" - стоит весьма существенных байтов памяти и тактов процессора
каждому своё
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998540
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть. Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки!
Silverlight приплыл, классический ASP приплыл, даже ADO и тот приплыл. Следуя линии развития Microsoft, даже удав сломает себе шею.
mayton
Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++. Это если геймдевом заниматься.
Есть еще обоснование: надо писать программу с пользовательским интерфейсом под Linux, но Java и Lazarus использовать не разрешают. И тут остаются два варианта: или UI на С++ или веб-морда (но это совсем грустно).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998587
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.
Есть такое дело.
С одной стороны, есть фраза что опытному прогеру пофиг на чем писать.
С другой стороны, паттерны решения Button.onClick = binding везде разные)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998659
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

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

Интересно было бы увидеть какое-то приземлённое сравнение-пример.

Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.

Мне просто бесконечно жаль сишников которые тратят уйму времени на псевдо-архитектурные
вопросы. Как-то кодовые страницы и управление памятью. А когда доходит дело до шаблонов
проектирования - у сишника висит чугунная гиря на ноге. Это менеджмент памятью. Сишник
постоянно думает о том как он уберет память после того как реализация шаблона будет не нужна.
Это - замедляет процесс архитектурирования. Сишник как-бы боится использовать шаблон.
Он боится утратить контроль. Но ребята как-же реализовывать пулы, синглтоны и внедрение
зависимостей?

Некоторые утилитарные вещи, такие как файловый итератор по дереву каталогов - в других
языках очень легко (за считанные минуты собираются в готовые решения), в С++ - вызывают
мучения интеллегенстского толка. Кажется что девелопер уже из принципа хочет это сделать
так хотя на перформанс всего приложения в целом оно не влияет аж никак.

Посмотрите в смежном топике мы сломали сколько копий и исписали столько бумаги просто
чтобы ОБОЙТИ гребаный каталог файлов! И мы еще пол-дня думали какого размера буфер
выделить. Это в 21 веке. В веке ИИ у нас осталась проблема времен первых ЭВМ.
Что не могли авто-детектировать размер по потребности? Если не могли - то почему?

Почему только я спрашиваю подобные вопросы. У вас у самих таких вопросов не возникает?
Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998687
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
....Я спрашиваю почему сапожник без сапог?


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

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



(круглый)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998697
mayton
Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог?

в смежном топике вы обход делали на C...
в 21м веке на C++ нет либ для обхода каталога файлов?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998705
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998723
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ говорю не о либах а о практике применения либ.

Ну давай посмотрим... В RT11 не было библиотеки чтения каталогов. В Linux она есть и ею
активно пользуются. По-моему практика налицо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998760
mayton
Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел).

а мне показалось, там человек учился программировать... писал с нуля своё
в целом спад кол-ва mystring.h на лицо
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999783
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А мне кажется что тема - еще одно мета-программирование на С++.

Интересно было бы узнать что такое «мета-программирование на С++»?

Что вы под этим понимаете?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
А мне кажется что тема - еще одно мета-программирование на С++.

Интересно было бы узнать что такое «мета-программирование на С++»?

Что вы под этим понимаете?

Ну это когда в каком-то языке X у тебя есть косвенный способ воздействия на результирующий код.
Такая себе трансформация кода ДО компилляции. Например в сях есть макро-процессор. И процессор
шаблонов которые решает какой вид функции и с какими типами ему собрать. В Java есть процессор
аннотаций. Тоже трансформирует исходник в другой код. Это кстати основная тема срачей в Java.
Именно во что превратит код та или иная аннотация в совокупности с 1 или более чем одним
процессингом этих аннотаций. В Lisp тоже есть своя тема макросов. Но до этого левла я еще не дошел.

Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой
макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999800
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник
заранее неизвестного класса-параметра со всеми методами, переопределёнными по
определённому шаблону? То есть, например:
Код: sql
1.
2.
3.
4.
5.
class Base
{
   void foo() = 0;
   int bar(const char*) = 0;
};


И темплейт (например Implement<Base>) на выходе автоматически имеет
Код: sql
1.
2.
3.
4.
5.
class ...: Base
{
   void foo() override {}
   int bar(const char*) override { return 0; }
};


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999809
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой
макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Ну вот тут момент есть: как отличить программирование на шаблонах от шаблонного мета-программирования?
Если это одно и тоже, то это как-то не очень интересно и не круто выходит. :) В этом загвоздка!

Я слышал два прочтения понятия мета-программирования:

- Программирование не в термина данных, а в терминах данных о данных.
- Программа порождает другую программу (кодогенератором или C++ шаблонами).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999871
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

- Программирование не в термина данных, а в терминах данных о данных.
- Программа порождает другую программу (кодогенератором или C++ шаблонами).

Я-бы различал мета-программирование и кодо-генерацию.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999937
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник
заранее неизвестного класса-параметра со всеми методами, переопределёнными по
определённому шаблону? То есть, например:
Код: sql
1.
2.
3.
4.
5.
class Base
{
   void foo() = 0;
   int bar(const char*) = 0;
};


И темплейт (например Implement<Base>) на выходе автоматически имеет
Код: sql
1.
2.
3.
4.
5.
class ...: Base
{
   void foo() override {}
   int bar(const char*) override { return 0; }
};



Не представляю зачем такое было бы нужно. А вам какую задачу нужно решить?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999944
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravА вам какую задачу нужно решить?

Есть API на абстрактных классах. Требуется сделать обёртку к нему, каждый метод которого
вызывает соответствующий метод предка, проверяет код возврата и выбрасывает исключение при
необходимости.

Можно, конечно, это написать и ручками, но а) лень, б) придётся менять код в нескольких
местах при изменении базового API.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999956
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая штука. AOP.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под Java мы когда-то юзали Aspect-J, и похоже в сях есть ее брат-близнец https://www.aspectc.org/Documentation.php
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000116
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть такая штука. AOP.
проблема что эта штука чаще используется в веб чем в десктоп
А в плюсы не веб язык.
авторПри работе над кодом со сквозной функциональностью, возникают проблемы, связанные с ограничением модульности. Поскольку «поперечное» поведение реализуется разрозненно, разработчики находят такое поведение затруднительным в осмысливании, реализации и изменении. Код для ведения журналов, например, переплетается с кодом, отвечающим в основном за что-либо другое.
Вот эта проблема из за которой появился AOP не так часто встречается в десктопе.
Поэтому java и ушел в метапрограммирование, спринг и конфигурастов программистов.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000118
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

авторПримерами сквозной функциональности, как мы уже видели выше, могут служить:
логирование,
обработка транзакций,
обработка ошибок,
авторизация и проверка прав,
кэширование,
элементы контрактного программирования.
https://habr.com/ru/post/114649/
Вот эти проблемы в основном построения веб приложения.
Не пишут в java уже давно
ClassA a = new ClassA()
AOP кругом))) и 200 аннотаций над методом)))
...
Рейтинг: 0 / 0
25 сообщений из 130, страница 4 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / connect(): слоты и сигналы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]