?

Log in

 
 
01 November 2016 @ 10:30 pm
Сложность GUI. Медитативно-троллинговое.  
Мне, как программисту и разработчику компьютерных игр приходится немало писать кода на работе. А еще часто приходится слышать и наблюдать, как какая нибудь простая фича выливается в огроменное количество кода. Это получается из за сложных и противоречивых требований (не буду углубляться в причину возникновения такой ситуации). Естественно на работе используется C++11 с кучей новых фич. С GUI библиотекой, и т.д. и т.п.

Но еще пишу дома свой pet-project, на C (без плюсов). И там тоже есть главное меню. Код меню выглядит как-то так:


Здесь нет виджетов, нет сообщений и обработчиков сообщений. Но это меню, и оно работает.

PS: Да, надо будет добавить еще status bar с хелпом о каждом пункте. Это будет еще 6-7 строчек кода. Возможно даже в отдельной функции...
 
 
 
valmacvalmac on November 1st, 2016 10:23 pm (UTC)
почему нет обработчиков сообщений ?
чем вызвано такое решение ?
balmerdxbalmerdx on November 2nd, 2016 07:01 am (UTC)
А почему они должны быть? Думаешь количество кода уменьшится? Или он проще станет?

Там есть 3 пункта, и скорее всего больше не добавится. Но даже если предположить маловероятное - а именно добавление четвертого пункта - код все равно не станет слишком сложным.

Но при этом естественно в большом проекте все пишется совершенно по другому. Обязательное разделение кода логики, GUI и данных. Поэтому даже окно, которое ничего не делает будет состоять из значительно большего количества кода и данных. Навырост.
alll: шушпанчикalll on November 2nd, 2016 12:45 am (UTC)
Ну да, конечно, сделать двумерный массив действие[состояние][событие] вместо зайчатка каши из ифов именно c++ богомерзский мешает. :)

Кстати, а велик ли пет-проект сейчас и до какого примерно размера его вырастить планируется?
balmerdxbalmerdx on November 2nd, 2016 07:05 am (UTC)
Ну смотря как считать. Это мой векторный анализатор. Кода там примерно 500 Кб. Есть часть на STM32, и есть часть под Linux/Windows на QT. Основной код уже написан, но работы дохренища. Надо спроектировать новые версии плат. Переделать интерфейс под дисплей большего разрешения. Красиво и технологично упихать все в коробочку, чтобы сделать несколько экземпляров.
(Anonymous) on November 2nd, 2016 12:26 pm (UTC)
А, ну тут вполне можно включить капитана О и торжественно объявить, что пока проект целиком помещается в одну голову и существенный рост команды не планируется, то архитектурка в нём заметной роли не играет.