Программа как маленькая жизнь

4 Окт
2011

Многие люди, которые так или иначе пересекаются со специалистами из области программирования, в частности менеджеры, не всегда понимают как устроен процесс написания продукта. Да и простым обывателям это тоже не дано. Были какие-то предметы в школе или ВУЗе, было страшное синее окно вездесущего Паскаля, что-то еще. И поэтому все боятся слова «программирование». Какой-то изысканно волшебный кот в мешке из произведения Кэролла сразу встает перед глазами у людей. Но это давно не так. Нет никакого кота. Все стало намного проще. Настолько, что становится страшно.

Сегодня любой дилетант может прийти и начать писать программы, порой не осознавая сам процесс. Между прочим, один из таких дилетантов, сейчас пишет эти строки. Я смею надеяться, что со мной не все так плохо, что мозги в голове хоть немного обрели форму за все то время, что я потратил на изучение этой дисциплины, но всё же. Хочу попробовать объяснить процесс создания части программы с моей точки зрения. Так сказать, дилетантам от дилетанта.
Порой поражаешься как просты некоторые вещи, если их разобрать по полочкам. Серьезно, возникает ощущение, что будущее из фильмов «Терминатор», «Матрица», прочей фантастики не так уж и далеко. И если немного подумать, то можно создать невозможное, не выходя из дома. Создать маленькую жизнь.
Это не пустые слова. Вообще, заметил, что многие вещи, которые ты делаешь, пока пишешь код, жутко напоминают действия, совершаемые тобой в жизни. К примеру, как этот процесс состоит у меня.
Первый этап

Если задача достаточно объемная, то, как мне кажется, намного удобнее сначала написать некоторое небольшое количество кода, который по твоему мнению должен работать. Можно написать сразу всё, либо разбить на отдельные части. Второй вариант получше, так как будет меньше проблем на этапе тестирования. Но бывают случаи, когда он невозможен из-за большой связанности частей друг с другом. Какова вероятность, что ваш код сразу же заработает как надо? Если вы еще не имеете серьезного опыта и нескольких лет работы над крупным проектом за плечами — вероятность стремится к нулю.
Ничего не напоминает? Мы всегда пытаемся построить свой день по определенному плану. Утром — завтрак, днем — встреча, вечером — просмотр фильма. Мы реально считаем, что наш день пройдет именно так, как мы изначально задумали. Мысленно день разбивается на части, они также могут быть связаны или нет. Но как часто день проходит строго по сценарию, изначально прописанному нами? Практически никогда. Жизнь — не съемки кинофильма, и отчасти в этом её прелесть.
Второй этап

Код написан, теперь необходимо запустить проект. Компилятор должен проверить ваше произведение на наличие самых банальных ошибок. Если все закончится успешно, вы увидите свое детище в полной боеготовности. Тут начинается самое интересное. Нужно проверить, насколько ты изначально не дурак. Обычно оказываешься где-то дураком всегда. Нажал что-то и вылетела ошибка. Все испугались, замерли и полезли в то страшное место. Внимательно просматриваем, делаем выводы, правим и проверяем еще раз. Потом новая ошибка. И так далее. Верх недопонимания, что происходит — использование debug. И это глубоко полезный момент. Иногда желательно из него вообще не вылезать. Очень многое понимаешь.
Живешь ты себе живешь, распланировав день, а потом появляются те самые «ошибки»: события, неожиданности, ситуации, которые мешают твоему плану. И вот ты уже опаздываешь на встречу, не позавтракав, а вечером приходишь домой, уставший, как собака, и тебе уже не до фильма. Возможно, что-то удастся исправить, вызвав такси и купив хот-дог по дороге на встречу. Это как мини-пример. За ошибки в течение собственной жизни мы можем расплачиваться годами, постоянно включая некий debug, фактически, анализируя свое прошлое, в попытках не наступить на те же грабли в настоящем.
Третий этап

Когда все первоначальные ошибки исправлены, можно приступить к массовому тестированию. Здесь тебя опять ожидают мучения с новыми, на этот раз не такими очевидными ошибками. Однако частенько этот этап просто является успешным завершением пройденного. На выходе ты получаешь уверенность в том, что это работает. И работает правильно. Последнее, правда, может подтвердиться не во всех случаях. Но после очередного внимательного анализа написанного кода, рано или поздно, ты должен найти, в чем причина такого поведения.
Это уже просто следующий день или просто некоторое время после того, как ты позавтракал, встретился с человеком и посмотрел фильм. Закономерный итог твоего времяпрепровождения. Завтрак может оказаться не самым лучшим, вызвать неприятные реакции в желудке. Встреча провалилась. Фильм тоже нравится далеко не всегда. Однако если ты всё сделал правильно: приготовил завтрак по маминому рецепту, был вежлив и обходителен на встрече, выбрал качественный фильм, тогда итоги будут положительными. Если же где-то что-то пошло не так, значит, ты учтешь свои промахи, и в следующий раз будешь более внимателен. Следует заметить одно коренное отличие — тут время вспять повернуть уже нельзя.
Когда ты пишешь программу, то проживаешь маленькую жизнь, а возможно, создаешь новую. Не зря некоторые программисты болеют «синдромом Бога».
Этот пост я написал просто так, чтобы он был. Ничего не хотел доказать или привнести что-то умное или новое в этот мир. Мысли на бумаге, не более.
Программисты, пишите программы. Люди, живите правильной жизнью.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх