Данная тема предназначена для обсуждения развития проекта "Подводные камни", который был создан именно благодаря этому обсуждению. Здесь принимаются ваши предложения, замечания и пожелания по работе раздела. В теме сохранены первоначальная формулировка и весь ход предварительного обсуждения. Для истории :о) Изначальный вариант темы: Я согласна с Алексем Вуколовым и Портосом. Тема, без сомнения, заслуживает внимания, несмотря на то, что немало мест в сети ей посвящены. И если жители Королевства видят смысл в том, чтобы внести свою долю, то есть "ее обобщить, дополнить и т.д. и т.п", стоит это обсудить.
По просьбе господина Портоса аудиенция на предмет организации рубрики предоставлена. :о)
Обсуждается вопрос :
"Нужно или нет организовывать раздел "Подводные камни" и что он должен содержать?"
От себя добавлю, что обсуждать желательно именно эту тему, а не частные проблемы и "глюки".
Хотелось бы напомнить, что раздел кто-то должен вести и работа эта серьезная, таким образом будет нужен координатор проекта.
Текст предварительного обсуждения на Базарной площади. Елена Филиппова
Всего в теме 100 сообщений
Добавить свое сообщение
Отслеживать это обсуждение 
- Тестирование проекта. Отладка.
- Централизованная обработка ошибок
- Бета-тестирование
- Давайте учиться на ошибках.
- Почему программисты допускают ошибки?
- Автоматизированные тесты для GUI
- О системах контроля ошибок
- Вопросы оптимизации кода
№ 80 24-04-2006 07:49 |  |
Ответ на »сообщение 79« (Елена Филиппова)
___________________________
Написать письмо "турецкому султану" не проблема Прочитать его для Borland-а боюсь будет проблема с моим знанием английского и его знанием русского.
№ 79 24-04-2006 03:03 |  |
№ 78 23-04-2006 08:38 |  |
Ответ на »сообщение 77« (Cepгей Poщин)
___________________________
true - если 0 и false во всех остальных случаях Пардон конечно, наоборот.
Вчера поставил второе обновление на bds2006, и с грустью обноружил, что из найденых мною камней убран только один. В этой связи у меня предложение или воззвание к тем, у кого лицензионная версия, и кто хорошо знает буржуйский язык: давайте как-нибудь напишим письмо "турецкому султану" :o) обо всех ключевых ошибках. У кого-то есть опыт по официальной отправке информации об обнаруженных ошибках?
№ 77 23-04-2006 08:17 |  |
Ответ на »сообщение 76« (Arioch)
___________________________
Используй ByteBool, WordBool, LongBool. Эти типы действительно интерпретируются: true - если 0 и false во всех остальных случаях. boolean только 0 и 1, а остальные значения ошибочные.
function BoolFun: Boolean;
begin
Result := ByteBool(2);
end;
Оператор присваивания := производит корректное приведение типов.
А при приведении типов boolean(bytevalue), int64(doublevalue) и пр. не производится ни каких дополнительных проверок и ответственность за правильность ложится на программиста.
function BoolFun: Boolean;
begin
Result := 2<>0;
Result := 2;
Result :=boolean(2);
end;
Данная ошибка более подходит в раздел:
Ошибки программиста тактического уровня. Причины - те же, что и в категории ПРОЕКТИРОВАНИЕ. Неправильное решение локальных задач. То, что было разрешено в более ранних версиях языка, в новых может стать "камнем" - как, например, обращение S[0], где S:string. Неочевидные и недокументированные особенности средств разработки, воспринимаемые как ошибки.
№ 76 23-04-2006 04:43 |  |
Ответ на »сообщение 75« (panda)
___________________________
Никто не пытается сломать Delphi. Это было во вполне реальном проекте.
Какой warning ? что непонятно, будет ли result равен true или false ?
А мне в данном случае этого вполне хватило бы. Мне для отладки этого кусочка как раз устраивает, чтобы компилятор мне подсовывал то true, то false.
Вот только он, зараза, умудряется еще что-то подсунуть, у него трехзначная логика однако.
Я кстати не говорю о случае, когда boolean возвращается из asm-блока.
Наверное стоит попробовтаь, м.б. там Delphi вспомнит что в байте 8 бит ?
№ 75 12-04-2006 01:17 |  |
Ответ на »сообщение 74« (Arioch)
___________________________
Рекомендации бубут видисо не пользоваться массивы от boolean.
Вообще-то нормальная рекомендация в таком случае - обращать внимания на warnings и не пытаться сломать Delphi. А массивы от boolean - очень хорошая вещь.
№ 74 11-04-2006 16:42 |  |
№ 72 20-02-2005 06:13 |  |
->> № 63 14-10-2002 02:51
А Free вместо Destroy пробовал?
№ 71 12-11-2002 20:40 |  |
Вот такие иногда приходят "материалы" в адрес Подводных камней:
=====================================================================
Здравствуйте.
Я хотел бы рассказать о следущем "камне":
в 4-й(но не более) версии дельфи при получении прав на перезагрузку
машины с системой в2к/хп и последущим вызовом функции ExitWindowsEx,
она выдает ошибку об отсутствии прав, хотя функции их получения
возвращают true. Причина в неккоректном описании функций файла
windows.pas и прочих. Как не старался решить проблему, экспортировав
новые модули, результат нулевой.
=====================================================================
Это всем пример, как НЕ НАДО оформлять камни.
Камень без доказательства, или возможности доказательства - это не камень, а "мыльная опера", бабушкина сказка, просто программерский треп. Как проверить без исходного текста, если говорится о каких-то "функциях, возвращающих true"? Неизвестно, как их программист вызывал, и те ли это функции, и как именно они объявлены в модуле Windows.pas в Delphi 4 (который еще поискать надо!)?
К тому же, нет никакого решения проблемы. Автор не только не нашел его, но и не дал возможности другим, поскольку не предоставил полной информации.
Такие сообщения порождают больше вопросов, чем дают ответов, а именно последнее есть цель публикации материала в разделе Подводные камни.
Надеюсь, понятно, что подобные "материалы" не будут приниматься к обработке.
Спасибо за внимание.
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|