Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
33.79 Кб
Скачать

ПРОГРАММИРОВАНИЕ СНИЗУ ВВЕРХ НАИСКОСОК

ВВЕДЕНИЕ

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

Давно назрела необходимость противопоставить этим лжетеориям нашу домашнюю, самодельную, выстраданную и вымученную методику программирования. Опыт такой методики и предлагается читателю. Мы назвали наш метод "glорing рrоgrаммing" или "снизу вверх наискосок" (СВН). Основную идею метода СВН лучше всего передает древняя восточная мудрость: "если что-нибудь можно сделать двумя способами, не пожалейте усилий и придумайте третий".

1. С ЧЕГО НАЧАТЬ

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

Начинайте писать текст программы задолго до того, как вам сформулируют задание, и вы получите прекрасную возможность сделать жизнь вашего преподавателя (и свою) гораздо разнообразнее и интереснее (например, в момент получения задания вы можете возмутиться: "представляете, сколько теперь придется переделывать?!").

Никогда не составляйте заранее блок-схему программы Во-первых, это проще и быстрее сделать, когда программа уже написана, во-вторых, неосторожно оставленная на столе блок-схема даст вашим врагам и завистникам возможность понять, что вы собираетесь делать. Помните, что никто кроме вас не должен разбираться в вашей программе. И если вы никак не можете избавиться от дурной привычки рисовать блок-схемы, то зарубите себе на носу: Чем больше структура программы соответствует ее логике, тем меньше вы стоите как программист.

2. СТИЛЬ

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

Как и все остальное, программирование должно быть экономным! Тратить до 50% бумаги на комментарии, пробелы, пустые операторы, звездочки и другие украшательства - совершенно недопустимая расточительность. Пишите со во всю ширину листа всемерно избегая пробелов. Если комментария никак не избежать, стремитесь писать их как можно конкретнее. Всем переменным давайте имена ваших знакомых, любимых блюд, эстрадных ансамблей, сигарет, напитков и т. Д. Легко видеть, что фрагмент типа:

IF КАТJА >= 18 ТНЕN BEGIN

×GАSТRОNОМ;

×ТАХI;

×GОТО ХАТА

×ЕND

ЕLSЕ GОТО VЕRА;

поражает изяществом, остроумием и тонким вкусом.

3. GО ТО

Проблема безусловных переходов, к счастью, еще не нашла окончательного решения. Среди программирующей западной молодежи распространено заблуждение, что использование оператора GОТО крайне нежелательно. Практика лучших студентов нашего института показывает, что использование оператора безусловного перехода в сочетании с массивами меток повышает эффективность программ в среднем на 1.2% при увеличении времени отладки на 350-400%. Если нужно перейти из данной точки программы, следует перейти как можно дальше. Если перейти некуда, следует пересмотреть программу

4. МОДУЛЬНОСТЬ.

Н И К А К О Й М О Д У Л Ь Н О С Т И ВООБЩЕ...

5. ЭФФЕКТИВНОСТЬ.

Споры по поводу того, что считать эффективной программой, не утихают с тех пор, когда в институте заработала первая персональная ЭВМ. В наши дни дело дошло до появления казуистических утверждений вроде: "удобочитаемость программы существеннее ее эффективности" [Д. Майерс]. Мы считаем, что эффективность программы является совершенно обьективной и количественно оцениваемой величиной. Не надо жалеть ни времени, ни усилий в борьбе за эффективность - когда ваша программа после многодневных усилий в конце концов заработает, все ваши затраты окупятся экономией 15 мксек и о.073 Кб.

6. СНОВА МОДУЛЬНОСТЬ

ПО ПРЕЖНЕМУ, НИКАКОЙ МОДУЛЬНОСТИ!

(Поскольку модульность нельзя понимать иначе, как наличие известной встроенной функции. Все остальное - от лукавого.) Считайте себя хуже других, если вы не в состоянии написать программу (если хотите, назовите ее модулем) длиной более 1000 операторов. Если по ряду обьективных причин (они есть всегда) вам все- таки приходится сталкиваться с проблемой стыковки, то помните об одном- единственном правиле метода СВН:

НИКАКИХ СОГЛАШЕНИЙ О СВЯЗЯХ!

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

Кроме того, как уже подчеркивалось, любые ограничения вашей фантазии, как программиста, не принесут ничего, кроме снижения сроков разработки проекта и, тем самым, уменьшения эффективности конечного продукта. Порадуйте своего руководителя, повесив над рабочим столом плакат: "программирование - слишком сложная интеллектуальная деятельность, чтобы можно было надеяться навязать ей узы административной системы, которая душит всякую инициативу." [ВАН ТАССЕЛ]

7. ОТЛАДКА

Первая заповедь программиста, успешно преодолевшего барьер синтаксического контроля - не торопиться. Помните, что плохо отлаженная программа всегда менее эффективна, чем совсем не отлаженная. Полученные листинги (распечатки) немедленно уничтожайте (во избежание!.. См. V).

Когда заканчивается отладка, начинается эксплуатация!

Ни один уважающий себя программист не допустит, чтобы его любимое чадо, плод его многолетних трудов и страданий эксплуатировали какие-то посторонние люди.

Несколько слов о тестировании. Никто не знает, в чем именно заключается тестирование, что является конечной целью и какие результаты следует получить. В методе СВН принято считать тестирование законченным, если выполнение завершается с кодом возврата 0000, даже если исходные данные различаются хотя бы одним числом (или всеми - если вы максималист).

После окончания этапа тестирования уничтожьте исходный текст. Только в этом случае вы можете быть абсолютно уверены, что вашей программе никто не причинит никакого вреда И ОНА ОСТАНЕТСЯ ТАКОЙ ЖЕ ЭФФЕКТИВНОЙ, КАКОЙ БЫЛА ВСЕГДА.

Соседние файлы в папке Лабораторки по информатике