OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 17:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Суббота, 18 Июль, 2009 23:54 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Иван Горячев писал(а):
(я про то, что стандартными средствами нельзя работать с большими файлами или создавать каталоги, например. Или узнать значение локатора)


Сначала казалось тоже, что.....
Всё запихивать в общего назначения модуль - всё равно не угадаешь.
Если где-то нужно работать с..., это можно заизолировать в одном месте, написав через WinAPI так, как требуется под ситуацию.
Удобные без заморочек абстракции важнее побочного функционала, по-моему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 02:28 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Сначала казалось тоже, что.....
Всё запихивать в общего назначения модуль - всё равно не угадаешь.


Это так, но тут главное (как всегда) знать меру. Чтобы не получилось так, что один и тот же баг надо фиксить в 10 разных местах системы. Переиспользование кода против переуниверсализации компонент.

P.S. У нас есть как раз такая проблема и именно с файлами. Есть супер компонента, которая может делать все с файлами любого размера и с любыми файловыми системами. Только никто не до конца понимает как она работает и чего от нее ждать в конкретной ситуации :) Любое, даже объективно "хорошее" исправление в ней - это куча головной боли, потому что фиг знает что отвалится в других местах.

P.S.S. Хотя конечно багов с большими файлами не должно быть даже в самой простой файловой компоненте, как ни крути и как не борись за простоту :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 03:50 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Илья Ермаков писал(а):
Сначала казалось тоже, что.....
Всё запихивать в общего назначения модуль - всё равно не угадаешь.
Если где-то нужно работать с..., это можно заизолировать в одном месте, написав через WinAPI так, как требуется под ситуацию.
Удобные без заморочек абстракции важнее побочного функционала, по-моему.


Оффтоп конечно, но... Базовые компоненты должны быть сбалансированы и расширяемы. И должны обеспечивать минимально необходимый функционал. В частности это означает, что для элементарных операций мне должно хватать только базовых компонент и что нигде в системе не должны использоваться "хаки". Тот же Files этого не обеспечивает: я могу задать значение локатору, но не могу узнать его. Я не могу узнать имени файла, что порождает совершенно безобразные вещи типа
Код:
name := SYSTEM.VAL(Str, SYSTEM.VAL(INTEGER, f) + 40);   (* f(HostFiles.File).name *)

(это из HostBitmaps.ImportBitmap). Т.е. Files переупрощён. Я же не призываю к запихиванию в Files всего-всего для работы с файлами. Только добавить необходимый минимум.

И, кстати, насколько я понимаю WinApi теперь вовсе необязательная принадлежность ББ. Вообще в идеале SYSTEM должен использоваться только для общения с внешним миром, а внутри ББ должно хватать менее экзотических средств.

Ну да сейчас это неважно. Пока неизвестна позиция ОМС по общественной разработке всерьёз такие вещи обсуждать рано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 06:53 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Иван Горячев писал(а):
Ну да сейчас это неважно. Пока неизвестна позиция ОМС по общественной разработке всерьёз такие вещи обсуждать рано.
Вот и не обсуждайте. Создайте прецедент. Пока общественной разработки не будет - не будет высказано и позиции по ней. Кстати, почему бы не пригласить сюда кого-нибудь из OMC?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 08:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Горячев писал(а):
Files переупрощён. Я же не призываю к запихиванию в Files всего-всего для работы с файлами. Только добавить необходимый минимум.
Возможно, не переупрощен, а абстрагирован для работы под разными ОС. Когда-то он работал под старой МакОС.

"Необходимый функционал" может в какой-то момент оказаться костью в горле.

Приведенный пример не очень убеждает -- не корявость его, а то, насколько реально этот кусок является "необходимым функционалом".
По-моему, как раз не является.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 08:20 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Info21 писал(а):
Возможно, не переупрощен, а абстрагирован для работы под разными ОС. Когда-то он работал под старой МакОС.
Что в ней нельзя было получить имя файла?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 08:24 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Info21 писал(а):
Возможно, не переупрощен, а абстрагирован для работы под разными ОС. Когда-то он работал под старой МакОС.

"Необходимый функционал" может в какой-то момент оказаться костью в горле.

Приведенный пример не очень убеждает -- не корявость его, а то, насколько реально этот кусок является "необходимым функционалом".
По-моему, как раз не является.


Ну не знаю... Сомневаюсь что на Маках нельзя узнать имя используемого файла. А что касается необходимости... я например не смог создать список открывавшихся документов (который recent files) именно потому, что не смог узнать имена файлов (значения локаторов хоть в HostFiles есть, хотя это тоже не фонтан). А использовать такое безобразие не хотелось. И вообще, если мы можем чему-то установить значение, мы должны иметь возможность и узнать значение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 08:33 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Горячев писал(а):
если мы можем чему-то установить значение, мы должны иметь возможность и узнать значение.
Ну, это штука внешняя. Какой у нее формат еще роль играет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 08:45 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Какой бы не был - это строка. Дальнейшая обработка от системы конечно зависит, но строка - она и в африке строка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:29 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
GUEST писал(а):
Info21 писал(а):
Возможно, не переупрощен, а абстрагирован для работы под разными ОС. Когда-то он работал под старой МакОС.
Что в ней нельзя было получить имя файла?


Вообще сколько себя помню - ни разу не возникало желания имея на руках файловый объект получить его имя. Возможно у создателей HostFiles - тоже :) Может вы чего-то делаете не так? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Горячев писал(а):
А что касается необходимости... я например не смог создать список открывавшихся документов (который recent files) именно потому, что не смог узнать имена файлов


Не понимаю я ваших проблем :) Открыли файл, запомнили путь в списке открывавшихся файлов. В чем проблема-то?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:34 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Горячев писал(а):
И вообще, если мы можем чему-то установить значение, мы должны иметь возможность и узнать значение.


В общем случае - нет. Наоборот, наличие парных set/get может говорить о плохой инкапсуляции/декомпозиции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:37 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Vlad писал(а):
Не понимаю я ваших проблем :) Открыли файл, запомнили путь в списке открывавшихся файлов. В чем проблема-то?


Проблема в том, что имеется готовый модуль (в данном случае - HostCmds), который занимается открыванием/сохранением документов. Он - готовый и стандартный, править внутри него я не хочу. Остаётся два варианта - либо копипастой создавать его клон с добавлением необходимого функционала, либо - попытаться работать с теми объектами, которые есть в системе. А в системе есть текущий документ, из которого, если постараться, можно вытянуть объект типа Files.File. И всё, приехали


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:41 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Горячев писал(а):
Какой бы не был - это строка. Дальнейшая обработка от системы конечно зависит, но строка - она и в африке строка.


Вообще работать с путями файлов как со строками - крайне неудобно. Сам много сталкивался с этим на практике. Конечно, чтобы открыть файл - достаточно строки, понимаемой нижележащей ОС. Но как только вы захотите делать простейшие операции с путями (хотя бы сложить директоррию с именем файла) - со строками будете иметь кучу граблей :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:44 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Я не спорю. Но для того, чтобы хотя бы иметь возможность поиметь эти грабли я для начала должен иметь строку :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 09:47 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Горячев писал(а):
Проблема в том, что имеется готовый модуль (в данном случае - HostCmds), который занимается открыванием/сохранением документов. Он - готовый и стандартный, править внутри него я не хочу. Остаётся два варианта - либо копипастой создавать его клон с добавлением необходимого функционала, либо - попытаться работать с теми объектами, которые есть в системе. А в системе есть текущий документ, из которого, если постараться, можно вытянуть объект типа Files.File. И всё, приехали


В этой ситуации я бы сказал, что проблема как раз таки в HostCmds и его надо править на предмет лучшей расширяемости (вот захотите вы, чтобы он не только из файлов открывал документы) и т.д. А не пихать все что можно в HostFiles.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Единое пространство BlackBox
СообщениеДобавлено: Воскресенье, 19 Июль, 2009 10:20 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Спасибо, HostCmds работает и так.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB