powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
13 сообщений из 38, страница 2 из 2
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099904
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич
И тут мы плавно переходим к еще одним настройкам...
Ну то есть я сделал какую-то фичу, под нее окно. Не заморачиваясь, накидал какого-то кода.
Потом еще фичу, еще окно, еще код. Потом еще десяток. И вот, приехали, здравствуй, бабушка.
Куча лапши, все вперемешку. Ровно то, что тут всем форумом ругают уже 20 лет.

Тут всё очень зависит от графического API я так думаю. Эпизодически я кодил на Java/Swing
и там можно было не разделять Model-View-Contr. Просто валишь в 1 объект все три сущности
вместе с логикой. Главное чтоб мультипоточки не было. Swing он ... боится потоков внутри
графических объектов. Вобщем если реакция от бизнес логики быстрая - то можно всё валить
одним кулём. Как будто каждое окошко это актор и бизнес процедура и виджетик для отображения.

Вообще .. мы живем в эпоху упрощений и переосмыслений технологий 20-го века. Мне например
никогда не нравился Win32GDI. Он - очень неудобен для программирования. Хотя на экране
выглядит красиво. Я до сих пор считаю Win95 окошки эталоном аккуратности и минимализма.

MFC конечно сделал надстройку но сущности мира GDI (вот эти хендлы) никуда не делись и "как уши" торчат
отовсюду. Пробовал ради интереса изучать Gnome/GTK. Таже фигня. В каждой функции по 100500
аргументов и половина не используется. Хотя чуть поменьше чем в Win32.

На чём щяс кстати делают UI под Windows Desktop? (Кробе веб приложений конешно)
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099911
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
На чём щяс кстати делают UI под Windows Desktop?
Тоже интересно.
Лично я, если и буду что-то делать, возьму Lazarus

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

Лет 10 назад я загорелся идеей сделать что-то полезное для Lazarus, скачал исходники, ковырялся неделю, не понял там НИЧЕГО и плюнул. Каментов в коде нет, никакого описания ни в каком виде не нашел. На форуме freepascal.ru был один чувак из Красноярска, который мне обещал ответить на любые вопросы и вообще всестороннюю помощь, но я что-то посмотрел, подумал, что ему придется мне несколько дней лекции читать, прежде чем от меня хоть какой-то толк будет, и решил не мучить зря человека.

И вот сейчас тоже. Решил посмотреть исходники эклипса. На их странице на гитхабе почти 500 репозиториев, какой из них IDE? И еще куча репозиториев на https://git.eclipse.org/, я пока не нашел даже где исходники лежат.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099925
ra-001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никанор КузьмичВ смысле - исходники Eclipse?Не, ежели нет чего-то, что может поднять сорци и хоть как то их систематизировать, то лучше не лезть.Ж-), работа не для хобби.
Именно статьи про фреймворки, в eclipse система плагинов - там можно еще посмотреть,помню они(разрабы)
переписывали их раза два, наверняка давали объяснения. google - в помощь !
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099927
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю ко мне вопрос или нет? ХЗ. Отвечу от себя.

Ссылку на опенсорс репозиторий с правильным структурированным UI приложением дать не могу.
Я - не в теме. Ибо back-end вобщем.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099938
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt

Чушь. В Excel используется OleStorage .

Ну да. В спецификации формата Excel написано:
авторThe Binary Interchange File Format (BIFF) is the file format Microsoft Office Excel
workbooks are saved to (aka *.xls). Microsoft Excel versions 5.0 and later use
compound files (explained later in this document); this is the OLE implementation of the
Structured Storage Model.
У меня есть модуль (с исходниками на С++) работающий напрямую с простыми Excel-файлами .xls версии 4.0
(чтение, запись, отображение, редактирование) согласно BIFF8.
Там можно голову сломать в структурах (модуль писал не я).
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099942
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
d7i
C Excel совершенно неудачный пример. До 2007 года там бинарный формат
(можно чокнуться разбираясь с ним - там пласты разных структур с 1995 по 2003 год)...


Чушь. В Excel используется OleStorage .
Структурированное хранилище с точки зрения программиста выглядит как отдельный диск с папками и файлами, но находится
в все это в отдельном файле. Пользоваться очень удобно, не сложнее чем обычной файловой системой.
Для сохранения сложных иерархических данных в виде дерева ничего лучшего чем OleStorage не придумали в Windows.
Начиная с Office 2007 это не так, теперь это zip-файл с эксемельками.
P.S. Реализовать свой велосипед типа OleStorage - работа на день. Еще и фичи появятся, которых в виндовом нет.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099944
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i
Eolt

Чушь. В Excel используется OleStorage .

Ну да. В спецификации формата Excel написано:
авторThe Binary Interchange File Format (BIFF) is the file format Microsoft Office Excel
workbooks are saved to (aka *.xls). Microsoft Excel versions 5.0 and later use
compound files (explained later in this document); this is the OLE implementation of the
Structured Storage Model.

У меня есть модуль (с исходниками на С++) работающий напрямую с простыми Excel-файлами .xls версии 4.0
(чтение, запись, отображение, редактирование) согласно BIFF8.
Там можно голову сломать в структурах (модуль писал не я).Я разбирал структуру xls несколько раз, для клиппера и паскаля писал сохранение.
До 97-го там был один формат, с 97 по 2006(?) - другой (на компаунд файлах, это и есть OleStorage, я так понял). И тот, и тот - бинарный.
2007+ - xml в zip (хотя логическая структура та же).
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099948
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Я разбирал структуру xls несколько раз, для клиппера и паскаля писал сохранение.
До 97-го там был один формат, с 97 по 2006(?) - другой (на компаунд файлах, это и есть OleStorage, я так понял). И тот, и тот - бинарный.
2007+ - xml в zip (хотя логическая структура та же).

До 2007 года (.xls) - BIFF (там куча версий, последняя 8-я). И он совсем не простой,
с наскока там не разберешься...
А после (.xlsx) - XML, с ним немного проще, но тоже нюансов вагон и маленькая тележка.
И не верю, что есть "товарищи с шашками наперевес", которые якобы за пару дней клепают на колене
с нуля свой Excel (с блекджеком и шлюхами).
Это просто нарциссизм какой-то...
Чтобы не быть голословным, прикладываю картинку самописного редактора типа Excel, который умеет читать и сохранять в
формате .xls (версия 4). Используется в одной системе и ныне...
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099971
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i
И не верю, что есть "товарищи с шашками наперевес", которые якобы за пару дней клепают на колене
с нуля свой Excel (с блекджеком и шлюхами).
Ну я первую версию сохранятора в xlsx написал за пол дня, да. Потом, понятно, дорабатывал, когда форматирование понадобилось, когда что надо.
Но, я ж говорю, у меня большой опыт был в разборе xls-97, а логика хранения не изменилось, и это помогало.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40099994
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич
Ну, например, я хочу написать свой Excel

Хотите опыт человека, который действительно написал свой Excel? В своё время передо мной оказалась такая абсолютно реальная и очень актуальная задача. Причина была в следующем: была огромная структура с десятками тысяч пользователей, которые привыкли решать некую задачу приложением в Экселе. Но вот в очередной раз изменилось законодательство - и оказалось, что новых изменений Эксель просто не тянет. Принципиально. Приложение врезается в его лимиты. И большие люди по большой дружбе очень попросили моё высокое начальство помочь.

Так вот, если коротко, я с этой задачей справился с блеском - говорю так, потому что на той платформе не только сделали и внедрили тот проект, но в результате ещё как минимум один новый проект тому же заказчику сделали на той же основе.

А теперь, собственно, про опыт. Очевидно, что шаблон MVC просто создан для этого дела. И на опыте того проекта я убедился, что те, кто про него пишет - [ладно, опущу свои комментарии].

Если брать то, как обычно описывают MVC, мне всегда хочется задать один вопрос - зачем там контроллер? Ну вот нафига он нужен? Это кусок бессмысленного кода, который занимается исключительно тем, что как дурная прокладка транслирует вызовы из V в M и обратно. Суть контроллера проявляется тогда, когда становится понятно: одному контроллеру соответствуют несколько моделей и несколько представлений. То есть

MMMMMMM <===> C <===> VVV.

Например, в Экселе основное представление - конечно, лист. Но кроме него, есть ещё как минимум два: "список закладок" и "редактор текущей ячейки" (тот, который над ячейками). Моделей - вот их там целая куча. В первую очередь это модель данных (значения ячеек). Во вторую - модель форматирования. В третью - модель выделения (выделенные области). В четвёртую - модель границ (border-ы ячеек). Дальше я просто не помню, их было семь или восемь даже при том, что я реализовал только тривиальную часть экселевского функционала. А при нетривиальной - счёт пошёл бы на десятки.

Каждая модель реализует какой-то аспект функциональности. Всё модульно, чётко, красиво и удобно, очень архитектурно. Но каждая модель должна реагировать на определённые события (например, вызов операции удаления N-й строки). Иногда - похожим образом, иногда - особенным. И контроллер сразу получает свой реальный и конкретный смысл - это концентратор, то место, которое получает событие и переправляет его всем заинтересованным. Именно здесь становится понятно, почему концепции MV недостаточно, и нужно MVC.

И тогда не нужно никаких страшных иерархических структур, всё расписывается наглядно, красиво и просто.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40100016
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Хотите опыт человека, который действительно написал свой Excel?
Ну в общем да, весь топик про это.

softwarer
Если брать то, как обычно описывают MVC, мне всегда хочется задать один вопрос - зачем там контроллер? Ну вот нафига он нужен? Это кусок бессмысленного кода, который занимается исключительно тем, что как дурная прокладка транслирует вызовы из V в M и обратно. Суть контроллера проявляется тогда, когда становится понятно: одному контроллеру соответствуют несколько моделей и несколько представлений. То есть

MMMMMMM <===> C <===> VVV.
О, круто. Интересная мысль, спасибо, возьму на вооружение.
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40100885
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

А теперь, собственно, про опыт. Очевидно, что шаблон MVC просто создан для этого дела. И на опыте того проекта я убедился, что те, кто про него пишет - [ладно, опущу свои комментарии].

Если брать то, как обычно описывают MVC, мне всегда хочется задать один вопрос - зачем там контроллер? Ну вот нафига он нужен? Это кусок бессмысленного кода, который занимается исключительно тем, что как дурная прокладка транслирует вызовы из V в M и обратно. Суть контроллера проявляется тогда, когда становится понятно: одному контроллеру соответствуют несколько моделей и несколько представлений. То есть

MMMMMMM <===> C <===> VVV.

Хм, интересно.

Я повспоминал, что обычно пишут в ознакомительных статьях про шаблоны MVC/MVP/MVVM - действительно, практически всегда контроллер/презентер/viewmodel использует одну модель и одна вьюху.

Между тем, если взять реальную веб-разработку, там такой фигнёй не страдают. Например, в стандартном шаблоне ASP.NET MVC создаётся контроллер, использующий несколько моделей и вьюх - то, что доктор прописал.

P. S. Если кто ведёт бложик или книгу пишет, - описывайте MV* правильно! Теперь вы знаете, как :)
...
Рейтинг: 0 / 0
Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
    #40101130
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,

тынц
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разработка сложных десктопных приложений (паттерны, приемы проектирования и т. п.)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]