Russian Qt Forum
Ноябрь 22, 2024, 12:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Тестовое задание на программиста С++/Qt компания некстерс
Страниц:
1
[
2
]
3
4
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Тестовое задание на программиста С++/Qt компания некстерс (Прочитано 49324 раз)
nsxwrs
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #15 :
Сентябрь 03, 2016, 19:58 »
Цитата: ViTech от Сентябрь 03, 2016, 14:43
Чтобы "программист GUI" этот самый GUI не развалил
, особенно если там многопоточность присутствует.
При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #16 :
Сентябрь 03, 2016, 20:39 »
Цитата: gil9red от Сентябрь 03, 2016, 17:51
Цитата: xokc от Сентябрь 03, 2016, 16:13
Цитата: nsxwrs от Сентябрь 02, 2016, 15:57
Какие преимущества взаимодействия объектов через сигнал-слот по сравнению с callback функциями (передача указателя на функцию другого объекта)? По-моему никакого, но некоторым удобнее форма записи. Требуют другого объяснения.
Я бы этим вопросом и ограничился. Впрочем и ответом кандидата тоже, в смысле того, что он бы мне не подошёл
Объясните тогда, какой ответ вас бы устроил
Устроил бы ответ в стиле "между этими понятиями вообще мало общего" и последующее обсуждение про циклы обработки событий, взаимодействие потоков и однопоточность GUI. А ответ в стиле того, какой дал кандидат свидетельствует о том, что он вообще не понимает смысла системы сигнал/слот. Такой бы для решения МОИХ задач бы не подошёл.
«
Последнее редактирование: Сентябрь 03, 2016, 20:41 от xokc
»
Записан
nsxwrs
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #17 :
Сентябрь 03, 2016, 21:24 »
Цитата: xokc от Сентябрь 03, 2016, 20:39
А ответ в стиле того, какой дал кандидат свидетельствует о том, что он вообще не понимает смысла системы сигнал/слот. Такой бы для решения МОИХ задач бы не подошёл.
Бесполезно спорить с религиознымии фанатами. В каком священном писании описан этот смысл?
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #18 :
Сентябрь 03, 2016, 21:33 »
Цитата: nsxwrs от Сентябрь 03, 2016, 21:24
В каком священном писании описан этот смысл?
Ни в каком. Я нуждаюсь в коллегах, не пересказывающих "писания", а способных самостоятельно разбираться в основных концепциях используемых в команде инструментов. И в этом я с теми людьми, который проводили это собеседование, вполне солидарен.
Цитата: nsxwrs от Сентябрь 03, 2016, 21:24
Бесполезно спорить с религиознымии фанатами.
Тут, безусловно, соглашусь. Потому дальше продолжать общение в выбранном Вами тоне не буду, тем более, что смысла мы оба в этом не видим.
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #19 :
Сентябрь 03, 2016, 21:41 »
Цитата: nsxwrs от Сентябрь 03, 2016, 19:58
При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Да, GUI однопоточный, но это никак не мешает ему взаимодействовать с другими потоками процесса. Собственно, уровень понимания этого взаимодействия и пытались у вас узнать, как мне кажется.
Записан
Пока сам не сделаешь...
qate
Супер
Offline
Сообщений: 1177
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #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
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #21 :
Сентябрь 03, 2016, 22:23 »
Цитата: nsxwrs от Сентябрь 03, 2016, 19:54
Ты же сигнал в хидере прописываешь.
И что? Сигнал в хедере - это макрос для 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
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #22 :
Сентябрь 03, 2016, 22:54 »
Цитата: ViTech от Сентябрь 03, 2016, 21:41
Цитата: nsxwrs от Сентябрь 03, 2016, 19:58
При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Да, GUI однопоточный, но это никак не мешает ему взаимодействовать с другими потоками процесса. Собственно, уровень понимания этого взаимодействия и пытались у вас узнать, как мне кажется.
У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
Записан
nsxwrs
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #23 :
Сентябрь 03, 2016, 22:55 »
Цитата: qate от Сентябрь 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
В википедии и не то напишут. Вот такие люди, начитавшиеся википедии, считают себя самыми умными.
«
Последнее редактирование: Сентябрь 03, 2016, 22:57 от nsxwrs
»
Записан
nsxwrs
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #24 :
Сентябрь 03, 2016, 23:00 »
Цитата: Racheengel от Сентябрь 03, 2016, 22:23
Qt-шная метасистема избавляет от этого геморроя
Система сигнал-слот создаёт дополнительное удобство. Программист в результате пишет немного больше строк полезного кода в единицу времени. Я в этом духе и сказал им, но требуют другого ответа.
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #25 :
Сентябрь 04, 2016, 01:43 »
Цитата: nsxwrs от Сентябрь 03, 2016, 22:54
У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
Какие альтернативные варианты межпоточного взаимодействия для объектов Qt? Их плюсы и минусы относительно сигнал-слот? Насколько удобно их использовать в Qt GUI?
Записан
Пока сам не сделаешь...
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #26 :
Сентябрь 04, 2016, 02:04 »
Цитата: nsxwrs от Сентябрь 03, 2016, 22:54
У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
"Исключительно" через сигнал-слот - это глупость.
Это лишь один из возможных вариантов.
Один поток, например, может иметь очередь объектов, а второй будет ее последовательно вычитывать.
Тут сигнал-слот особо не поможет. Особенно если потоки должны работать асинхронно.
Записан
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
Сообщений: 11445
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #27 :
Сентябрь 04, 2016, 09:19 »
Цитата: nsxwrs от Сентябрь 03, 2016, 22:54
У меня требовали объяснения почему взаимодействие потоков должно быть исключительно через сигнал-слот.
Вы с этим согласны и почему?
Ну "исключительно" - это уж слишком. Но да, сигнал/слот предоставляет легкий и удобный способ взаимодействия потоков. Вот недавно мелькала такая задача
Нитка 1 получила (или создала) картинку (QImage) и должна передать ее в UI для отрисовки. С помощью слот/сигнал это делается одним движением, напр
Код
C++ (Qt)
signals
:
void
SendImage
(
QImage
image
)
;
Попробуйте достичь того же без сигнал/слот. Это возможно, но отнюдь не просто
Записан
Bepec
Гость
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #28 :
Сентябрь 04, 2016, 09:55 »
Сигнал слоты упрощают работу между потоками, классами, раз эдак в 10. При этом Qt не исключает и старые способы взаимодействия. Так что очень легко можно соединить оба подхода.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Тестовое задание на программиста С++/Qt компания некстерс
«
Ответ #29 :
Сентябрь 04, 2016, 10:17 »
Цитата: nsxwrs от Сентябрь 03, 2016, 19:58
При том, что они сами сказали что GUI всегда однопоточный и спросили почему.
Это "всем известно" но никто не знает "почему". Во всяком случае неубогое Вындоуз может создавать окна в др потоке.
Записан
Страниц:
1
[
2
]
3
4
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...