Законы Мерфи (Программистские законы и правила)

29.05.09

Сообщество - О жизни

Объединяет все эти многочисленные законы Мерфи - они прекрасно объясняют вам причины, по которым что-либо в вашей жизни или в делах идет не так как надо.
Классика:

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

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

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

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

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

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

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

Когда кажется, что все уже работает, все объединено в систему - вам еще осталось работы на четыре месяца. ( Чарльз Портман , ICL )

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

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

Ошибка? Это не ошибка, это системная функция. (Т. Джон Уэнделл)

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

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

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

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

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

Профессиональный программистский фольклор:

Пространство - иллюзия, дисковое пространство – тем более.

Компьютер - устройство разработанное для ускорения и автоматизации человеческих ошибок.

Введите любое 11-значное простое число, чтобы продолжить...

Reset - не кнопка, а горькая необходимость.

Любая программа, которая успешно прошла тестирование, устарела.

Бывало ли, что Вы переставали думать, а затем забывали перезапуститься?

Если что-то у Вас получилось кривовато, назовите это бета-версией.

“Это не - дефект, это скрытая и редко используемая характеристика”.

Многозадачная работа допускает совершение нескольких ошибок одновременно.

Природа ненавидит уравнения с дифференциалами второго порядка.

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

Нажмите все клавиши, чтобы продолжить...

Нажмите любую клавишу, чтобы продолжить или любую другую, чтобы выйти.

“Стать программистом и никогда не увидеть мир”.

Независимое программное обеспечение не будет работать с ЛЮБЫМ программным обеспечением.

Дефектная программа является абстрактным теоретическим понятием.

Дефекты - дети глюков!

Слон – это Мышь, сделанная по государственному заказу.

43-й Закон компьютерной обработки: Все что может испортиться, испор….

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

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

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

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

Следствие. Ошибок не содержит лишь совершенно ненужная программа.

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

Следствие 1. Программист, написавший программу, становится ученым.

Следствие 2. Чем больше программист делает ошибок, тем быстрее он делается ученым.

Следствие 3. Крупный ученый-программист никогда не пишет правильные программы.

Замечание. На то он и ученый.

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

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

Следствие. Ошибке не все равно, кто ее обнаружит.

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

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

Язык ошибок. Ошибки могут следовать друг за другом.

От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).

Две последовательные ошибки можно объединить в одну, более сильную.

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

Ошибки могут образовывать циклы. Наиболее устойчивый из них - бесконечный.

Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).

Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.

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

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

Взаимодействие ошибок с базовой операционной системой.

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

Запросы операционной системы к ошибкам ошибками могут игнорироваться.

Запросы ошибок к операционной системе игнорироваться не могут.

При работе с файлами ошибки могут пользоваться файловой системой базовой ОС и ее ошибками.

На ЭВМ с параллельной архитектурой может выполняться несколько ошибок одновременно.
Системные программы облегчают процесс написания прикладных программ и их ошибок.

Определение. Тестирование - это процесс нахождения ошибок в тесте. Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.

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

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

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

См. также

О жизни Linux Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Использование Linux в качестве основной ОС для программиста 1С, возможно ли это? Решил поделиться личным опытом работы перехода на эту систему. В статье моя история без технических деталей максимально простым языком. И, спойлер, да, жизнь на Линуксе для разработчика 1С возможна и с каждым годом становится всё комфортней. Статья рассчитана на людей, с Линуксом не знакомых, специалистов прошу не кидаться помидорами.

16.05.2024    3831    soulner    32    

39

О жизни Россия Бесплатно (free)

Подводим итоги работы в 1С за 2023 год. Все о вас: 4 подробных раздела с цифрами, графиками и ужасными цветами диаграмм (должна же где-то быть стабильность).

08.02.2024    24325    Neti    85    

116

О жизни Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

22.01.2024    4385    biimmap    67    

72

О жизни Конфигурации 1cv8 Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

16.01.2024    5786    biimmap    99    

79

О жизни Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Импортозамещение увеличило потребность в архитекторах, аналитиках, разработчиках 1С, в т.ч. по ЗУП. Все их ищут всеми возможными способами, но не могут найти и не знают, чем же их завлечь к себе!? Давайте разберёмся в этом вопросе!

27.11.2023    4747    biimmap    52    

73

О жизни Сообщество Бесплатно (free)

Прочитав название публикации, мысль возникает о свадьбе... Но речь не об этом!

25.08.2023    2734    biimmap    24    

51

О жизни Россия Бесплатно (free)

«Многие кандидаты хотят от собеседования простую вещь: чтобы оно длилось пять минут и брали сразу на 300 000 в наносекунду», — Эльдар Мингалиев, разрабатывает новые форматы собеседований.

22.08.2023    14491    Neti    161    

108
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4683 13.08.08 12:01 Сейчас в теме
Вот если бы это донести до тупых юзеров.
2. Поручик 4683 13.08.08 12:06 Сейчас в теме
Ах, да, где-то видел:
Когда баг задокументируют, он становится фичей.
3. Aleksey.z 42 22.01.13 12:00 Сейчас в теме
А почему природа не любит диф. уравнения второго порядка?
4. dyak84 22.01.13 19:18 Сейчас в теме
Дааа нет слов все абсолютно точно. Автору спасибо
Оставьте свое сообщение