Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 426 >> Следующая

способ улучшения ясности кода и нет никакого вреда в том,
чтобы иметь несколько выходов из метода.
Операторы goto
Следующие статьи содержат полное обсуждение goto. Этот спор до
сих пор возникает время от времени на рабочих местах, в
учебниках и журналах, но вы не услышите ничего такого, что не
было бы полностью исследовано 20 лет назад.
Dijkstra, Edsger. "Go То Statement Considered Harmful". Com-
Шр://сс2е*с<ш/1799 munications of the ACM 11, no. 3 (March,
1968): 147-148, так
же доступно по адресу www.cs.utexas.edu/users/EWD/. Это то
самое знаменитое письмо, которым Дейкстра поднес спичку к
бумаге и воспламенил одну из самых долгих дискуссий в истории
разработки ПО.
Wulf, W. А. "А Case Against the GOTO". Proceedings of the 25th
National ACM Conference, August 1972: 791-797. Эта статья -
еще один аргумент против беспорядочного использования goto.
Вульф утверждает, что, если языки программирования будут
содержать необходимые управляющие структуры, необходимость в
goto исчезнет. С 1972 г., когда была написана эта статья,
такие языки, как C++, Java и Visual Basic, доказали свою
корректность по Вульфу.
Knuth, Donald. "Structured Programming with go to Statements",
1974. Classics in Software Engineering, edited by Edward
Yourdon. Englewood Cliffs, NJ: Yourdon Press, 1979. Эта
длинная статья не полностью посвящена goto, но содержит кучу
примеров кода, который становится эффективнее после исключения
goto, и еще одну кучу примеров кода, который становится
эффективней после добавления goto.
Rubin, Frank. "'GOTO Considered Harmful' Considered Harmful".
Communications of the ACM 30, no. 3 (March, 1987): 195-196. В
этой несколько резкой статье, обращенной к редактору, Рубин
утверждает, что программирование без goto стоило бизнесу
"сотни миллионов долларов". Затем он предлагает краткий
фрагмент кода, использующего goto, и утверждает, что он
превосходит свои аналоги без goto.
Ответы, полученные на письмо Рубина, представляют больший
интерес, чем само письмо. Пять месяцев журнал "Communications
of the ACM" (САСМ) публиковал письма, предлагающие разные
версии программы Рубина из семи строк. Ответы равномерно
распределились между защитниками и хулителями goto. Читатели
предложили приблизительно 17 вариантов преобразования, которые
полностью покрывают все подходы к исключению goto. Редактор
САСМ заметил, что это письмо вызвало больше откликов, чем
любой другой вопрос, когда-либо обсуждавшийся на страницах
САСМ.
Последовавшие письма можно найти в номерах:
¦ Communications of the ACM 30, no. 5 (May, 1987): 351-355;
¦ Communications of the ACM 30, no. 6 (June> 1987): 475-478;
¦ Communications of the ACM 30, no. 7 (July, 1987): 632-634;
¦ Communications of the ACM 30, no. 8 (August, 1987): 659-662;
¦ Communications of the ACM 30, no. 12 (December, 1987): 997,
1085.
ГЛАВА 17 Нестандартные управляющие структуры
403
Clark, R. Lawrence, "А Linguistic Contribution of GOTO-less
Programming". Datamation, December 1973. Эта классическая
http://cc2e.cam/1706
статья с юмором предлагает заменить термин "go to" (перейти к)
на "come from" (перешел от). Она также была перепечатана в
номере САСМ в апреле 1974 года.
1
Контрольный список: нестандартные
управляющие структуры http://CC2e.C0m/1713
Возвраты
? Используют ли методы операции возврата только при
необходимости?
? Улучшают ли операторы возврата читабельность?
Рекурсия
? Содержит ли рекурсивный метод код для прекращения
рекурсии?
? Использует ли метод счетчик безопасности для гарантии того,
что выполнение будет завершено?
? Ограничена ли рекурсия одним методом?
? Соответствует ли глубина рекурсии ограничениям, налагаемым
размерами стека программы?
? Является ли рекурсия лучшим способом реализации метода? Не
лучше ли использовать простые итерации?
goto
? Используются ли операторы goto только как последнее средство
и лишь для того, чтобы сделать код удобнее для чтения и
сопровождения?
? Если goto используется ради эффективности, был ли прирост
эффективности измерен и задокументирован?
? Ограничено ли использование goto одной меткой на метод?
? Выполняются ли переходы goto только вперед, а не назад?
? Все ли метки goto используются?
Ключевые моменты
¦ Множественные возвраты могут улучшить читабельность и
сопровождаемость метода и помогают избежать глубокой
вложенности. Тем не менее использовать их нужно осторожно.
¦ Рекурсия предлагает изящное решение для небольшого набора
задач. Ее тоже нужно использовать аккуратно.
¦ Иногда операторы goto - лучший способ облегчить чтение и
сопровождение кода. Таких случаев очень немного. Используйте
goto только как последнее средство.
ГЛАВА 18
Табличные методы
Содержание
http://C€2exom/1865 ^ -
¦ 18.1. Основные вопросы использования табличных
методов
¦ 18.2. Таблицы с прямым доступом
¦ 18.3. Таблицы с индексированным доступом
¦ 18.4. Таблицы со ступенчатым доступом
¦ 18.5. Другие примеры табличного поиска
Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 426 >> Следующая