поганый реестр

 
1 2 3 4 5 6 7 8
RU Владимир Малюх #18.10.2002 21:26
+
-
edit
 
TEvg>Вы расматриваете какой-то идеальный реестр. Конечно он ни в чем не виноват. А я реальный виндовный. Сама МС проводит политику засирания реестра. Программеров просто приучают засирать реестр.

Каким это образом? Как это МС приучает программистов писать кривые программки? Нам вот как-то от них никаких указаний не приходило :)
Maschinen muessen "idiotensicher" werden  

TEvg

аксакал

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

И даже format c: могут сделать, что формат исключить?

Zeus>А вообще, более-менее правильным вариантом было бы просто не пускать никого в реестр. В смысле - никакую программу. Дать ей только одну "папку" и все. Остальное только и исключительно по системным запросам (типа: какая программа ассициирована с действием ххх на тип ууу?) - и никаких прямых чтений (и тем более записей) ключей.


:) Эх мне бы ваши заботы (с) А если "программа", точнее продукт состоит из нескольких запускаемых модулей? Как им между собой взаимодействовать и как хранить общие конфигурации? Хотите же чтобы спелл-чекер был единым на весь офис да еще впридчу был бы тем же в кореле, каде, да и бог знает где еще?
 

TEvg

аксакал

админ. бан
>Каким это образом? Как это МС приучает программистов писать кривые программки? Нам вот как-то от них никаких указаний не приходило

Во-1 примером. Во-2 настоятельными советами и даже требованиями все хранить в реестре. Об этом и другие люди писали. Вы что топик не читали?
 
А охрана зачем?
Чтобы обеспечить прочтение?
 

TEvg

аксакал

админ. бан
Полез я тут давеча в лог хр, а там написано не могу загрузить драйвер такой-то. А драйвера то этого устройства давным давно деинсталлированы. Ну я за регэдит, ручками его нашел, удаляй давай говорю, а форточка мне – ну не могу никак и все тут. А еще я как-то своими глазами видел два ключа с совершенно одинаковыми названиями в одной ветке реестра, вот так вот рядышком и лежали и на меня нагло смотрели, чудеса да и только, вот тебе и база данных. Ну про кучи ничьих ключей я уж и не говорю, без меня сказано. Вывод – очень красиво все реестрится на бумаге, а на практике все как всегда – еще один новый гемморой появился на голову программера, в дополнение ко всем оставшимся старым.

Кстати аналогично с фэт32 и псевдодатабазовой нтфс – я их рядышком ставил и особого ускорения-замедления никак не заметил. Нет, ну может есть тест какой который его покажет, но вот по жизни – ну не заметил.
 
+
-
edit
 

avmich

координатор

>Евгений, это никак не зависит от способа хранения! Т.е. просто программа так написана!

Понимаю.

>Если бы она создавала 256 ini-файлов в разных (в т.ч. и системных) директориях, это бы Вас порадовало?

Такая ситуация называется - жопа. Но в дореестровой эре такая идея почему-то не нашла много поклонников.

>Т.е. Вас раздражает не сам факт хранения настроек в реестре, а техническое бескультурие некоторых софтверописателей?

Дыма без огня не бывает и техбескультурие не с неба свалилось. Я ж говорю - воспитывают так программеров.

>Вывод ? очень красиво все реестрится на бумаге, а на практике все как всегда ? еще один новый гемморой появился на голову программера, в дополнение ко всем оставшимся старым.

Полностью согласен. Прямо мое мнение. :)
 
+
-
edit
 

Mishka

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

Вопрос: как подходить к конфигурационным данным?

;)
 
+
-
edit
 

Mishka

модератор
★★★
TEvg>Во-1 примером. Во-2 настоятельными советами и даже требованиями все хранить в реестре. Об этом и другие люди писали. Вы что топик не читали?

БеОСники (а так же любые другие ОС - подставить по желанию) призывают засорять файловую систему! Как?
Во-1 примером. Во-2 настоятельными советами и даже требованиями хранить данные в файловой системе! Об этом все знают! :D
 
+
-
edit
 

Mishka

модератор
★★★
В.М.>Требованиями? Где это такие требования?

Володя, есть такие требования. Точнее настоятельные рекомендации с угрозами отменить ини вообще в будущем. Я покапаюсь на работе - у меня где-то ссылки были и зикину сюда.
 
+
-
edit
 

Mishka

модератор
★★★
ab>Полез я тут давеча в лог хр, а там написано не могу загрузить драйвер такой-то. А драйвера то этого устройства давным давно деинсталлированы. Ну я за регэдит, ручками его нашел, удаляй давай говорю, а форточка мне – ну не могу никак и все тут. А еще я как-то своими глазами видел два ключа с совершенно одинаковыми названиями в одной ветке реестра, вот так вот рядышком и лежали и на меня нагло смотрели, чудеса да и только, вот тебе и база данных. Ну про кучи ничьих ключей я уж и не говорю, без меня сказано. Вывод – очень красиво все реестрится на бумаге, а на практике все как всегда – еще один новый гемморой появился на голову программера, в дополнение ко всем оставшимся старым.

А вы пробовали все править в win.ini и system.ini windows 3.11? Сильно там все отличалось и понятно все было? Опять возражение про то как отдельные индивиды что-то сделали, а не про саму систему хранения. :)

ab>Кстати аналогично с фэт32 и псевдодатабазовой нтфс – я их рядышком ставил и особого ускорения-замедления никак не заметил. Нет, ну может есть тест какой который его покажет, но вот по жизни – ну не заметил.

А это больше не быстроты даже, а надежности. Но и быстрота может быть проверена - попробуте поработать в директориях в которых по 1000 файлов.
 

TEvg

аксакал

админ. бан
TEvg>Такая ситуация называется - жопа. Но в дореестровой эре такая идея почему-то не нашла много поклонников.

Борис, ты не прав! (С) кого-то. Вспоминаем Форточки 3.11 - win.ini, system.ini - и кучу других ini лежащих неизвестно где и связанных неизвестно как. Так что было-было...

TEvg>Дыма без огня не бывает и техбескультурие не с неба свалилось. Я ж говорю - воспитывают так программеров.

Смотрите мой пост про хранение данных в файлах.
 

TEvg

аксакал

админ. бан
Создается главный каталог, а в нем ряд подкаталогов, напр для документации, БД..
Сервисную прогу придется прописать в реестре. Также для нее делаем reg-файл на случай если с реестром случиться что-нить нехорошее. Для мониторной делаем линк в StartUp. Настройки общие храним в каталоге проги в cfg или ini файле. При таком подходе вашей проге обеспечена долгая и счастливая жизнь.
 
+
-
edit
 

avmich

координатор

>Борис, ты не прав! (С) кого-то. Вспоминаем Форточки 3.11 - win.ini, system.ini - и кучу других ini лежащих неизвестно где и связанных неизвестно как. Так что было-было...

Было, да не настолько. Все же в system.ini и вин.ини не особенно лазили. А простые ини легко находились и уничтожались.. Но в целом замечание правильное - маразм начинался тогда. Интересно зачем это билли? От этого прежде всего винда страдает. Ему надо чтобы винда была глючной? Наверное надо..
 

TEvg

аксакал

админ. бан
Э, а файлы данных пользователя где хранить?

Мне, разумеется, хочется, чтобы при установке новой версии данные старой не терялись, а находились ;) . А если их, данные, хранить в служебной директории программы... гм... А вдруг пользователь захочет данные, скажем, скопировать - откуда он узнает, гда они там лежат?
 
+
-
edit
 

avmich

координатор

>Э, а файлы данных пользователя где хранить?

В подкаталоге Users
Формат - любой, в зависимости от задачи - текстовый, бинарник, база данных.
 

TEvg

аксакал

админ. бан
Ок, тогда с другой стороны - а как программа при установке проверит, она уже стоит на компьютере (и нужно ставиться в тот же каталог, по умолчанию) или она заново ставится (и тогда предлагать ставиться в ProgFilesMyProg)?
 
+
-
edit
 

avmich

координатор

>Ок, тогда с другой стороны - а как программа при установке проверит, она уже стоит на компьютере

А зачем это ей?

А ставиться просто - по умолчанию предлагать всегда в одно и тоже место. А когда каталог будет выбран - посмотреть что там. Если человек в первый раз ставя прогу, указал ей руками куда поставиться - то и второй раз покажет, не облезет.
 
+
-
edit
 

Mishka

модератор
★★★
Вот немного про реестр и ини и что есть предпочтительнее:
http://msdn.microsoft.com/library/.../html/inifilesversusregistry.asp

А вот еще:

http://msdn.microsoft.com/library/.../base/getprivateprofileint.asp
и прямая цитата

Windows NT/2000/XP: Calls to private profile functions may be mapped to the registry instead of to the specified initialization files. This mapping occurs when the initialization file and section are specified in the registry under the following keys:

HKEY_LOCAL_MACHINESoftwareMicrosoft
Windows NTCurrentVersionIniFileMapping

This mapping is likely if an application modifies system-component initialization files, such as Control.ini, System.ini, and Winfile.ini. In these cases, the GetPrivateProfileInt function retrieves information from the registry, not from the initialization file; the change in the storage location has no effect on the function's behavior.
 
+
-
edit
 

Mishka

модератор
★★★
TEvg>Было, да не настолько. Все же в system.ini и вин.ини не особенно лазили. А простые ини легко находились и уничтожались.. Но в целом замечание правильное - маразм начинался тогда. Интересно зачем это билли? От этого прежде всего винда страдает. Ему надо чтобы винда была глючной? Наверное надо..

Во, а теперь скажите - чем же ини файл отличается от конфигурационного? А потом, как Вы это все перенесли на реестр?
 

TEvg

аксакал

админ. бан
TEvg>Сервисную прогу придется прописать в реестре. Также для нее делаем reg-файл на случай если с реестром случиться что-нить нехорошее. Для мониторной делаем линк в StartUp. Настройки общие храним в каталоге проги в cfg или ini файле.

А, если рухнула файловая система? Или реестр значительно более ненадежное место? Давайте мне ваши конфиги, и я почти наверняка такого дерьма насую, что прога ляжет вчистую. И, кстати, задите в системную директорию и наберите del /f /s /q *.* - и смотрите, никаких реестров, а система легла!
 

TEvg

аксакал

админ. бан
>>Ок, тогда с другой стороны - а как программа при установке проверит, она уже стоит на компьютере

TEvg>А зачем это ей?

Женя, это уже даже не смешно.

TEvg>А ставиться просто - по умолчанию предлагать всегда в одно и тоже место. А когда каталог будет выбран - посмотреть что там. Если человек в первый раз ставя прогу, указал ей руками куда поставиться - то и второй раз покажет, не облезет.

Я Вам вашими же словами - А зачем это ему/ей?
 
+
-
edit
 

Mishka

модератор
★★★
>Я Вам вашими же словами - А зачем это ему/ей?

Я не очень понимаю зачем проге другая версия, НО ЕСЛИ ЭТО ДЕЙСТВИТЕЛЬНО НУЖНО - то тогда...
quote:
по умолчанию предлагать всегда в одно и тоже место. А когда каталог будет выбран - посмотреть что там.
 

Verstehen?
 

TEvg

аксакал

админ. бан
TEvg>В принципе ничем. Просто ini - стандартный текстовый формат к коим можно работать через специальные API функции. А cfg - более общий случай, формат определенный разработчиков. Например Zeus любит шифрованые бинарники.

ЗЫ, а что текстовые шифровать нельзя? В чем идея шифрации бинарника лучше шифрации текста? Вопрос в другом - стандартные API обеспечивает стандартную работу с информацией определенного типа и это есть хорошо и правильно.

>>А потом, как Вы это все перенесли на реестр?

TEvg>Реестр - идея размазывания софта доведеная до абсурда.

Наоборот, Женя, наоборот. Не размазывать конфы по дискам, а иметь структурировано в одном месте. Это опять как с файловой системой - где ваши данные лежат Вы не имеете ни малейшего представления, а вся информация собрана в одно центральное место, и вы ею пользуетесь через API стандартный. Более вход в ФС один через главный каталог и специальную системную область. Поэтому, если система ФС теряет эту информацию, то вы остаетесь без данных. На чем основана надежность NTFS - как раз на дублировании системной инфы и знании, что некоторые области лежат по известным адресам. Идея не нова - VM/SP CMS имела похожие штучки. На базе этого я с моим другом и разработли undelete для этой ОС - прога состоящая из пары строк на ассемблере и Алголе 68.
 

TEvg

аксакал

админ. бан
>Или реестр значительно более ненадежное место?

Наконец-то дошло! Да! Практика показывает что реестровый вариант ненадежен. А почему? А потому что кривая реализация одной проги может повалить все. В случае с изолироваными прогами - кривая прога валит только себя. Да, с файловой системой может приключиться тоже самое - одна прога завалит все. НО! Практика показывает что с файловой системой проги общаются гораздо аккуратнее.
 
+
-
edit
 

Mishka

модератор
★★★
>Наоборот, Женя, наоборот. Не размазывать конфы по дискам, а иметь структурировано в одном месте.

Зато этим размазывается прога. А почему бы не хранить коды всех прог в БД? картинки в другой БД? строки в третьей БД? Вообще отменить понятие файла?
 
1 2 3 4 5 6 7 8

в начало страницы | новое
 
1918: С Днём советской армии и военно-морского флота! (100 лет).
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru