парфюмерия: ароматы, рейтинги, бренды, персоны, новости, события...

Теория ошибок

Теория ошибок

Теория ошибок:
Ошибки так же неисчерпаемы, как и атом.

Аксиома теории ошибок:
В любой программе есть ошибки.

Закон пропорциональности:
Чем более программа необходима, тем больше в ней ошибок.
Следствие:
Ошибок не содержит лишь совершенно ненужная программа.

Фундаментальный закон теории ошибок:
На ошибках учатся.



Следствия:
● Программист, написавший программу, становится ученым.
● Чем больше программист делает ошибок, тем быстрее он делается ученым.
● Крупный ученый-программист никогда не пишет правильные программы.
Замечание:
На то он и ученый.

Закон необходимости ошибок:
Программист может обнаружить ошибку только в чужой программе.
Следствие:
Ошибке не всё равно, кто её обнаружит.

Определение языка ошибок:
Будем называть языком ошибок правила, в обход которых пишутся программы.

Свойства программных ошибок:
● Ошибки могут следовать друг за другом.
● От перестановки двух эквивалентных ошибок результат не меняется.
● Две последовательные ошибки можно объединить в одну, более сильную.
● Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
● Ошибки могут образовывать циклы. Наиболее устойчивый из них - бесконечный.
● Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).
● Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.

Свойство чётности ошибок:
Если написанная программа сработала правильно, то это значит, что во время её работы выполнилось четное число ошибок или программист не понял задание.
Cвойства чётности ошибок для политиков:
Ошибка, повторенная дважды, перестаёт быть ошибкой.

Взаимодействие ошибок с базовой операционной системой:
● Во время исполнения ошибки имеют наивысший приоритет.
● Прервать исполнение ошибки может только другая, более активная ошибка.
● Запросы операционной системы к ошибкам ошибками могут игнорироваться.
● Запросы ошибок к операционной системе игнорироваться не могут.
● При работе с файлами ошибки могут пользоваться файловой системой базовой ОС и её ошибками.
● На вычислительной машине с параллельной архитектурой может выполняться несколько ошибок одновременно.
● Системные программы облегчают процесс написания прикладных программ и их ошибок.



Первое правило успешного старта проекта:
До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.

Определение тестирования:
Тестирование - это процесс нахождения ошибок в тесте.

Признак хорошего тестового скрипта:
Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.

Главное свойство языкового редактора:
Языковый редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удаётся обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.

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

Совет начинающему программисту:
Никогда не исправляйте найденные ошибки, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.

Указание начинающему программисту:
Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.

Принцип матёрого программиста:
Ошибка? Это не ошибка, это системная функция.

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

Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Выдавать глобальные идеи - это удовольствие; искать отвратительные маленькие ошибки - вот настоящая работа.

Как только проект окончательно принят, он становится устаревшим в смысле своих концепций.

Настойчивость руководителя может определить график выполнения задания, но не в состоянии определить срок его действительного завершения.

Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.

Если за две минуты омлет ещё не готов, у заказчика два выбора - подождать или съесть его сырым.

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

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

Пользователь не знает, чего он хочет, пока не увидит то, что он получил.

На пустом диске можно искать вечно.

Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения.

Вы уже дошли до состояния, когда у вас нет времени, чтобы разрешить те проблемы, которые отнимают у вас все время?

Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы.


ParfumClub.org Logo



Если в вашей коллекции есть другие постулаты Теории ошибок или законов Мерфи для программистов и вы хотите ими поделиться - высылайте их на наш электронный адрес. В теме письма, пожалуйста, укажите «Теория ошибок». После проверки присланный вами материал будет размещён на этой странице.

Как следствие из выше сказанного: информация для размещения на страницах сайта предоставляется пользователями, комментарии читателей к представленным материалам представляют собой их частное мнение, которое может не совпадать с точкой зрения редакции «ParfumClub.org». Здесь же вы можете увидеть ссылки на онлайн-магазины с предложениями купить ту или иную продукцию. Следует отметить, что сообщество «ParfumClub.org» является некоммерческим проектом, не контролирует эти торговые площадки, не имеет к ним никакого отношения и, соответственно, снимает с себя ответственность за какие-либо последствия, которые могут возникнуть в связи с использованием таких Интернет-ресурсов.