Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 182

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 182 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 1822019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 182)

«Невский Диалект». 1998. С. Н. Паркинсон. Законы Паркинсона. Минск.. Поппури». 1997. [РагЫпзогь 1957) 23.7. Советы [1] Поймите, чего вы хотите добиться; 9 23.3. [2] Всегда помните, что разработка программного продукта — человеческая деятельность; 9 23.2, н 23.5.3. [3] Доказательство по аналогии — это обман; 9 23.4. [4) Поставьте себе четкие и осязаемые цели; 9 23.4. [5] Не применяйте технические приемы для решения социальных задач; 9 23.4, [6) В проектировании и в обращении с людьми учитывайте деятельность за большой период времени; й 23.4.1, з 23.5.3. [7) Нет нижнего предела размера программ, для которых имеет смысл создать проект, прежде чем начинать писать код; 9 23.2. [8] Проектируйте процесс так, чтобы поощрять обратную связь; в 23А. [9) Не путайте бурную деятельность с продвижением к цели; 9 23.3, 9 23А.

[10] Не обобщайте болыпе, чем нужно, больше, чем вам позволяет опыт, и больше, чем вы можете протестироватгя 9 23А.1, 9 23А.2. [11) Представляйте основные понятия в виде классов; 9 23.4.2, 9 23А.3.1. [12] Существуют свойства системы, которые нельзя представить в виде классов; в 23.4.3.1. [13] Представляйте иерархические взаимоотношения между понятиями в виде иерархии классов; 9 2ЗА.3.1.

[14] Лктивно ищите общность в понятиях прикладной области и реализации и представляйте найденные более общие понятия в виде базовых классов; ~ 23.4.3.1, ~ 23А.3.5. [15] Классификация в других областях не обязательно является полезной классификацией в модели наследования прикладной программы; й 23,4.3.1. [16] Проектируйте иерархию классов, основываясь ца поведении и инвариантах; 9 23.4.3.1, 9 23А.3.5, 9 24.3:7.1.

23.7. Советы 795 [17) [18) . [19) [20) [21) [22) [23) [24) [25) [26] [27) [28) [29) [30) [31) [32) [ЗЗ) [34) [35) [36) [37) [38) Рассмотрите случаи использования; 9 23.4.3.1. Рассмотрите возможность использования СКС-карточек; 9 2ЗА.3.1. Используйте в качестве модели существующие системы, это послужит источ- никам вдохновения и хорошей отправной точкой; 9 23.4.3.6.

Опасайтесь конструирования на уровне наглядных схем; 9 23А.3.1. Отбросьте прототип до того, как он станет помехой; 9 23АА. Закладывайте в проект возможность изменения; сосредоточьтесь на гибкости, способности к расширению, переносимости и повторному использованию; 9 2ЗА.2, Сосредоточьтесь на проектировании компонент; 9 23.4.3. Воспользуйтесь к.лассами для представления основных понятий; 9 23А.3.1.

Проектируйте стабильность при неизбежности изменении; 9 23А.2. Стабилизируйте проект, сделав интенсивно используемые интерфейсы мини- мальными, общими и абстрактными; 9 23.4.3.2, 9 23.4.3.5. Не давайте проекту разрастись, Не добавляйте свойств чпросто на всякий слу- чай»; 9 2ЗА.3.2.

Всегда рассматривайте альтернативные представления класса. Если нет аль- тернативных представлений, то класс, по всей вероятности, не представляет собой чистого понятия; 9 23А.3.4. Многократно пересматривайте и уточняйте проект и реализацию; 9 23АВА. Для тестирования и анализа проблемы, проекта и реализапии пользуйтесь са- мыми лучшими доступными средствами; 9 23.3, 9 23.4.1, 6 23.4А.

Экспериментируйте, анализируйте и тестируйте как можно раньше и как мож- но чаше; з 23А.4, з 23.4.5. Не забывайте об эффективности; 9 23А.7. Уровень формальности должен соответствовать масштабу проекта; 9 23.5.2. Убедитесь, что кто-то отвечает за проект в целом; 9 23.5.2. Документируйте, пропагандируйте и поддерживайте повторно используе- мые компоненты; 9 23.5.1, Документируйте задачи и принципы наравне с деталями; 9 23,4.6.

В качестве части документации напишите руководство для новых разработчи- ков; 9 23А.6. Награждайте и поощряйте повторное использование проектов, библиотек и классов; 9 23.5.1. Проектирование и программирование Пусть это будет просто: просто, как только можно, но ие проис. — Л.

Эииттеин Проектирование и язык программирования — классы — наследование -- проверка типов — программирование — что представляют классы? — иерархия классов— зависимости — включение — включение и наследование — альтернативы проектирования — использование отношений — запрограммированные отношения — инварианты — утверждения — инкапсуляция — компоненты— шаблоны — интерфейсы и реализации — советы. 24.1. Обзор В этой главе рассматривается, каким образом языки программирования вообще и С++ в частности мокнут поддержать проектирование: з 24.2 Фундаментальная роль классов, иерархии классов, проверки типа и собственно программирования.

4 24.3 Использование классов и иерархии классов, фокусирующееся на взаимозависимости между разными частями программы. з 24.4 Понятие колтонентьн которая является основной единицей проектирования, и некоторые практические размьппления о том, как выражать интерфейсы. Более общее рассмотрение вопросов проектирования приведено в главе 23, а различные применения классов подробно рассматриваются в главе 25. 24.2. Проектирование и язык программирования Если бы мне пришлось строить мост, я бы серьезно задумался, нз какого материала его построить.

Сам проект моста в большой степени зависит от выбора материала и наоборот.,Разумный проект каменного моста отличается от разумного проекта стального моста, деревянного моста и т. п. Не" думаю, что я смог бы выбрать правильный материал, ничего не зная о различных материалах и их использовании. Естествевпо, чтобы спроектировать деревянный мост, вам не нужно быть искусным плотником, но чтобы выбрать между деревом и сталью для постройки моста, нужно знать основные 798 Глава 24. Проектирование и программирование сведения о деревянных конструкциях.

Более того, несмотря на то, что для проектирования моста вам самому не нужно быть хорошим плотником, вам понадобится тонкое знание свойств дерева и нравов плотников. Аналогично, чтобы выбрать язык для некоторого программного продукта, вам нужно быть знакомым с несколысими языками, а чтобы успешно спроектировать часть программного продукта, необходимо довольно хорошо знать выбранный для реализации язык -- даже если сами вы ие напишете ни строчки программы. Хороший проектировщик мостов учитывает свойства материалов и использует их для улучшения проекта.

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

Когда проектировщик отличается ат программиста — и особенна, если они не воспитаны в рамках некой общей культуры — можно говорить не о вероятности, а предопределенности того, что в получившейся системе будут ошибки, а сама система получится неизящной и незффектпвной. Так что же значит для проектировщика язык программирования? Он может предоставить механизмы, которые позволят выразить проектные понятия прямо иа языке программирования. Это облегчает реализацию, поддержание соответствия между проектом и реализацией, лучшее взаимопонимание между проектировщиками и исполнителями реализации, а также позволяет создать лучшие инструментальные средства в помощь тем и другим.

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

Такой язык программирования как С++, можно использовать для уменыпения разрыва между проектированием и программированием, а следовательно, для уменьшения возможной путаницы и устранения недоразумений. Ключевое понятие С++ — класс. Класс в С++ — это тип. Наряду с пространствами имен классы также являются механизмом сокрытия информации. Программы можно определить в терминах типов, определяемые пользователем, и иерархии таких типов. И встроенные типы, и типы, определяемые пользователем, подчиняются правилам статической проверки типов. Виртуальные функции обеспечивают механизм динамического связывания без нарушения правил статической типизации.

Шаблоны поддерживают проектирование параметризованных типов. Исключения обеспечивают более регулярный способ обработки ошибок. Данные особенности С++ можно использовать, 799 24.2. Проектирование и язык программирования не внося дополнительных затрат времени и памяти по сравнению с программами на С. Это основные свойства С++, и проектировщик должен их понять и учитывать. Кроме того, сильно повлиять на проектирование могут общедоступные основные библиоте- ки — такие как библиотеки матриц, интерфейсы к базам данных, библиотеки графи- ческого интерфейса пользователя и библиотеки поддержки параллелизма. Страх перед новым ведет к неоптимальному использованию С++. К этому же ведет неправильное применение опыта, накопяенного в других языках, системах и приклад- ных областях. Ухудшить проект могут также неадекватные средства проектирования. Стоит упомянуть пять ошибок проектирования, которые не позволяют воспользовать- ся преимуществами языка и учесть его о1раничения: [1) Отказ ат классов; в результате проект выражается так, что при реализации приходится пользоваться только подмножеством языка, совместимым с С.

[21 Отказ от производных классов и виртуальных функций, использование только подмножества языка, связанного с абстракцией данных. [31 Отказ от статической проверки типов; в результате проект выражается так, чт. приходится реализовать его, симулируя динамическую проверку типов. (41 Отказ от программирования и выражение системы таким образом, чтобы исключить программистов. (51 Отказ от всего, кроме иерархии классов, Эти ошибки характерны соответственно для проектировщиков: (11 имеющих опыт работы с С, традиционным САЯЕ-проектированием и структурированным проектированием; [21 имеющих опыт работы с Аг[а83 и У1зца! Вагйс или активно использовавших абстракцию данных; [3] имеющих опыт работы со Яша1!га(к или Е1зр; [41 имеющих опыт работы в нетехнических или сугубо специализированных областях; (5~ сильно увлекающихся упором на «чистое» объектно-ориентированное программирование.

Характеристики

Тип файла
DJVU-файл
Размер
10,02 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее