еще 1001
Мэрфи
Законы Мерфи
в программировании
классика
- Требовать
и эффективности, и гибкости от
одной и той же программы - все
равно, что искать
очаровательную и скромную
жену... по-видимому, нам следует
остановиться на чем-то одном из
двух. (Фредерик Брукс-мл)
- Чтобы
обнаруживать ошибки,
программист должен иметь ум,
которому доставляет
удовольствие находить изъяны
там, где, казалось, царят
красота и
совершенство. (Фредерик
Брукс-мл)
- Выдавать
глобальные идеи - это
удовольствие; искать сволочные
маленькие ошибки - вот
настоящая работа. (Фредерик
Брукс-мл)
- Как только
проект окончательно принят, он
становится устаревшим в смысле своих
концепций.
- Настойчивость
руководителя может определить
график выполнения задания, но не
в состоянии определить срок
его действительного
завершения. (Фредерик
Брукс-мл)
- Глупец,
лишенный способности
посмеяться над собой вместе с
другими, не сможет долго
выносить программирование. (Фредерик
Брукс-мл)
- Если за
две минуты омлет еще не готов, у
заказчика два выбора - подождать
или съесть его сырым. (Фредерик
Брукс-мл)
- Когда
кажется, что все уже работает,
все объединено в систему - вам
еще осталось работы на
четыре месяца. ( Чарльз
Портман , ICL )
- Генерация
случайных чисел - слишком
важный вопрос, чтобы оставлять
его на волю случая. (Роберт
Ковзю, Окриджская лаборатория.)
- Я не знаю
причины, по которой нам не
следует этого делать, но,
возможно,
- позже мы
придумаем какую-нибудь. (
Марк Дэвисон )
- Ошибка?
Это не ошибка, это системная
функция. (Т. Джон
Уэнделл)
- Пользователь
не знает, чего он хочет, пока не
увидит то, что он получил. (
Э. Йодан )
- На пустом
диске можно искать вечно.
- Если
отладка - процесс удаления
ошибок, то программирование
должно быть процессом их
внесения. ( Э.Дейкстра )
- Вы уже
дошли до состояния, когда у вас
нет времени, чтобы разрешить те проблемы,
которые отнимают у вас все
время? ( Марк Дэвидсон )
- Компьютеры
бесподобны: за несколько минут
они могут совершить такую
грандиозную ошибку, какую не в
состоянии сделать множество
людей за многие месяцы. (М.
Мичэм)
В.Тихонов. Теория
ошибок
- Ошибки так
же неисчерпаемы, как и атом.
- Аксиома. В
любой программе есть ошибки.
- Закон
пропорциональности. Чем более
программа необходима, тем
больше в ней ошибок.
- Следствие.
Ошибок не содержит лишь
совершенно ненужная программа.
- Фундаментальный
закон теории ошибок. На ошибках
учатся.
- Следствие
1. Программист, написавший
программу, становится ученым.
- Следствие
2. Чем больше программист
делает ошибок, тем быстрее он
делается ученым.
- Следствие
3. Крупный ученый-программист
никогда не пишет правильные
программы.
- Замечание.
На то он и ученый.
- Указание
начинающему программисту. Если
вы с первого раза сумели
написать программу, в которой
транслятор не обнаружил ни
одной ошибки, сообщите об этом
системному программисту. Он
исправит ошибки в трансляторе.
- Закон
необходимости ошибок.
Программист может обнаружить
ошибку только в чужой
программе.
- Следствие.
Ошибке не все равно, кто ее
обнаружит.
- Совет
начинающему программисту.
Никогда не исправляйте
найденные ошибки, ибо это
повлечет за собой появление
неизвестного числа
ненайденных. Лучше опишите их в
сопроводительной документации
как особенность программы.
- Определение.
Будем называть языком ошибок
правила, в обход которых
пишутся программы.
- Язык
ошибок. Ошибки могут следовать
друг за другом.
- От
перестановки двух
эквивалентных ошибок
результат не меняется
(коммутативность
эквивалентных ошибок).
- Две
последовательные ошибки можно
объединить в одну, более
сильную.
- Одинаковые
ошибки необязательно делать
каждый раз, достаточно сделать
одну, а затем обращаться к ней
по мере необходимости из
любого места программы.
- Ошибки
могут образовывать циклы.
Наиболее устойчивый из них -
бесконечный.
- Ошибки
могут вызывать друг друга и
сами себя (рекурсивность
ошибок).
- Ошибки
допускают многократное
вложение друг в друга. Две
одинаковые вложенные ошибки
называются четной ошибкой и
ошибкой не являются.
- Свойство
четности ошибок. Если
написанная программа
сработала правильно, то это
значит, что во время ее работы
выполнилось четное число
ошибок или программист не
понял задание.
- Формулировка
вышеприведенного свойства,
предназначенная для политиков.
Ошибка, повторенная дважды,
перестает быть ошибкой.
- Взаимодействие
ошибок с базовой операционной
системой.
- Во время
исполнения ошибки имеют
наивысший приоритет. Прервать
исполнение ошибки может только
другая, более активная ошибка.
- Запросы
операционной системы к ошибкам
ошибками могут игнорироваться.
- Запросы
ошибок к операционной системе
игнорироваться не могут.
- При работе
с файлами ошибки могут
пользоваться файловой
системой базовой ОС и ее
ошибками.
- На ЭВМ с
параллельной архитектурой
может выполняться несколько
ошибок одновременно.
- Системные
программы облегчают процесс
написания прикладных программ
и их ошибок.
- Определение.
Тестирование - это процесс
нахождения ошибок в тесте.
Хороший тест должен содержать
ошибки, компенсирующие их
нехватку в тестируемой
программе.
- Языковый
редактор, призванный уберечь
программиста от
синтаксических ошибок,
позволяет вносить в программу
весьма хитроумные ошибки,
которые не удается обнаружить
ни транслятором, ни отладчиком.
Обычный текстовый редактор
таких возможностей не
предоставляет.
- Программа-транслятор,
предназначенная для перевода
программ с языка высокого
уровня на машинный язык, при
переводе порождает ошибки.
Ошибки, которые содержались в
исходном описании, переводятся
безошибочно.
- Заключительный
совет тем, кто до него добрался.
До начала работы над проектом
следует тщательно продумать
все необходимые ошибки и связи
между ними. Это значительно
упростит работу над ошибками в
самом проекте.
Фольклор
- Пространство
- иллюзия, дисковое
пространство - тем более.
- Компьютер
- устройство разработанное для
ускорения и автоматизации
человеческих ошибок.
- Введите
любое 11-значное простое число,
чтобы продолжить...
- Reset - не
кнопка, а горькая
необходимость.
- Любая
программа, которая успешно
прошла тестирование, устарела.
- Бывало ли,
что Вы переставали думать, а
затем забывали
перезапуститься?
- Если
что-то у Вас получилось
кривовато, назовите это
бета-версией.
- 'Это не -
дефект, это скрытая и редко
используемая характеристика'.
- Многозадачная
работа допускает совершение
нескольких ошибок
одновременно.
- Природа
ненавидит уравнения с
дифференциалами второго
порядка.
- Не
позволяйте компьютеру
догадаться, что вы спешите.
- Нажмите
все клавиши, чтобы продолжить...
- Нажмите
любую клавишу, чтобы
продолжить или любую другую,
чтобы выйти.
- 'Стать
программистом и никогда не
увидеть мир'.
- Независимое
программное обеспечение не
будет работать с ЛЮБЫМ
программным обеспечением.
- Дефектная
программа является
абстрактным теоретическим
понятием.
- Дефекты -
дети глюков!
- Слон - это
Мышь, сделанная по
государственному заказу.
- 43-й Закон
компьютерной обработки: Все
что может испортиться, испор:.