Як програмісту не оступитися?.

підіймається по крутому схилу альпініст. Уявляєте, що буде, якщо він оступиться, а страхувальний трос підведе? Уявили? Не встигли? А він вже долітає. Дно прірви зовсім близько ...


Із серії парадокси програмування


підіймається по крутому схилу альпініст. Уявляєте, що буде, якщо він оступиться, а страхувальний трос підведе? Уявили? Не встигли? А він вже долітає. Дно прірви зовсім близько ... Стоп, вибачте, я мав на увазі програміст, і не підіймається, а сидить. Рухається тільки мишка у його руці. Програміст - це зовсім інша справа - скажете Ви. Але думаєте, йому оступитися ніде? Є! І в набагато більшою мірою, ніж альпіністові. Збій комп'ютера, втрата інформації, вкравши в програму помилка, завалами системи. Всього не перерахуєш. Тільки до дна прірви він не долетить. На шляху зустріне відділ кадрів. А там вже з ним розберуться. Якщо до відділу кадрів не долетить, то, до великих неприємностей - це точно. Принаймні, дрібні завжди гарантовані.


Але не будемо так похмуро. Є елементарні дії, які дозволяють уникнути такого результату. Розглянемо їх.
1.Делайте регулярні копії своїх робіт або переконайтеся, що вони робляться автоматично (я б підстрахувався сам).
2.При копіюванні важливої ??інформації з одного вікна в інше краще, щоб вікно-приймач було порожнім. Тоді Ви ніколи не переплутаєте з якого вікна в яке копіювати. (Уявіть, що в другому вікні попередня копія інформації, а Ви на якийсь момент відволіклися і випадково перемістили мишку. І перше вікно у Вашій свідомості раптом стало другим, а друге - першим.) Випадки, коли копія затирала оригінал, у мене в практиці були. Один раз я навіть таке зробив сам.


3.Ізбегайте елементарної плутанини! Припустимо - у Вас два ярлика або модуля. Спочатку треба опрацювати з одним, потім з іншим. Інтерфейс у них однаковий, не розгледиш. І тільки на глибокому розрахунковому рівні буде різниця. Ви пропрацювали з першим і пішли на обід. Повернувшись, Ви спантеличені, який же модуль залишилося запустити. Ви подумки переплутали їх! У цьому випадку краще не мати ці ярлички поруч. У крайньому випадку тимчасово перемістіть другий, щоб випадково на нього не натиснути або видаліть! Потім відновите. Натомість Ви будете впевнені, що пропрацювали з тим, що треба. У мене була така проблема. Треба було в десяти директоріях запустити модуль М1, а поруч знаходився модуль М. Видимих ??відмінностей при їх запуску не спостерігалося. Я діяв швидко, але на п'ятому запуску я зловив себе на тому, що запускаю, як зазвичай, модуль М, а не М1, який був тимчасовим. Скільки разів я вже помилився? Цього відстежити простим шляхом я не міг. Тому я тимчасово позбувся від присутності модуля М і провів всю роботу заново.


4.Не завантажуйте мізки зайвим! Якщо треба ввести якийсь оператор в програму або потрібну команду, то краще, якщо можливо, скопіювати її з вже налагодженого блоку, ніж набирати заново. Елементарна помилка при введенні може дорого обійтися! У мене бували проблеми і з одним єдиним словом, яке я якимось дивом не міг набрати правильно. Те буква не на тому регістрі, то цифра пропущена. А мізки вже вирішують таку проблему і цілком довіряють рук, здавалося б, проста справа. Намагався я старався, потім плюнув (не на монітор, звичайно), взяв і скопіював. Проблеми випарувалися.


5.Защіщайте місця розташування важливої ??інформації від випадкового доступу, та й свого власного теж.


Опишу кумедний випадок. Дзвонить мені колишній колега системщик з колишнього місця роботи і заявляє, що несподівано перестала працювати велика графічна система. А без неї не можна прочитати кілька тисяч моделей запроектованих протягом ряду років. Аварія ні з чим на зв'язується. Увечері все працювало, вранці не запускається. Півтора дня вже простояли. Почав думати. Аналізую повідомлення програми. Всі говорити за те, що пропав доступ до директорії С. Ставлю по телефону питання: - Директорія «А» на місці?
- Так.
- Директорія «В»?
- На місці.
- Директорії «С»?
- Теж.
- А що в директорії «С»?
Він називає. Все правильно. Не підкопаєшся. І не працює. Переривається на обід. Потім починаю знову катувати щодо директорій, тільки в зворотному порядку. Навіщо? Запитайте Ви. Адже вже все ясно! Якраз при зворотному розгляді і виявляється, причому цілком випадково, що директорія «С» виявилася усередині директорії «В», а не поруч, де вона має бути. Чиїсь спритні руки випадково підчепили мишкою «С» і несвідомо закинули її всередину «В». Цими руками могли цілком бути і руки мого колеги системника. Працював на клавіатурі він швидко, а мишкою користувався стрімко. Так, у мене і самого бували аналогічні випадки. Найкраще - це заборонити загальний доступ до таких тонким місцях. Якщо - неможливо, то обмежити тільки читанням. Але не завжди це може бути застосовано. Якщо з програми в директорію йде запис? Але тут вже думайте самі. Викрутитися завжди можна. Треба не карати людину за помилку (якщо знайшли, звичайно, кого покарати), а ліквідувати саму можливість помилки.


6.Нікогда не підміняйте програмно створені формати даних ручної компонуванням! Нехай навіть їх скласти легко і просто. Був у мене такий випадок. З банку прийшла дискета з черговою інформацією, яку треба було ввести в нашу систему. Бухгалтер вставляв дискету в комп'ютер, викликав програму і через хвилину мав на екрані необхідні дані. Так само він вчинив і цього разу. Однак через хвилину, подивившись на екран, він з жахом схопився за телефонну трубку. Я з'явився перед екраном через дві. У мене все похололо всередині. Всі прізвища нашої величезної бази даних були замінені на одну єдину. Не буду називати яку, але я можу забути свою власну, але цю, мабуть, не забуду ніколи. Півтора дні пішло на відновлення. Замінено були не тільки прізвища, а й багато особисті дані, включаючи і зарплату. Як потім з'ясувалося, в банку з'явилася нова людина, який під час запису на дискету знехтував старою програмою і набрав інформацію вручну. Так йому було швидше. Безсумнівно, в нашому забезпеченні існував контроль, але все передбачити неможливо. Рідкісна накладка помилок змусила нашу програму творити дива.


7.В висновку хочеться сказати - будьте обережні з промисловими базами даних. Ніколи при налагодженні не підключайте до них! Ви можете забути повернутися до налагоджувальної базі і тоді ... У крайньому випадку, якщо необхідно перевірити щось саме на промисловій базі і немає можливості зробити це на її копії покличте на допомогу колегу. Ви при ньому підключіться, а відключитися він Вам допоможе.


Так от, щоб ваші програми творили поменше зайвих чудес, користуйтеся цими нескладними правилами. Вони вас захистять від багатьох напастей, про які ви і знати не будете. А що альпініст? Хай собі підіймається, але оступитися в нього тепер шансів набагато менше.