Модераторы: THandle, bems

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DELPHI, пора сваливать ??? 
:(
    Опции темы
CodeMonkey
Дата 20.3.2011, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(AlekXL @  17.3.2011,  22:27 Найти цитируемый пост)
Юзерам нравится умная и быстрая программа!


...и ненадёжная.

Цитата(AlekXL @  17.3.2011,  22:27 Найти цитируемый пост)
Разве Windows не так запрограммирована? Я помню времена Windows 9x и Delphi 5, когда синий экран каждые два часа вылетал.


Нет. Согласно статистике, вина кода MS в BSOD - лишь в 5% случаев. 

P.S. Остальные: 10% - железо (ошибки/разгон), 15% - неизвестно (данные слишком повреждены), 70% - сторонние драйверы.

Добавлено через 4 минуты и 44 секунды
Цитата(AlekXL @  17.3.2011,  22:03 Найти цитируемый пост)
Причину я пока не выяснил.


Наверное пора открыть для себя понятие автогенерируемого отчёта об ошибке с боевых полей?

Это сообщение отредактировал(а) CodeMonkey - 20.3.2011, 01:43


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
AlekXL
Дата 1.4.2011, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 2.5.2008

Репутация: 0
Всего: 0



Цитата(CodeMonkey @  20.3.2011,  01:16 Найти цитируемый пост)
И смотрим как скукоживается форма (SL.Add передаёт управление на TWinControl.CanAutoSize). Очень приятное и предсказуемое поведение, вселяющее пользователям твоей программы уверенность в её надёжности. 

блин, десктопным пользователям в большинстве случаев не нужна уверенность в надежности, им нужен функционал. 
Да, в твоем подобранном случае могло что-то произойти, но под Delphi 2006 такого нет, например. И фолт безобидный - специально проверил. И что, теперь в каждом случае безобразно валить прогу? Юзер сам перезапустит, если форма скукожится. Я вывожу лог исключения, и даю пользователю выбор , а ты - нет.
Ты валишь прогу - на всякий случай. Может, у юзера в твоей проге, в компоненте редактирования был несохраненный текст, который он долго составлял. Он будет потерян.
А в моей проге, даже если форма скукожится, либо еще что-то заглючит, юзер успеет этот текст хотя бы в блокнот перекопировать.
Так какое поведение будет лучше для юзера, твой принудительный шухер, или данный мной выбор? Что в конечном, эффективном счете будет less offensive?
Программа не умнее человека, а юзеру нужно дать выбор.


Цитата(CodeMonkey @  20.3.2011,  01:16 Найти цитируемый пост)

Для AV ты НЕ МОЖЕШЬ предложить алгоритм восстановления. Чувствуешь разницу?

Да, не могу. Но мой код и не будет вызывать AV на регулярной основе. Тем не менее 
порой прога вынуждена вызывать код библиотек, которые славятся нестабильностью: возми например AviSynth с набором самопальных фильтров - уникальных по своему функционалу, но фолтящих часто. Таков редактор скриптов AvsP. Он давит AV исключения( показывает, но не валится) - и тем хорош. Потому что если бы валился на всяком AV фолте, с ним бы работать было невозможно. А так удается пережить несколько фолтов до полного зависания (благо есть автосохранение. по твоей логике, после AV даже автосохранение было бы ненадежным, но на практике работает прекрасно)
Цитата(CodeMonkey @  20.3.2011,  01:41 Найти цитируемый пост)
Цитата(AlekXL @  17.3.2011,  22:27 Найти цитируемый пост)
Юзерам нравится умная и быстрая программа!


...и ненадёжная.

в теории. На практике практически никогда не было репортов о проблемах. 


Цитата(CodeMonkey @  20.3.2011,  01:41 Найти цитируемый пост)
Цитата(AlekXL @  17.3.2011,  22:27 Найти цитируемый пост)
Разве Windows не так запрограммирована? Я помню времена Windows 9x и Delphi 5, когда синий экран каждые два часа вылетал.


Нет. Согласно статистике, вина кода MS в BSOD - лишь в 5% случаев. 

это сейчас. Да Win сейчас продукт. Ты вспомни что было во времена Win95! Но они уже тогда делали деньги, а если бы теоретезировали, не было бы ни денег, ни, следовательно, продолжения разработки, ни  этих низких 5% процентов в настоящее время.

Цитата(CodeMonkey @  20.3.2011,  01:41 Найти цитируемый пост)
Добавлено через 4 минуты и 44 секунды
Цитата(AlekXL @  17.3.2011,  22:03 Найти цитируемый пост)
Причину я пока не выяснил.


Наверное пора открыть для себя понятие автогенерируемого отчёта об ошибке с боевых полей?


наверное нужно думать, о чем пишешь. При чем тут отчет? Там повторное освобождение памяти, а когда было первое  и почему повторно освобождается - кто скажет? Я знаю участок, где фолтит. Но причина фолта в другом месте или времени.




PM MAIL   Вверх
AlekXL
Дата 1.4.2011, 05:13 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 2.5.2008

Репутация: 0
Всего: 0



PS.
И посмотри вот на эти две ссылки и два скриншота, эксперт.
user posted image
оттсюда
и 
user posted image
отсюда

детали не важны, но если пораскинешь умом, то увидишь что два Delphi(Total и TheBat) приложения из числа наиболее коммерчески успешных ДАВЯТ AV. 
Так что давай закончим оффтоп, и ты не будешь мне капать на мозги своими теориями.
PM MAIL   Вверх
CodeMonkey
Дата 1.4.2011, 12:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
Да, в твоем подобранном случае могло что-то произойти, но под Delphi 2006 такого нет, например.


Подобранном? Да это наугад набранный код!

Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
И что, теперь в каждом случае безобразно валить прогу?


Повторяю вопрос: значит ли это, что нужно не пристёгиваться в автомобиле?

Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
Программа не умнее человека, а юзеру нужно дать выбор.


Дай тебе волю - ты и в BSOD вставишь [ Restart ] и [ Continue ].

Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
И что, теперь в каждом случае безобразно валить прогу? 


Упорно употребляемое тобой слово "безобразно" говорит о наличии детских страхов или предрассудков.

Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
Может, у юзера в твоей проге, в компоненте редактирования был несохраненный текст, который он долго составлял. Он будет потерян.


Я, кажется, понял, откуда твои детские страхи. Могу только сказать что ты сильно не прав.

Нет возможности описывать подробно, но если кратко: более 80% софта в мире написано не в Delphi. Это значит, что в большей их части не используется модель гашения исключений, как это имеет место быть в Delphi - потому что моделью по умолчанию обычно является вылет приложения.

Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
порой прога вынуждена вызывать код библиотек, которые славятся нестабильностью: возми например AviSynth с набором самопальных фильтров - уникальных по своему функционалу, но фолтящих часто. Таков редактор скриптов AvsP. Он давит AV исключения( показывает, но не валится) - и тем хорош. Потому что если бы валился на всяком AV фолте, с ним бы работать было невозможно. А так удается пережить несколько фолтов до полного зависания (благо есть автосохранение. по твоей логике, после AV даже автосохранение было бы ненадежным, но на практике работает прекрасно)


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

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

Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
Ты вспомни что было во времена Win95!


Багов было больше, кто ж спорит. А вот ЧТО это были за баги? Изменилось ли процентное соотношение? Я не удивлюсь, если процентное отношение было такое же. Вышел Win95 - это же так клёво: и все ломанулись писать под него софт. Но читать документацию - это же куча работы! Неудивительно, что софт писали тяп-ляп. Вот тебе и куча багов. Вина ли тут Microsoft? Если только в том, что выпустили ОС, под которую ломанулись писать софт.

Почему сейчас меньше багов? Потому что Microsoft насильно заставляет разработчиков их искать и исправлять, не даёт злоупотреблять системой и пакостить (один из примеров - WHQL).

Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
а когда было первое  и почему повторно освобождается - кто скажет?


FastMM, фильтр к MM или любой другой аналогичный механизм.

Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
И посмотри вот на эти две ссылки и два скриншота


И обе ссылки - прекрасное подтверждение, почему так делать нельзя.

Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
увидишь что два Delphi(Total и TheBat) приложения из числа наиболее коммерчески успешных ДАВЯТ AV


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

Итого: пора честно признаться себе, что ты пишешь ###-код. Само по себе это не так плохо (на ###-коде вполне можно писать успешные программы), как то, что ты это пропагандируешь как правильный подход к разработке.

P.S.
Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
эксперт


Я работаю в тех-поддержке EurekaLog: ты не представляешь, как меня (вырезано цензурой, смысл: достал) код, который гасит исключения. Из-за того, что кто-то решил вставить лишний try-excpet потому что "ох, ну этот код такой глючный! Я не знаю что с ним делать!" потом возникают проблемы в диагностике. У клиента возникают проблемы, но чтобы их найти, надо перелопатить миллионы строк кода, который постоен по такому принципу. Не, да ну его на###...


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
AlekXL
Дата 1.4.2011, 17:39 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 2.5.2008

Репутация: 0
Всего: 0



Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Подобранном? Да это наугад набранный код!

твой наугад выбранный код не дает проблем на Delphi 2006. 


Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
И что, теперь в каждом случае безобразно валить прогу?


Повторяю вопрос: значит ли это, что нужно не пристёгиваться в автомобиле?

избавь меня от таких аналогий.



Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)

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

разработчики многих этих фильтров больше не поддерживают свой код. Так что либо используешь фильтр, либо нет. И многие такие фильтры практически безальтернативны. Лучше так, чем совсем никак.


Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Цитата(AlekXL @  1.4.2011,  06:13 Найти цитируемый пост)
Может, у юзера в твоей проге, в компоненте редактирования был несохраненный текст, который он долго составлял. Он будет потерян.


Я, кажется, понял, откуда твои детские страхи. Могу только сказать что ты сильно не прав.
 Могу сказать что это не страхи, а просто твердая позиция: как пользователя кода, так и создателя.


Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Багов было больше, кто ж спорит. А вот ЧТО это были за баги?  
 Ага, все баги были от сторонних производителей софта и дров. Ты, случаем, и в MS в то время зарплату получал?




Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Изменилось ли процентное соотношение? Я не удивлюсь, если процентное отношение было такое же. 
 Я же уверен, что соотношение было другим, даже по сравнению с 98SE , не говоря уж о XPSP3. И уверен так же, что подавляющее большинство серьезных программистов, которым не нужно к тому же искать пятый угол, считают так же.

 

Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
а когда было первое  и почему повторно освобождается - кто скажет?


FastMM, фильтр к MM или любой другой аналогичный механизм.
 что-то мне не верится, что FastMM хотя бы покажет мне лог стека вызовов для первого, успешного освобождения, а не для второго, обстоятельства которого мне и так известны.



Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Несложно сообразить, что делают они это по той простой причине, что это поведение по умолчанию в Delphi, и чтобы ему не следовать надо приложить определённые усилия.

ага, разработчики этих программ поленились добавить  сотню строчек кода, которые валят прогу при любом AV-шухере, к десяткам или сотням тысяч строчек кода, что они уже написали.

Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Не надо тут тыркать "известным софтом" - там порой такой ###-код встречается, что боже упаси (встречается на форумах, да и репортить о проблемах приходилось не раз). 

ага, код Total, theBat  - "###-код", один ты белый и пушистый. 


Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Итого: пора честно признаться себе, что ты пишешь ###-код.

если этот код не хуже, чем в Total или TheBat, то однозначно ДА И знаю, что у 99.9% пользователей, как и у пользователей Total и TheBat - не будет нареканий на стабильность.
Потому что я усматриваю в поведении этих программ (при сбоях) успешную бизнес модель, а вовсе не детские страхи.

Добавлено через 4 минуты и 1 секунду
Цитата(CodeMonkey @  1.4.2011,  12:33 Найти цитируемый пост)
Цитата(AlekXL @  1.4.2011,  05:40 Найти цитируемый пост)
Программа не умнее человека, а юзеру нужно дать выбор.


Дай тебе волю - ты и в BSOD вставишь [ Restart ] и [ Continue ].

только не опускайся до лжи и клеветы
Цитата(AlekXL @  17.3.2011,  21:03 Найти цитируемый пост)
Вопрос в том, насколько велика эта вероятность а также каков круг задач приложения. Если вебсервер или банковский биллинг - то да ... нужно аварийно завершать, а если десктопное приложение - тут от специфики приложения зависит.


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: delphi | Следующая тема »


 




[ Время генерации скрипта: 0.0894 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.