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

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

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

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

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

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

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 167 168 169 170 171 172 < 173 > 174 175 176 177 178 179 .. 426 >> Следующая

Размещение всех возможных данных в одном огромном объекте
может формально удовлетворять принципу отказа от глобальных
переменных, но это приводит исключительно к накладным расходам
и не создает преимуществ реальной инкапсуляции. Если вы
используете глобальные данные, делайте это открыто. Не
пытайтесь замаскировать это с помощью объектов, страдающих
ожирением.
Дополнительные ресурсы
Далее указаны дополнительные ресурсы, в которых освещаются
необычные типы данных: http://cc2$.com/13B5
Maguire Steve. Writing Solid Code. Redmond, WA: Microsoft
Press,
1993- Глава 3 содержит отличное обсуждение опасностей
использования указателей и множество специальных советов по
решению проблем с указателями.
Meyers Scott. Effective C++, 2d ed. Reading, MA: Addison-
Wesley, 1998; Meyers Scott. More Effective C++. Reading, MA:
Addison-Wesley, 1996. Как говорится в названии, эти книги
содержат большое количество советов по улучшению программ на
C++, включая руководство по безопасному и эффективному
использованию указателей. В частности, "More Effective C++"
содержит отличное обсуждение вопросов управления памятью в
языке C++.
Контрольный список: применение необычных
ТИПОВ данных http://cc2e.com/1392
Структуры
? Используете ли вы структуры вместо отдельных переменных для
организации и манипуляции группами взаимосвязанных данных?
? Рассматривали ли вы создание класса как альтернативу
использованию структуры?
Глобальные данные
? Действительно ли все переменные объявлены локально или в
области видимости класса, если только они не обязательно
должны быть глобальными?
? Различаются ли в соглашениях по именованию переменных
локальные, классовые и глобальные данные?
? Документированы ли все глобальные переменные?
? Свободен ли код от псевдоглобальных данных - мамонтообразных
объектов, содержащих мешанину из данных, передающихся в
каждый метод?
? Используются ли методы доступа вместо глобальных данных?
? Организованы ли данные и методы доступа к ним в классы?
? Предоставляют ли методы доступа уровень абстракции,
независимый от реализации используемого типа данных?
? Находятся ли все методы доступа на одном уровне
абстракции?
Указатели
? Изолированы ли операции с указателями в методах?
? Корректны ли обращения к указателям или они могут быть
"висячими"?
336 ЧАСТЬ III Переменные
? Проверяет ли код корректность указателей перед их
использованием?
? Проверяется ли корректность переменной, на которую ссылается
указатель, перед ее использованием?
? Присваивается ли указателям пустое значение после их
освобождения?
? Использует ли код все необходимые для читабельности
переменные-указа- тели?
? Освобождаются ли указатели в связных списках в правильном
порядке?
? Выделяет ли программа "резервный парашют" памяти, чтобы
иметь возможность аккуратно завершить выполнение в случае
нехватки памяти?
? Используются ли указатели только как последнее средство,
когда другие методы неприменимы?
Ключевые моменты
¦ Структуры могут помочь сделать программы менее сложными,
упростить их понимание и сопровождение.
¦ Принимая решение использовать структуру, подумайте, не будет
ли класс подходить лучше.
¦ Работа с указателями чревата ошибками. Обезопасьте себя,
используя методы или классы для доступа к ним и практику
защитного программирования.
¦ Избегайте глобальных переменных не только потому, что они
опасны, но и потому что их можно заменить чем-то лучшим.
¦ Если вы не можете отказаться от глобальных переменных,
работайте с ними через методы доступа. Эти методы
предоставляют все то же и даже больше, что и глобальные
переменные.
Часть IV
ОПЕРАТОРЫ
¦ Глава 14. Организация последовательного кода
¦ Глава 15. Условные операторы
¦ Глава 16. Циклы
¦ Глава 17. Нестандартные управляющие структуры
¦ Глава 18. Табличные методы
¦ Глава 19. Общие вопросы управления
ГЛАВА 14
Организация
пл#% f(r)|?3| n#%DQiTiQi ПкУАГА fid
П9{#Л6ДОвс1Т^ 1\ОДс1
Содержание
Шр^/сс2е.согп/1403 ", , ~
¦ 14.1. Операторы, следующие в
определенном порядке
¦ 14.2. Операторы, следующие в
произвольном порядке
Связанные темы
¦ Общие вопросы управления: глава 19
¦ Код с условными операторами: глава 15
¦ Код с операторами цикла: глава 16
¦ Область видимости переменных и объектов: раздел 10.4
В этой главе мы начнем рассматривать программирование не с
точки зрения данных, а с точки зрения выражений. Глава
представляет самую простую управляющую логику программы:
размещение выражений и их блоков в последовательном порядке.
Хотя размещение последовательного кода относительно простая
задача, некоторые организационные тонкости влияют на качество,
корректность, читабельность и управляемость кода.
14.1. Операторы, следующие в определенном порядке
Проше всего организовать такие выражения, для которых важен
порядок следования. Вот пример:
Пример выражений, для которых важен порядок следования (Java)
data = ReadData();
results = CalculateResultsFromData( data );
Предыдущая << 1 .. 167 168 169 170 171 172 < 173 > 174 175 176 177 178 179 .. 426 >> Следующая