Evgeny_CDАрхитектор (05.04.2009 19:19, просмотров: 208) ответил =AlexD= на А, в этом смысле... ну я б тоже не отказался, но не стал бы забанивать С++. Т.е. некая библиотека со свободной лицензией в исходниках + продвинутый конструктор форм. Это было б кучеряво.
Спор о С++ или его неприятии оставим пока. Просто некий способ гарантированной работы приложения под Win32. http://www.i2r.ru/static/374/out_16829.shtml
В идеале вообще без runtime. -> нечто есть на тему.
Цель проста.
Максимально отвязаться от ОСи. Вся ОСь для неспецифичных приложений - это некий структурированный набор API. В общем-то, не такой и страшный. Если его давать бедному программеру не виде списка на 10к функций, а в виде вложенных уровней иерархии.
Если писать некие специфичные для ОСи приложения, использующие фишки этой ОСи - тут нас забыли спросить.
Но если специфики нет - я ничего не хочу знать про ОСь. Она для меня то самое API. Далее я придумываю как будет выглять мой интерефейс. Для юзера и для все остальной логики программы.
Все, что делается в интерфейсе - отдельный поток.
Все действия, который происходит из-за каких-то событий - это другой поток. В нем же находится вся логика моей программы. (прога может иметь несколько потоков, но не суть)
Все связи между GUI и логичкой четко прописаны. Т.е. все события, который рождаются в GUI - это некие глобальные меременные, массивы и структуры из них, а также семафоры.
Происходит событие - семафор - отрабатывается кусочек основного потока.
Это позволит:
* проводить полную симуляцию действий юзера
* делать unit test для всего. Типа есть форма, туда нужно что-то ввести. Есть тест, который гонит туда всякий мусор (случайный или специальный). И мы проверянем - а форма не упала от того, что мы буфер переполнили? Что мы я русское ввели? И т.д.
* полная свобода в области скинов. Сидят дезигнеры и рисуют обалденную красоту. Но для меня она - лишь некая иерархия объектов.
* портируемость :)
Понятно, что последний пункт противоречит интересам всех производителей ОСей, вероятно это и обсуловило непопулярность этой технологии.
Стал читать буки по программированию под Win32. Спустя какое-то время начал немного понимать, что к чему. Но вот что меня бесит.
Пусть есть некий простой терминал для спец железяки:
* GUI часть
* работа с COM портом
* реализация логики
Меня просто выворачивает, когда все это смешано в одной программе, в одном потоке. Когда рисование окошка соседствует с открытием порта. И потом получаем - готовности COM нет - окно замерзло. Такое ощущение, что никто не понимает сути многозадачных ОСей.
И на все это навернуто столько понтов, что у меня аж дым из ушей - от UML до C#. Какой в жопу UML, когда это совершенно простые вещи, которые можно понять и так.
Я просто не понимаю, почему нельзя написать нормальный учебник, который бы все это расписывал?