Законы Мерфи - Программист Программа
• Совет
начинающему программисту. Никогда не исправляйте найденные
ошибки, ибо это повлечет за собой появление неизвестного
числа ненайденных. Лучше опишите их в сопроводительной
документации как особенность программы.
• Компьютер *делает из всех нас дураков*.
• Если бы строители строили здания так же, как программисты
пишут программы, первый залетевший дятел разрушил бы
цивилизацию.
• Сложность программы растет до тех пор, пока не превысит
способности программиста.
• Непечатный жаргон - это тот язык, которым решительно все
программисты владеют в совершенстве.
• Программист, написавший программу, становится ученым.
• Чем больше программист делает ошибок, тем быстрее он
делается ученым.
• Указание начинающему программисту. Если вы с первого раза
сумели написать программу, в которой транслятор не обнаружил
ни одной ошибки, сообщите об этом системному программисту.
Он исправит ошибки в трансляторе.
• Закон необходимости ошибок. Программист может обнаружить
ошибку только в чужой программе.
• Свойство четности ошибок. Если написанная программа
сработала правильно, то это значит, что во время ее работы
выполнилось четное число ошибок или программист не понял
задание.
• Языковый редактор, призванный уберечь программиста от
синтаксических ошибок, позволяет вносить в программу весьма
хитроумные ошибки, которые не удается обнаружить ни
транслятором, ни отладчиком. Обычный текстовый редактор
таких возможностей не предоставляет.
• Работающая над программой группа питает отвращение к
еженедельной отчетности о достигнутых результатах, поскольку
она слишком явно свидетельствует об отсутствии таковых.
• Машинная программа выполняет то, что вы ей приказали
делать, а не то, что бы вы хотели, чтобы она делала.
• Любая программа
обходится дороже и требует больших затрат времени, чем
предполагалось.
• Если программа полностью отлажена, ее нужно будет
скорректировать.
• Любая программа стремится занять всю доступную память.
• Ценность программы прямо пропорциональна весу ее *выдачи*.
• Самая грубая ошибка будет выявлена, лишь когда программа
пробудет в производстве, по крайней мере, полгода.
• Увеличение числа участников при подготовке опаздывающей
программы только замедляет процесс.
• Неточно спланированная программа требует в три раза больше
времени, чем предполагалось; тщательно спланированная -
только в два раза.
• В любой программе есть ошибки.
• Закон пропорциональности. Чем более программа необходима,
тем больше в ней ошибок.
• Ошибок не содержит лишь совершенно ненужная программа.
• Одинаковые ошибки необязательно делать каждый раз,
достаточно сделать одну, а затем обращаться к ней по мере
необходимости из любого места программы.
• На ЭВМ с
параллельной архитектурой может выполняться несколько ошибок
одновременно.
• Любая действующая программа устарела.
• Системные программы облегчают процесс написания прикладных
программ и их ошибок.
• Определение. Тестирование - это процесс нахождения ошибок
в тесте. Хороший тест должен содержать ошибки,
компенсирующие их нехватку в тестируемой программе.
• Программа-транслятор, предназначенная для перевода
программ с языка высокого уровня на машинный язык, при
переводе порождает ошибки. Ошибки, которые содержались в
исходном описании, переводятся безошибочно.
• Если ты наконец-то выучил язык программирования, то он
никому уже не нужен.
• Если ты думаешь, что знаешь язык программирования, то
ошибаешься - твои знания безнадежно устарели.
• Если язык программирования необычайно полезен и популярен
в этой стране, то за ее пределами он никому не нужен.
• Если отладка - процесс удаления ошибок, то
программирование должно быть процессом их внесения.
• Закладывая что-то в ЭВМ, помните, куда вы это положили.
• Искусственный интеллект и близко не сравнится с
естественной глупостью.