Russian Qt Forum
Ноябрь 22, 2024, 11:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4 5   Вниз
  Печать  
Автор Тема: Тестовое задание на программиста С++/Qt компания некстерс  (Прочитано 49289 раз)
nsxwrs
Гость
« Ответ #15 : Сентябрь 03, 2016, 19:58 »

Чтобы "программист GUI" этот самый GUI не развалил Улыбающийся, особенно если там многопоточность присутствует.
При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #16 : Сентябрь 03, 2016, 20:39 »

Какие преимущества взаимодействия объектов через сигнал-слот по сравнению с callback функциями (передача указателя на функцию другого объекта)? По-моему никакого, но некоторым удобнее форма записи. Требуют другого объяснения.
Я бы этим вопросом и ограничился. Впрочем и ответом кандидата тоже, в смысле того, что он бы мне не подошёл Улыбающийся

Объясните тогда, какой ответ вас бы устроил  Улыбающийся


Устроил бы ответ в стиле "между этими понятиями вообще мало общего" и последующее обсуждение про циклы обработки событий, взаимодействие потоков и однопоточность GUI. А ответ в стиле того, какой дал кандидат свидетельствует о том, что он вообще не понимает смысла системы сигнал/слот. Такой бы для решения МОИХ задач бы не подошёл.
« Последнее редактирование: Сентябрь 03, 2016, 20:41 от xokc » Записан
nsxwrs
Гость
« Ответ #17 : Сентябрь 03, 2016, 21:24 »

А ответ в стиле того, какой дал кандидат свидетельствует о том, что он вообще не понимает смысла системы сигнал/слот. Такой бы для решения МОИХ задач бы не подошёл.

Бесполезно спорить с религиознымии фанатами. В каком священном писании описан этот смысл?
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #18 : Сентябрь 03, 2016, 21:33 »

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

Бесполезно спорить с религиознымии фанатами.
Тут, безусловно, соглашусь. Потому дальше продолжать общение в выбранном Вами тоне не буду, тем более, что смысла мы оба в этом не видим.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #19 : Сентябрь 03, 2016, 21:41 »

При том, что они сами сказали что GUI всегда однопоточный и спросили почему.

Да, GUI однопоточный, но это никак не мешает ему взаимодействовать с другими потоками процесса. Собственно, уровень понимания этого взаимодействия и пытались у вас узнать, как мне кажется.
Записан

Пока сам не сделаешь...
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #20 : Сентябрь 03, 2016, 22:06 »

а почему 7 неоднозначно ?
ведь https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%B8%D1%81%D0%B2%D0%B0%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%A1%2B%2B
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #21 : Сентябрь 03, 2016, 22:23 »

Ты же сигнал в хидере прописываешь.

И что? Сигнал в хедере - это макрос для moc, который пробегает по хедерам и строит эти самые связи "коллбэков". А так бы тебе приходилось в каждом классе заводить мембер типа ISomeCallback *myCallbackPtr, инициализировать его, проверять на нуль, корректно обрабатывать ситуации, когда связанные объекты померли и т.д. Qt-шная метасистема избавляет от этого геморроя Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
nsxwrs
Гость
« Ответ #22 : Сентябрь 03, 2016, 22:54 »

При том, что они сами сказали что GUI всегда однопоточный и спросили почему.

Да, GUI однопоточный, но это никак не мешает ему взаимодействовать с другими потоками процесса. Собственно, уровень понимания этого взаимодействия и пытались у вас узнать, как мне кажется.

У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
Записан
nsxwrs
Гость
« Ответ #23 : Сентябрь 03, 2016, 22:55 »

В википедии и не то напишут. Вот такие люди, начитавшиеся википедии, считают себя самыми умными.
« Последнее редактирование: Сентябрь 03, 2016, 22:57 от nsxwrs » Записан
nsxwrs
Гость
« Ответ #24 : Сентябрь 03, 2016, 23:00 »

Qt-шная метасистема избавляет от этого геморроя Улыбающийся
Система сигнал-слот создаёт дополнительное удобство. Программист в результате пишет немного больше строк полезного кода в единицу времени. Я в этом духе и сказал им, но требуют другого ответа.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #25 : Сентябрь 04, 2016, 01:43 »

У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?

Какие альтернативные варианты межпоточного взаимодействия для объектов Qt? Их плюсы и минусы относительно сигнал-слот? Насколько удобно их использовать в Qt GUI?
Записан

Пока сам не сделаешь...
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #26 : Сентябрь 04, 2016, 02:04 »

У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?

"Исключительно" через сигнал-слот - это глупость.
Это лишь один из возможных вариантов.
Один поток, например, может иметь очередь объектов, а второй будет ее последовательно вычитывать.
Тут сигнал-слот особо не поможет. Особенно если потоки должны работать асинхронно.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #27 : Сентябрь 04, 2016, 09:19 »

У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
Ну "исключительно" - это уж слишком. Но да, сигнал/слот предоставляет легкий и удобный способ взаимодействия потоков. Вот недавно мелькала такая задача

Нитка 1 получила (или создала) картинку (QImage) и должна передать ее в UI для отрисовки. С помощью слот/сигнал это делается одним движением, напр
Код
C++ (Qt)
signals:
void SendImage( QImage image );
Попробуйте достичь того же без сигнал/слот. Это возможно, но отнюдь не просто
Записан
Bepec
Гость
« Ответ #28 : Сентябрь 04, 2016, 09:55 »

Сигнал слоты упрощают работу между потоками, классами, раз эдак в 10. При этом Qt не исключает и старые способы взаимодействия. Так что очень легко можно соединить оба подхода.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #29 : Сентябрь 04, 2016, 10:17 »

При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Это "всем известно" но никто не знает "почему". Во всяком случае неубогое Вындоуз может создавать окна в др потоке.
Записан
Страниц: 1 [2] 3 4 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.079 секунд. Запросов: 23.