Читаем Технологии программирования полностью

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

8.8.7. Свод правил

В рассмотренных ранее темах не было дано настоятельных и конкретных рекомендаций по проектированию. Это соответствует убеждению, что нет "единственно верного решения". Принципы и приемы следует применять такие, которые лучше подходят для решения конкретных задач. Для этого нужен вкус, опыт и разум. Тем не менее можно указать некоторый свод правил (эвристических приемов), который разработчик может использовать в качестве ориентиров, пока не будет достаточно опытен, чтобы выработать лучшие правила. Ниже приведен свод таких эвристических правил.

Правило 1. Узнайте, что вам предстоит создать.

Правило 2. Ставьте определенные и осязаемые цели.

Правило 3. Не пытайтесь с помощью технических приемов решить социальные проблемы.

Правило 4. Рассчитывайте на большой срок в проектировании и управлении людьми.

Правило 5. Используйте существующие системы в качестве моделей, источника вдохновения и отправной точки.

Правило 6. Проектируйте в расчете на изменения: гибкость, расширяемость, переносимость, повторное использование.

Правило 7. Документируйте, предлагайте и поддерживайте повторно используемые компоненты.

Правило 8. Поощряйте и вознаграждайте повторное использование: проектов, библиотек, классов.

Правило 9. Сосредоточьтесь на проектировании компоненты.

Правило 10. Используйте классы для представления понятий.

Правило 11. Определяйте интерфейсы так, чтобы сделать открытым минимальный объем информации, требуемой для интерфейса.

Правило 12. Проводите строгую типизацию интерфейсов всегда, когда это возможно.

Правило 13. Используйте в интерфейсах типы из области приложения всегда, когда это возможно.

Правило 14. Многократно исследуйте и уточняйте как проект, так и реализацию.

Правило 15. Используйте лучшие доступные средства для проверки и анализа проекта и реализации.

Правило 16. Экспериментируйте, анализируйте и проводите тестирование на самом возможном раннем этапе.

Правило 17. Стремитесь к простоте, максимальной простоте, но не сверх того.

Правило 18. Не разрастайтесь, не добавляйте возможности "на всякий случай".

Правило 19. Не забывайте об эффективности.

Правило 20. Сохраняйте уровень формализации, соответствующий размеру проекта.

Правило 21. Не забывайте, что разработчики, программисты и даже менеджеры остаются людьми.

8.8.8. Пример простейшего проекта

Б. Страуструп придумал реализацию механизма множественного наследования и при этом отвергал агрегирование, хотя и реализовал это в своем языке C++.

Приведенный далее пример показывает невозможность осуществления решения следующей простой задачи двумя способами решения — с использованием множественного наследования и агрегирования. В процессе решения задач было выявлено, что в ряде задач без выполнения третьего шага невозможно корректное выполнение второго шага. Таким образом, при решении одного и того же примера двумя способами второй и третий шаги проекта были взаимно переставлены. Также добавлен шаг "классификация объектов" (составление словаря).

Первый способ решения задачи — использование множественного наследования.

Постановка задачи примера. Вывести на экран фигуру, показанную на рис. 8.4.

Рис. 8.4. Изображение выводимой фигуры

Изображенная на рис. 8.4 фигура состоит из правильного пятиугольника и описанной вокруг него окружности, где хс, yc — координаты центра описанной вокруг пятиугольника окружности; R — радиус описанной вокруг пятиугольника окружности.

Кроме того, фигура рисуется заданным цветом.

Следует отметить, что задача может быть решена несколькими способами.

Шаг 1а. Определение объектов и выявление их свойств.

Объект — Рисунок. Свойства объекта:

— радиус окружности (R);

— координаты центра окружности (xc; yc);

— цвет линий.

Объект — Пятиугольник. Свойства объекта:

— радиус описанной вокруг него окружности (R);

— координаты центра описанной вокруг него окружности (хс; yc):

— цвет линии.

Объект — Окружность. Свойства объекта:

— радиус (R);

— координаты центра (хс; yc);

— цвет линии.

Решение задачи примера с использованием множественного наследования.

Шаг 1б. Классификация объектов (составление словаря).

Перейти на страницу:

Похожие книги

Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам
Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам

Прочтя эту книгу, вы узнаете, что представляет собой BIOS, какие типы BIOS существуют, как получить доступ к BIOS и обновлять ее. Кроме того, в издании рассказано о неполадках в работе BIOS, которые приводят, например, к тому, что ваш компьютер не загружается, или к возникновению ошибок в BIOS. Что делать в этот случае? Как устранить проблему? В книге рассказывается об этом и даже приводится описание загрузки BIOS во флэш-память.Также вы научитесь использовать различные функции BIOS, узнаете, как оптимизировать их с целью улучшения производительности и надежности системы. Вы поймете, почему рекомендуемые установки являются оптимальными.После прочтения книги вы сможете оптимизировать BIOS не хуже профессионала!Книга предназначена для всех пользователей компьютера – как начинающих, которые хотят научиться правильно и грамотно настроить свою машину, используя возможности BIOS, так и профессионалов, для которых книга окажется полезным справочником по всему многообразию настроек BIOS. Перевод: А. Осипов

Адриан Вонг

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Книги по IT
Цифровой журнал «Компьютерра» № 24
Цифровой журнал «Компьютерра» № 24

ОглавлениеБольшие новостиMicrosoft BizSpark: поиски инвесторов и менторов Автор: Григорий РудницкийNASA открыло виртуальную лунную базу Автор: Михаил КарповТерралабПромзона: Катушка с лупой Автор: Николай МаслухинPixel Qi: дисплеи, не слепнущие на солнце Автор: Юрий ИльинПромзона: Батарейки Microsoft Автор: Николай МаслухинСофт: Process Explorer — порнобаннер в прицеле Автор: Николай МаслухинSynaptics: тачпады нового поколения Автор: Олег НечайПромзона: Очки-суфлер Автор: Николай МаслухинМобильный интернет для малого бизнеса Автор: Максим БукинВещь дня: беззеркальная камера Lumix G2 Автор: Андрей ПисьменныйHDBaseT 1.0: дешёвая замена HDMI Автор: Олег НечайПромзона: Воздушный холодильник Автор: Николай МаслухинСофт: Настраиваем Ubuntu с помощью Ubuntu Tweak Автор: Крестников ЕвгенийПромзона: Бескрайний бассейн Автор: Николай МаслухинСпособы обмана в мобильных сетях Автор: Максим БукинСвоя играВасилий Щепетнёв: О пользе словаря Автор: Василий ЩепетневКивино гнездо: Человек против обмана Автор: Берд КивиMicrosoft: что пошло не так Автор: Андрей ПисьменныйКафедра Ваннаха: Скольжение к сингулярности Автор: Ваннах МихаилВасилий Щепетнёв: Гамбит Форт-Росс Автор: Василий ЩепетневКафедра Ваннаха: Облачное программирование и Пуэрто-Рико Автор: Ваннах МихаилВасилий Щепетнёв: Следы на целлулоиде Автор: Василий ЩепетневКивино гнездо: Конфликт криптографии и бюрократии Автор: Берд КивиИнтерактивЛюдмила Булавкина, директор YouDo по маркетингу, о любительском контенте Автор: Юрий ИльинМакс Зацепин и Глеб Никитин о музыкальной игре для iPad Автор: Юрий ИльинСергей Матиясевич (3D Bank) о рынке трёхмерных моделей Автор: Юрий ИльинВ. Репин (ИХБФМ СО РАН) о бактерии из вечной мерзлоты Автор: Алла АршиноваДмитрий Завалишин об операционной системе «Фантом» Автор: Андрей ПисьменныйБлогиАнатолий Вассерман: «Марс-500» Автор: Анатолий ВассерманКак большой оператор споткнулся о маленького SaaS-провайдера Автор: Анисимов КонстантинАнатолий Вассерман: Дальневосточные «партизаны» Автор: Анатолий ВассерманГолубятня-ОнлайнГолубятня: Сидр №4 Автор: Сергей ГолубицкийГолубятня: Бедность Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература
Искусство обмана
Искусство обмана

Книга The Art of Deception – «Искусство обмана» – доказывает, насколько мы все уязвимы. В современном мире, где безопасность подчас выходит на первый план, на защиту компьютерных сетей и информации тратятся огромные деньги. Деньги тратятся на технологии безопасности. Эта книга объясняет, как просто бывает перехитрить всех защитников и обойти технологическую оборону, как работают социоинженеры и как отразить нападение с их стороны Кевин Митник и его соавтор, Бил Саймон рассказывают множество историй, которые раскрывают секреты социальной инженерии. Авторы дают практические советы по защите от атак, по обеспечению корпоративной безопасности и снижению информационной угрозы «Искусство обмана» не только демонстрирует, насколько опасна и вредоносна социоинженерия, но поможет разработать собственную программу тренинга по безопасности для сотрудников компании.

Вильям Л Саймон , Кевин Митник

Зарубежная компьютерная, околокомпьютерная литература