lwilis 01.10.2009 17:28
Пятиминутка ненависти! — Раньше работало
Негодую в ответ на такие заявления:в прошлой версии работало.на другом дистрибутиве работалона старой системе работало
Все они сводятся к одному: раньше у меня работало, я ничего не делал, а оно сломалось; иначе говоря, разработчики виноваты, а я нет.
И вот этот человек приходит и требует помощи. Ему вообще плевать, что от версии к версии могло поменяться все, что угодно - могли быть реализованы новые функции, могли поменяться умолчания, да что там - формат конфига мог стать другим.
Вот спрашивается какую полезную информацию содержит в себе высказывание "раньше работало"? Для помогающих - никакую. Так зачем же заниматься самоуспокоением, что раз ничего не трогал, значит ничего и сломаться не могло после апдейта.
Можно возразить, что если формат конфига все-таки не менялся, а раньше работало, стало быть синтаксис верный и проблема глубже. Да, только такой подход наоборот удлинняет путь решения вопроса, так как конфиг может быть все-равно кривой по тем или иным причинам. Возможен случай, когда автор все-таки где-то забыл один/два символа, скажем при копипасте, а сам этого не заметил - вот тогда решение займет не один день, подтянутся профи, будут выдвигать версии. А все тривиально - точка с запятой, фигурная скобка или еще что-то потеряно.
Отталкиваться лучше либо от дефолтного конфига (поставляемого с новой версией), либо от минимально допустимого (также складывающегося из актуальных рекомендаций по запуску софта).
В этом случае подход к решению меняется, ведь нет завязок на старую версию, нет балласта и лишних условий, запросы к поисковику приобретают конкретику и наступает счастье.
Всем спасибо )
sdvn 01.10.2009 17:47 #
+ 3 -
Да, так лучше. Но не стоит забывать, что клиент по определению тупой, пока не доказал обратное. И этого тупого клиента абсолютно не волнует, что программа стала работать по-другому, для него она - черный ящик, главное чтобы она работала. И если после обновления она вдруг перестает работать, то виноват разработчик. И это верно. Не хотите, чтобы вашу тех. поддержку "насиловали" недовольные клиенты - пишите обратно-совместимый софт. Чтобы новая версия программы понимала старые конфиги. Чтобы выдавала внятные сообщения об ошибках. + Много-много пунктов. Да, это займет уйму времени и сил, но зато это снимет такую гору проблем.
Все правильно говоришь, только для случая платной подписки на поддержку (контракт на сам софт и т.д.) Я в посте не акцентировал, но имел в виду случай, когда софт используется пользователем полностью безвозмездно. В этом случае автор софта ничем не обязан пользователю
Ну, а если посмотреть с точки зрения свободного (не обязательно открытого) софта, то тех. поддержка в данном случае является сам автор и сообщество, появившееся вокруг данного продукта (форумы, коммьюнити и пр). Если не хочешь тучи вопросов со стороны пользователей, то см. мои советы выше. :-D
И снова согласен. Именно поэтому пост находится в блоге "пятиминутка ненависти", а не в каких-нибудь официозах :)
Но выходит замкнутый круг: хочешь, чтоб все было "хорошо" - пиши совместимо; но если поменялась концепция (автор понял, что предыдущая была нехороша) - придется тянуть балласт - пользователю же хуже в итоге. Выход из положения есть.
Опенсорсные проекты воспринимать в большей степени как исследовательские, поэтому здесь вообще о пользователе можно не беспокоиться. Их используют энтузиасты на свой страх и риск.
Другое дело продакшн на основе опенсорса. Там уж что встало на рельсы, тому и ехать.
Но выходит замкнутый круг: хочешь, чтоб все было "хорошо" - пиши совместимо; но если поменялась концепция (автор понял, что предыдущая была нехороша) - придется тянуть балласт - пользователю же хуже в итоге. Выход из положения есть.
Опенсорсные проекты воспринимать в большей степени как исследовательские, поэтому здесь вообще о пользователе можно не беспокоиться. Их используют энтузиасты на свой страх и риск.
Другое дело продакшн на основе опенсорса. Там уж что встало на рельсы, тому и ехать.
Балласт? Мы про конфиги или про логику работы программы? Если про конфиги, то всегда можно игнорировать то, что не вписывается в новую схему.
С другой стороны плохо, что разработчик не учитывает что новая версия будет запускаться со старыми конфигами. И получаем зачастую неработающую программу после обновления. Если новая версия не совместима со старыми конфигами, то сделай их в другом месте, и сделай импорт конфига из старой версии в новую.
ИМХО хуже ситуация когда тебе говорят, на вопрос почему не работает, что у них всё работает, без попытки решить проблему пользователя. Ведь можно сказать пользователю - попробуйте удалить конфиги, возможно дело именно в них, и решить проблему, вместо нагнетания ненависти с обеих сторон.
ИМХО хуже ситуация когда тебе говорят, на вопрос почему не работает, что у них всё работает, без попытки решить проблему пользователя. Ведь можно сказать пользователю - попробуйте удалить конфиги, возможно дело именно в них, и решить проблему, вместо нагнетания ненависти с обеих сторон.
импорт или конвертер для конфигов зачастую делаются, да вот только это ж надо в release notes или changelog глянуть, чтоб узнать как и что.
в остальном выше ответил
в остальном выше ответил
На мой взгляд импорт и конвертация конфигов должна быть автоматической. Ибо как разработчик говорю - пользователь тупой.
процитирую cppmm
если я такой красивый, взял, из сырцов собрал новую версию, не почитав changelog, а она со старым конфигом работать не хочет. Тут понятно - ССЗБ
лучше и не скажешь. В остальном да - автоматическая конвертация рулит.
А вот тут, пожалуй, отчасти не соглашусь. Оно понятно, если я такой красивый, взял, из сырцов собрал новую версию, не почитав changelog, а она со старым конфигом работать не хочет. Тут понятно - ССЗБ. Но опять же, если об этих изменениях не было написано в changelog'е, то это уже неправильно и разработчика надо пнуть.
Другое дело, дистрибутивное обновление. Здесь ничего не должно ломаться от версии к версии. Берём, например, gentoo. Запускаем обновление, после обновления нам настоятельно рекомендуют запустить etc-update. Там, где это нужно, конфиги обновляются. Там, где это невозможно, мне об этом сообщается. Та же схема в Debian. Или конфиги меняются автоматом, или меня предупреждают о том, что надо изменить руками. И тут дело не только в конфигах. Когда я обновлялся с Debian 3 Sarge до Debian 4 Etch, меня предупредили, что иксы работают теперь несколько иначе. Шрифты лежат в другом месте, настройки изменились. После обновления я вполне спокойно наблюдал падение иксов, и вполне спокойно их перенастроил.
А вот за молчаливое обновление и потерю работоспособности надо бить больно. Не бывает в Linux так, чтобы что-то сломалось само. Оно или работает, или говорит, что не так. Это одна из особенностей, из-за которых я люблю Linux. Поэтому молчаливое обновление и последующие за ним глюки - это нонсенс. И именно поэтому на большинстве серверов в мире стоит Linux, а не Windows. Ни один нормальный админ никогда не поставит на боевой сервак систему, которая после обновления перестанет работать.
Я понимаю, что должен говорить огромное спасибо разработчикам, за проделанную работу. Я понимаю, что сам я помогаю им максимум багрепортами. Но если я вижу, что разработчик не в силах довести проект до ума(а умение провести безболезненное обновление сюда тоже входит) или хотя бы внятно объяснить причину невозоможности сделать это, то я отказываюсь от этого проекта.
Другое дело, дистрибутивное обновление. Здесь ничего не должно ломаться от версии к версии. Берём, например, gentoo. Запускаем обновление, после обновления нам настоятельно рекомендуют запустить etc-update. Там, где это нужно, конфиги обновляются. Там, где это невозможно, мне об этом сообщается. Та же схема в Debian. Или конфиги меняются автоматом, или меня предупреждают о том, что надо изменить руками. И тут дело не только в конфигах. Когда я обновлялся с Debian 3 Sarge до Debian 4 Etch, меня предупредили, что иксы работают теперь несколько иначе. Шрифты лежат в другом месте, настройки изменились. После обновления я вполне спокойно наблюдал падение иксов, и вполне спокойно их перенастроил.
А вот за молчаливое обновление и потерю работоспособности надо бить больно. Не бывает в Linux так, чтобы что-то сломалось само. Оно или работает, или говорит, что не так. Это одна из особенностей, из-за которых я люблю Linux. Поэтому молчаливое обновление и последующие за ним глюки - это нонсенс. И именно поэтому на большинстве серверов в мире стоит Linux, а не Windows. Ни один нормальный админ никогда не поставит на боевой сервак систему, которая после обновления перестанет работать.
Я понимаю, что должен говорить огромное спасибо разработчикам, за проделанную работу. Я понимаю, что сам я помогаю им максимум багрепортами. Но если я вижу, что разработчик не в силах довести проект до ума(а умение провести безболезненное обновление сюда тоже входит) или хотя бы внятно объяснить причину невозоможности сделать это, то я отказываюсь от этого проекта.