|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
Для чего нужны callback-функции10.04.2009, 17:55. Показов 87505. Ответов 103
Метки нет (Все метки)
0
|
|
| 10.04.2009, 17:55 | |
|
Ответы с готовыми решениями:
103
|
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
|
| 28.07.2022, 13:38 | |
|
Так вот возвращаясь к collback функциям. Имхо они делают код не читаемым, тут надо поиметь дан по чтению кода чтобы понять как они работают. Это великолепный инструмент для программистов 1960 годов наверняка сотни статей в журналах и книгах написано какой это прорыв в индустрии. Но по мне сейчас это жуткая архаика.
0
|
|
|
Неэпический
|
|
| 28.07.2022, 13:40 | |
|
0
|
|
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
||
| 28.07.2022, 13:44 | ||
|
0
|
||
|
фрилансер
6506 / 5757 / 1134
Регистрация: 11.10.2019
Сообщений: 15,405
|
||
| 28.07.2022, 13:48 | ||
|
0
|
||
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
|||
| 28.07.2022, 13:54 | |||
|
Это то самое на что и постепенно будет переходить индустрия только вывернутое наизнанку всеми потрохами своей сложности и доступное только после освоения всех томов и наслоений предыдущих разработок. Вот например сейчас сходу после 5 часов изучения темы микросервисов я не могу написать ни одной строчки работающего кода таком стиле. Добавлено через 4 минуты Заменить колбеки на лямбда выражения это что то страшное. :-)
0
|
|||
|
Неэпический
|
||||
| 28.07.2022, 13:59 | ||||
![]() ![]() Так у нас и появятся callback-микросервисы. Дожили...
0
|
||||
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
||
| 28.07.2022, 14:14 | ||
|
Команду Serail.print не нужно реализовывать в железе она обеспечивает базовое использование возможностей от которого вы можете плясать в глубину. Если это продвижение в освоении предусмотрено то вы быстро дойдете до самой глубины и потрогаете процессор за его биты и байты. Если же нет дефолтного доступа к возможностям то вас ждут годы осовения информации прежде чем вы сможете в своей программе сделать элементарные вещи. Вот в аруино можно делать сразу а в qt нужны недели.
0
|
||
|
Неэпический
|
||
| 28.07.2022, 14:16 | ||
![]() Вот не вижу в Arduino системы, которая из коробки умеет забивать гвозди. А молоток умеет сразу. И не поверите, в Arduino тоже нельзя сразу взять и сразу научиться сим-картами манипулировать - нужно, как минимум, написать обертку, чтобы просто и удобно работать.
0
|
||
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
||
| 28.07.2022, 14:19 | ||
|
0
|
||
|
фрилансер
6506 / 5757 / 1134
Регистрация: 11.10.2019
Сообщений: 15,405
|
||
| 28.07.2022, 14:20 | ||
|
Никакой дополнительной нагрузки на железо не будет, всё то же самое можно было делать ранее 2011 года. Нагрузка была на голову и пальцы программиста
0
|
||
|
Неэпический
|
||
| 28.07.2022, 14:23 | ||
|
Банально. Хотим вывести информацию на вот это вот устройство вывода. Микросервис должен будет из коробки поддерживать все существующие и будущие устройства? Или ему всё-таки можно будет передавать микросервис-драйвер, который умеет работать с устройством?
0
|
||
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
|||
| 28.07.2022, 14:55 | |||
|
Что касается сим карт. Подключение работа с сим картами весьма сложная процедура. И сложная она именно потому что те люди которые пишут библиотеки для gsm устройств c сим картами и для прочих устройств никогда не утруждают себя созданием дефолтного пути для пользователя. Они требуют обязательно сразу ввести все настройки (включая те которые они сами не знают как работают) требуют знание особенностей работы сотовой сети и протоколов связи. В этом и проблема. Я не могу пользоваться отпракой СМС до тех пор пока не узнаю целую кучу информации которая по большей части мне никогда не понадобится и 99 процентов настроек не будут меняться вообще никогда. Есть ещё старая проблема. Почему устройства сами не содержат драйверы? Уже 20 лет как флеш память стала дешёвой и разместить 512 мегабайт памяти для драйверов на разные ос на самой например видеокарте не представляет проблемы. То есть по идее все современные устройства могут иметь полный универсальный и исчерпывающий вариант plugnplay. Вы воткнули неизвестное устройство в систему, и оно тут же в известном месте и в известном виде публикует информацию о себе и список драйверов для разных ос. Более того устройство на чистейшем человеческом языке может написать кто оно такое кто его сделал серийный номер и адрес сайта производителя и даже мануал . И без всяких там id div и прочего птичьего языка который был нужен когда в устройстве было 8 байт перезаписываемой памяти. Добавлено через 15 минут Оно в ос так и работает только протокол связи в том же windows никому не известен а если и известен то нет дефолтного пути, при попытке обратиться к какому то устройству ввода-вывода вас ждёт "бланк заявления " который вы должны заполнить в лучших традициях офлайновой бюрократии. Вы должны не только описать что вам нужно в терминах самого этого устройства но и как в гос учреждении нужно знать по каким дням оно работает когда у него переучет и что вдруг кто то в отпуске а там внутри ещё есть дядечка к которому свой протокол общения потребуется. По сути в современном программировании реализована чудовищно разросшаяся бюрократия между программными модулями по сравнению с которой проще лицензию на ядерную бомбу получить в правительстве китая чем вывести смайлик из 10 пикселов на экран компьютера
0
|
|||
|
Неэпический
|
||||||
| 28.07.2022, 14:58 | ||||||
![]() ![]() ).Здесь же всё как всегда. Из одного рупора кричат, - "поставьте флешку и дайте дрова с устройством", а из соседнего - "нахрена мне эти дрова на устройстве?" Как только вы в один микросервис отправите "имя" ("номер", "идентификатор", "путь", ...) другого микросервиса и первый микросервис начнет что-то делать через второй - вы получите микросервис обратного вызова.
0
|
||||||
|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
|||
| 28.07.2022, 15:19 | |||
|
Вот вам пример общения с ос как он фактически выглядит:
пользователь: хочу вывести смайлик на экран ос: нихт ферштейн ERROR UNDEFINED COMMAND напечатай вот эти пикселы вот тут. нет у нас пикселов есть байты. И нет тут. Ну у вас же есть экран? Незнаю. А что есть? 10 тысяч строк ответа. А есть устройство графического вывода? есть. Какое вам надо. Любое. Конкретно. Все. Конкретно. Ок какие есть Вот они:шцарыулдрамржф А что как с ними общаться ? Ищи книги. Ок устройство вывод № 4 тыт тут? Да Выведи пиксел с такими координатоами. Заполните сначала бланк там 42 позиции. А как? Читай книгу. Заполнил выводи пиксел. Ок Ну и где он? Незнаю читай книгу. Добавлено через 8 минут Во вторых в итоге на боле глубоком уровне конечно же код может получиться точно такой же как при использовании колбеков или ООП или процедурного подхода и чего угодно. Тут главное то на сколько просто это все создается и насколько наглядно, и насколько эффективно оно работает. На мой взгляд с микросервисами все гораздо проще. Собственно потому все постепенно к ним и идет. Добавлено через 4 минуты Ос не должна этим заниматься. Она должна спросить ваше устройство хочет качнуть драйвер разрешить ему лезть на сайт за дровами да нет?
0
|
|||
|
|
|
| 28.07.2022, 15:20 | |
|
Тут все накинулись на Святогор, но он говорит разумную вещь. Поясню.
Я начинал программировать на С++ в школе, Комп.класс у нас был под чистым досом (винда тоже была для изучения офисных приложух, но программировать лучше было под настоящим досом, чтобы не ждать пока майкрософт Студия на стареньком компе загрузится(а может повесит его наглухо)) Так вот там программирование давалось очень легко как раз благодаря тому что не надо было тратить несколько лет в консольных приложениях, пока не изучишь С++. У Досовского Борланд С++ были библиотеки т.н. Borland Graphics Interface позволяющего включить граф.режим одной командой. И набором простых команд рисовать круги, эллипсы, прямоугольники, произвольные полигоны и.т.д. ни разу не задумываясь о создании окна, обработке сообщений, сохранении всяких дескрипторов рисования, ну или в случае доса о генерации прерываний. Благодаря этому программирование учить было просто. Хочешь нарисовать солнышко - думаешь только о том, на какой синус умножить координату лучика в цикле, а не о том, как блин этот лучик хранится в видеопамяти! Сейчас же все школьники просто вынуждены учить С++ в консоли, а на вопрос про графику им отвечают "вот изучишь С++, шаблоны, ООП, паттерны сможешь перейти в QT, там тоже изучишь сигналы, слоты и.т.д. или изучим OPenGL его машину состояний, шейдеры, загрузку в видеопамять, а потом будем рисовать солнышко"
0
|
|
|
Неэпический
|
||
| 28.07.2022, 15:23 | ||
|
Я вот помню с DirectDraw на VB6 познакомился. С понятиями 3D на Blitz3D (там тоже VB-подобный синтаксис). Основные понятия, алгоритмы, структуры данных - всё это до C++ было по большому счету. Даже WinAPI изучался до С++. Конечно, если сразу наскоком пытаться всё и сразу понять, взяв при этом максимальную сложность - так не бывает. А вот я еще помню тот момент когда узнал, что в VB6 есть типы и как ускорилась программа, когда я её переписал указывая нужные типы у переменных.
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 28.07.2022, 15:52 | ||
|
Например, считаем танчику физику - вначале для левой гусеницы, потом для правой. А из другой части программы забираем, на сколько сместилась каждая из них. Ну вот по поводу связей - если смотреть "очевидный случай" - просто бери и получай. А теперь посмотрим внимательнее - и получим, что в некоторых случаях одна гусеница прошла цикл расчёта, а другая не прошла, а в остальных случаях обе гусеницы прошли цикл. Итого танчик будет дёргаться то влево, то вправо. Для решения этой проблемы нужно синхронизировать моменты, когда мы можем забирать смещения обоих гусениц, а когда нельзя. При этом тут опять же возникнет сложность - останавливать остальную программу, пока вторая гусеница просчитается (это приведёт к лаганию) или не обновлять смещения вовсе (тогда, если неудачно будем каждый раз попадать на неудачный момент, когда одна из гусениц ещё не посчиталась, а вторая посчиталась, танчик будет стоять), или например сделать очередь из последних рассчитанных смещений и брать последнее. А используя очередь, снова попадаем к тому же моменту что новые положения гусениц добавились в очередь полностью или не полностью... В общем это не очевидно и это не тривиально. И свести это к тривиальному нельзя.
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 28.07.2022, 16:01 | |
|
Croessmah, смещение бывает не только линейным, но и по окружности. В случае гусеницы, по которой катками едет танк - получается близкое ко второму.
0
|
|
|
Неэпический
|
|
| 28.07.2022, 16:04 | |
|
TRam_, да я понял о чем вы, но страшность зрелища это никак не уменьшает.
0
|
|
| 28.07.2022, 16:04 | |
|
приведите пожалуйста реальный прмиер: для чего нужны дружественные функции?
callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? Для чего нужны интерфейсы? Для чего нужны указатели? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|