metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-11-25 04:11 pm

И еще

Писать GUI на хаскеле - это все равно, что писать GUI на SQL.

Если обернуть фразу - то для того, чтобы сделать нормальный GUI фреймворк для хаскеля (а не сплошную имитацию императивщины на монадах), нужно представить GUI в декларативно-функционально-теоретико-множественном стиле :)

[identity profile] metaclass.livejournal.com 2008-11-25 07:55 pm (UTC)(link)
Да, так и есть.
Альтернатива дороге в ад - отладка вызовов функций 20-уровневой вложенности - от кнопки до модели и обратно до view :)

[identity profile] g-rub.livejournal.com 2008-11-25 10:34 pm (UTC)(link)
Хранить логическое состояние хотя бы в соответствующих переменных-атрибутах формы не судьба?

И включать-выключать кнопки по итогам чтения этого состояния, а не по воле контроллера?

А обмен сигналами об изменении -- через простенький диспетчер, решающий кому надо перерисовываться по итогам изменения набора переменных?

Не вижу что-то тут 20 уровней вложенности.
Банальное отделение логики от представления.

[identity profile] g-rub.livejournal.com 2008-11-25 11:14 pm (UTC)(link)
В MVC не 20 уровней, а 3.
Соответственно, направлений взаимодействия -- никак не может быть больше 6 (а реально -- 3-5).

Зато один раз написанный и оттестированный MVC-каркас (вкупе с соответствующим проектированием остальной части) всерьез и надолго избавляет от побочных эффектов и непредсказуемого роста сложности в дальнейшем.