![]() | |||
Усмешки Голого Дела
Компьютеры ненадежны, но люди еще ненадежнее!
Давным-давно, когда компьютеры были большими, я, Голый Дед, встретил в сети прелюбопытнейший документ – Законы Мерфи", переложенные для компьютера Много перфокарт было пробито с тех пор но законы верны и по сей день.
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит. Вопрос читателям какой программный продукт напоминает вам эта фраза. Я стар, память подводит, но где-то я его видел. Любая действующая программа устарела. Вспоминаю слова Дмитрия Морозовского, фидошника "Истинного компьютерщика отличает постоянное желание все апгрейдить и пэтчить". Таким образом, компьютерщики пытаются бороться с этим правилом, да бесполезно все это. Я то уж знаю Любая программа стремится занять всю доступную память.
А сейчас верно и другое правило: "Для нормальной работы любой новой операционной системы нужно в два раза больше памяти, чем у вас есть сейчас". Если программа пошла сразу, что-то здесь не так. Я в таких случаях от греха подальше ее останавливаю. Почесываю бороду и ищу ошибки. И, вправду, часто нахожу, но парочку – они друг дружку компенсировали.
Отсюда правило: "Если программа работает, значит все ее ошибки симметричны".
Ошибка? Это не ошибка, это системная функция. Встречается и такое Только называют такие ошибки вот как НЕДОКУМЕНТИРОВАННАЯ системная функция.
Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения. Интересно какой из этих процессов для вас более трудоемкий? У меня оба отнимают одинаковое количество времени.
Самая грубая ошибка будет выявлена, лишь когда программа пробудет в производстве по крайней мере полгода. Я бы по-другому сказал: "Лишь когда она принесет наибольший ущерб". Давно был такой случай новейший американский самолет при пересечении экватора переворачивался вверх брюшком. Долго не могли понять в чем дело, а потом обнаружили ошибку программист навигационного оборудования забыл в одном месте минус поставить. Вот оно как.
Сложность программы растет до тех пор пока не превысит способности программиста. Видать, у этого программиста, она их превысила.
Как же бороться с подобными ошибками? Так и людей поубивать можно. Что ж, следующее правило: "В поиски повышения надежности будут вкладываться средства до тех пор, пока они не превысят величину убытков от неизбежных ошибок или пока кто-нибудь не потребует, чтобы была сделана хоть какая-то полезная работа".
Много хорошего тоже плохо. Увеличение числа участников при подготовке опаздывающей программы только замедляет процесс. И процессу разложения программы не помогает ничто ни объектная ее ориентированность, ни документированность. Более того, работающая над программой группа питает отвращение к еженедельной отчетности о достигнутых результатах, поскольку та слишком явно свидетельствует об отсутствии таковых.
Если долго портить машину, она сломается. Продемонстрирую на примере программного обеспечения. Практически половина новоявленных юзеров при знакомстве с редактором "Лексикон" считают необходимым посмотреть, что же у неготам "внутре" (вфайле LEXICON EXE). Причем делают это, сами понимаете, с помощью вышеназванного редактора. И, конечно же, не забывают на выходе нажать Enter для сохранения произведенных модификаций. Если "Лексикон" не защищен от записи, то пользователь становится весьма агрессивен. "Опять ваш компьютер сломался. Только что работал с "Лексиконом", и было все нормально, а сейчас запускаю его – и висит". А с компьютерами с платами всякими и похуже бывает. И что интересно, какая бы неприятность ни случилась, всегда найдется тот, кто знал, что так оно и будет.
И напоследок даю совет любую техническую проблему можно преодолеть, имея достаточно времени и денег.
Ваш Голый Дед.
P.S. Вам всегда будет не хватать либо времени, либо денег.
Записывал за дедом Михаил Едемский.