Имхо, это в "Философию". Если что не так, отфутбольте, куда надо
У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
У меня тут комп вылетел... Winamp, Photoshop, Dreamweaver, RSDN@Home, Windows Explorer — во всех сбросились те настройки, что я изменил в промежутке между запуском программы и вылетанием компьютера.
При этом, скажем Shareaza и BSPlayer и ухои не повели. Изменил — так изменил.
В чем глубинный философский смысл такой свиньи?
... << RSDN@Home 1.2.0 alpha rev. 619>>
11.01.06 21:05: Перенесено из 'Философия программирования'
Здравствуйте, Mamut, Вы писали:
M>У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
Сохранением инварианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Сохранением инфарианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Ага, есть такое. Правда, не помню, когда в последний раз сталкивался с тем, чтобы изменение нестроек убивало программу.
На самом деле, раздражает, наверное, то, что все же есть настройки, которые не должны провоцировать вылет программы — "always on top" в Винампе, единицы измерения в Фотошопе, history в Internet Explorer'e, позиция в форуме в RSDN@Home , расположение тулбаров в MS Word'e... А не сохраняются
VD>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
Здравствуйте, Mamut, Вы писали:
M>Ага, есть такое. Правда, не помню, когда в последний раз сталкивался с тем, чтобы изменение нестроек убивало программу.
Видимо потму-что большинство из них сохраняет настройки при выходе.
M>На самом деле, раздражает, наверное, то, что все же есть настройки, которые не должны провоцировать вылет программы — "always on top" в Винампе, единицы измерения в Фотошопе, history в Internet Explorer'e, позиция в форуме в RSDN@Home , расположение тулбаров в MS Word'e... А не сохраняются
Согласен, иногда кое-что раздражает.
VD>>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
M>А как? А то я им не пользуюсь...
Менюшка есть. Выбирашь пунктик "Сохранить настройки" и они тот час же сохраняются.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Сохранением инфарианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске. VD>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
Неправда ваша. Действительно хорошо сделанные программы сохраняют настройки при нажатии кнопки OK, а при запуске после сбоя предлагают использовать предыдущие настройки или настройки по умолчанию. Примеры: Unreal Tournament, Windows Media Player, Microsoft Windows XP
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Mamut, Вы писали:
M>>У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
VD>Сохранением инварианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Инвариант программы -- это что? Вылетит -- не вылетит?
А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Здравствуйте, Шахтер, Вы писали:
Ш>Инвариант программы -- это что? Вылетит -- не вылетит? Ш>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Я лично сужу так. Если они в состоянии, то программа не вилетит и настройки один фиг сохранятся. А если вылетит, то хотя бы я не получу вылет при загрузке.
Хотя конечно бывают случаи когда можно обойтись отдельным тестирвоанием. Ну, как в играх при переключении видео-режимов.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Шахтер, Вы писали:
Ш>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Ш>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно...
Без эбонитовой палочки — попробуй сделай окно видимым.
Здравствуйте, Кодт, Вы писали:
Ш>>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
К>Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно... К>Без эбонитовой палочки — попробуй сделай окно видимым.
А при старте программы проверять местоположение окна и репозиционировать его если что?
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Шахтер, Вы писали:
Ш>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает.
В подобных ситуациях стоит предусмотреть механизм восстановления после фатальной ошибки.
Типа last good settings.
Вообще, undo бывает полезно не только в текстовых редакторах.
Ш>>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
К>Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно... К>Без эбонитовой палочки — попробуй сделай окно видимым.
Хых. В винде есть глюк, работает почти для всех окон. Я, правда, последовательность действий не помню По-моему, три раза подряд минимизировать/восстановить окно программы через трей... В общем, не помню. Результат — основное окно испытуемой программы уходит на координаты, примерно -1000, -1000 или что-то вроде Если бы не комбинация Alt+Space — Move, я бы давно повесился...
Здравствуйте, Mamut, Вы писали:
M>У меня тут комп вылетел... Winamp, Photoshop, Dreamweaver, RSDN@Home, Windows Explorer — во всех сбросились те настройки, что я изменил в промежутке между запуском программы и вылетанием компьютера. M>При этом, скажем Shareaza и BSPlayer и ухои не повели. Изменил — так изменил. M>В чем глубинный философский смысл такой свиньи?
Я думаю, дело в том, что Winamp, Photoshop и др. сохраняют свои настройки в реестре (после "Ok"), а Shareaza и BSPlayer — в файлах; или тоже в реестре, но с требованием немедленной записи на диск.
Какой подход лучше — неочевидно. По мне так нет смысла постоянно шуршать диском, как в времена DOS. А система должна работать стабильно. Разработчику же, у которого вероятность сбоя высока, наверное надо где-то подкрутить политику кэширования реестра.
Re[4]: Сохранение настроек
От:
Аноним
Дата:
12.01.06 06:45
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Так можно открыть опции через Control Panel -> Internet Options и поменять.
Здравствуйте, Аноним, Вы писали:
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
А>Так можно открыть опции через Control Panel -> Internet Options и поменять.
W>Какой подход лучше — неочевидно. По мне так нет смысла постоянно шуршать диском, как в времена DOS. А система должна работать стабильно. Разработчику же, у которого вероятность сбоя высока, наверное надо где-то подкрутить политику кэширования реестра.
Насколько я понимаю, МС сейчас пропагандирует хранение настроек в XML-файлах возле приложения
M>>Насколько я понимаю, МС сейчас пропагандирует хранение настроек в XML-файлах возле приложения
К>Что, прямо в program files? К>И как это вяжется с разделением прав пользователей?
А фиг его знает. Может и в Documents and Settings — но вот за сохранение данных в Documents and Settings я бы тоже .. хм.. расстреливал. После того, как сэйвы Need For Speed оказались в Documents and Settings -> Application Data
Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
Здравствуйте, Mamut, Вы писали:
M>А фиг его знает. Может и в Documents and Settings — но вот за сохранение данных в Documents and Settings я бы тоже .. хм.. расстреливал. После того, как сэйвы Need For Speed оказались в Documents and Settings -> Application Data
Это почему?
M>Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
Новсем наоборот — и предоставляет, и в MSDN четко расписано что и куда сохранять. Изгаляются те, кто не читает доку.
Здравствуйте, wildwind, Вы писали:
M>>Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
W>Новсем наоборот — и предоставляет, и в MSDN четко расписано что и куда сохранять. Изгаляются те, кто не читает доку.
Ага. В каждой ОС они чётко расписывают, что и куда сохранять. По-новому.