Объекты. Стильное OOP.
Book information
Description
«Демистифицирует объектно-ориентированное программирование и объясняет, как его использовать для разработки действительно безопасных и производительных приложений». — Чарльз Соетан, Plum.io Ключевая особенность Десятки методов написания объектно-ориентированного кода, который легко читать, повторно использовать и поддерживать. Пишите код, который сразу поймут другие программисты Правила проектирования для построения объектов, изменения и отображения состояния и т. д. Примеры, написанные на мгновенно знакомом псевдокоде, который легко применить к Java, Python, C# и любому объектно-ориентированному языку. Покупка печатной книги включает в себя бесплатную электронную книгу в форматах PDF, Kindle и ePub от Manning Publications. О книге Хорошо написанный объектно-ориентированный код легко читать, модифицировать и отлаживать. Совершенствуйте свой стиль программирования, осваивая универсальные передовые методы объектного проектирования, представленные в этой книге. Эти ясно представленные правила, которые применимы к любому объектно-ориентированному языку, максимизируют ясность и долговечность вашей кодовой базы и повышают производительность для вас и вашей команды. В Руководстве по стилю проектирования объектов опытный разработчик Матиас Нобак излагает правила проектирования для создания объектов, определения методов и многого другого. Во всех примерах используется сразу знакомый псевдокод, поэтому вы можете следовать ему на том языке, который предпочитаете. Вы разберете каждый случай важные сценарии и проблемы проектирования объектов, а затем пройдётесь по простому веб-приложению, демонстрирующему, как различные типы объектов могут эффективно работать вместе. Чему вы научитесь Универсальные правила проектирования для широкого круга объектов Рекомендации по тестированию объектов Каталог общих типов объектов Изменение и раскрытие состояния Проверьте свои навыки проектирования объектов с помощью упражнений Эта книга написана для Для читателей, знакомых с объектно-ориентированным языком и базовой архитектурой приложений. об авторе Матиас Нобак — профессиональный веб-разработчик с почти двадцатилетним опытом работы. Он управляет собственной веб-разработкой, обучением и консультационной компанией под названием Noback’s Office. Оглавление: 1 ¦ Программирование с объектами: введение 2 ¦ Создание сервисов 3 ¦ Создание других объектов 4 ¦ Манипулирование объектами 5 ¦ Использование объектов 6 ¦ Получение информации 7 ¦ Выполнение заданий 8 ¦ Разделение ответственности 9 ¦ Изменение поведения сервисов 10 ¦ Полевое руководство по объектам 11 ¦ Эпилог Предисловие Вступительное слово Благодарности О книге Для кого эта книга Структура книги О коде в книге Форум liveBook Об авторе Иллюстрации на обложке От издательства Глава 1. Программирование объектов: введение 1.1. Классы и объекты 1.2. Состояние 1.3. Поведение 1.4. Зависимости 1.5. Наследование 1.6. Полиморфизм 1.7. Композиция 1.8. Организация классов 1.9. Оператор возврата и исключения 1.10. Модульное тестирование 1.11. Динамические массивы Заключение Глава 2. Создание сервисов 2.1. Два типа объектов 2.2. Внедрение зависимостей и значений конфигурации в качестве аргументов конструктора 2.2.1. Хранение связанных файлов конфигурации 2.3. Внедряйте необходимые сущности, а не место их расположения 2.4. Все аргументы конструктора должны быть обязательными 2.5. Внедряйте зависимости только в конструкторе 2.6. Не существует необязательных зависимостей 2.7. Делайте все зависимости явными 2.7.1. Преобразуйте статические зависимости в зависимости объектов 2.7.2. Преобразуйте сложные функции в зависимости объектов 2.7.3. Делайте вызовы системных функций явными 2.8. Передавайте данные для выполнения задач как аргументы метода, а не аргументы конструктора 2.9. После инстанцирования сервиса его поведение должно оставаться неизменным 2.10. Не делайте ничего внутри конструктора, кроме инициализации свойств 2.11. Выдавайте исключение при недопустимом аргументе 2.12. Объявляйте сервисы как неизменяемые графы объектов с ограниченным рядом точек входа Заключение Ответы к упражнениям Глава 3. Создание других объектов 3.1. Запрашивайте минимально необходимый для согласованного поведения объекта объем данных 3.2. Запрашивайте только данные, которые имеют смысл 3.3. Не используйте собственные классы исключений при проверке недопустимых аргументов 3.4. Проверяйте специфические исключения для недопустимых аргументов, анализируя сообщения исключений 3.5. Создавайте новые объекты, чтобы избежать многократной проверки инвариантов предметной области 3.6. Создавайте новые объекты для представления составных значений 3.7. Используйте проверки утверждений для аргументов конструктора 3.8. Не внедряйте зависимости, а передавайте их в качестве аргументов методов 3.9. Используйте именованные конструкторы 3.9.1. Создавайте объекты из значений примитивного типа 3.9.2. Не добавляйте без необходимости такие методы, как toString() или toInt() 3.9.3. Продумывайте и внедряйте понятия, специфичные для предметной области 3.9.4. Для введения ограничения можно использовать приватный конструктор 3.10. Не используйте заполнители свойств 3.11. Добавляйте в объект только то, что нужно 3.12. Не тестируйте конструкторы 3.13. Исключение из правила: объекты для передачи данных 3.13.1. Используйте публичный модификатор для свойств 3.13.2. Не выдавайте исключения, а собирайте ошибки при проверках 3.13.3. Если нужно, используйте заполнение свойств Заключение Ответы к упражнениям Глава 4. Изменение объектов 4.1. Сущности: идентифицируемые объекты, которые отслеживают изменения и фиксируют события 4.2. Объекты-значения: заменяемые, анонимные и неизменяемые значения 4.3. Объекты для передачи данных: простые объекты с минимальным набором правил проектирования 4.4. Отдавайте предпочтение неизменяемым объектам 4.4.1. Заменяйте значения новыми, а не изменяйте их 4.5. Модификатор неизменяемого объекта должен возвращать модифицированную копию 4.6. В изменяемых объектах методы-модификаторы должны быть командными 4.7. В неизменяемых объектах методы-модификаторы должны иметь декларативные имена 4.8. Сравнивайте объекты целиком 4.9. При сравнении неизменяемых объектов проверяйте, что объекты равны, а не одинаковы 4.10. Вызов метода-модификатора должен всегда оставлять действительный объект 4.11. Метод-модификатор должен проверять, что запрашиваемое изменение состояния допустимо 4.12. Используйте запись внутренних событий для проверки изменяемых объектов 4.13. Не реализуйте текучие интерфейсы в изменяемых объектах Заключение Ответы к упражнениям Глава 5. Использование объектов 5.1. Шаблон реализации методов 5.1.1. Проверка предусловий 5.1.2. Сценарии появления ошибок 5.1.3. Счастливый путь 5.1.4. Проверки постусловий 5.1.5. Возвращаемое значение 5.2. Некоторые правила для исключений 5.2.1. Используйте собственные классы исключений только при необходимости 5.2.2. Именование недопустимых аргументов или классов логических исключений 5.2.3. Именование классов исключений времени исполнения 5.2.4. Используйте именованные конструкторы для указания причин ошибки 5.2.5. Сопровождайте ошибки подробным описанием Заключение Ответы к упражнениям Глава 6. Извлечение информации 6.1. Используйте методы-запросы для извлечения информации 6.2. Методы-запросы должны иметь возвращаемые значения единого типа 6.3. Избегайте использования методов-запросов, раскрывающих внутренние данные объектов 6.4. Задавайте специфичные методы и возвращаемые типы для необходимых запросов 6.5. Задавайте абстракцию для запросов, которые выходят за границы системы 6.6. Используйте заглушки в тестовых дублерах для методов-запросов 6.7. Методы-запросы должны использовать другие методы-запросы, а не командные методы Заключение Ответы к упражнениям Глава 7. Выполнение задач 7.1. Используйте командные методы с именем в императивной форме 7.2. Ограничивайте область воздействия командного метода и используйте события для выполнения второстепенных задач 7.3. Создавайте сервис неизменяемым изнутри и снаружи 7.4. Когда что-то идет не так, выдавайте исключение 7.5. Используйте запросы для сбора информации, а командные методы — для последующих действий 7.6. Задавайте абстракции для команд, которые выходят за границы системы 7.7. Проверяйте имитацией (mock) только командные методы Заключение Ответы к упражнениям Глава 8. Разделение функций 8.1. Отделяйте модели записи от моделей чтения 8.2. Создавайте модели чтения с учетом сценариев их использования 8.3. Создавайте модели чтения непосредственно из их источника данных 8.4. Построение моделей чтения из событий предметной области Заключение Ответы к упражнениям Глава 9. Изменение поведения сервисов 9.1. Введите аргументы конструктора, чтобы сделать поведение настраиваемым 9.2. Введите аргументы конструктора, чтобы сделать поведение заменяемым 9.3. Создавайте абстракции, чтобы добиться более сложного поведения 9.4. Декорируйте существующее поведение 9.5. Используйте объекты уведомлений или прослушиватели событий для добавления поведения 9.6. Не используйте наследование для изменения поведения объекта 9.6.1. Когда можно использовать наследование? 9.7. Помечайте классы как final по умолчанию 9.8. Помечайте методы и свойства как private по умолчанию Заключение Ответы к упражнениям Глава 10. Справочник объектов 10.1. Контроллеры 10.2. Службы приложений 10.3. Репозитории моделей записи 10.4. Сущности 10.5. Объекты-значения 10.6. Прослушиватели событий 10.7. Модели чтения и репозитории моделей чтения 10.8. Абстракции, конкретика, слои и зависимости Заключение Глава 11. Эпилог 11.1. Архитектурные шаблоны 11.2. Тестирование 11.2.1. Тестирование класса в сравнении с тестированием объекта 11.2.2. Разработка функций сверху вниз 11.3. Предметно-ориентированное проектирование 11.4. Заключение Приложение. Стандарт кодирования для примеров кода
Similar books
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF
Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"
2022 · PDF
Философия. Учебно-методический комплекс дисциплины по направлениям подготовки: 51.03.03 (071800.62) «Социально-культурная деятельность», профили подготовки: «Социально-культурные технологии в индустрии досуга», «Менеджмент социально-культурной деятельности», «Менеджмент детско-юношеского досуга», «Постановка и продюсирование культурно-досуговых программ», «Социально-культурная анимация и рекреация»; 38.03.02 (080200.62) «Менеджмент», профили подготовки: «Управление человеческими ресурсами», «Управление малым бизнесом», квалификации (степень) выпускника – «бакалавр»
2014 · PDF
Проектирование устройств приема и обработки сигналов: учебно-методическое пособие по курсу "Устройства приема и обработки сигналов" для студентов всех форм обучения специальностей: 210400.62 Радиотехника. Бакалавр Б.3.10. Основы цифровой обработки сигналов; 210700.62 Системы мобильной связи. Бакалавр Б.3.19. Радиоприемные устройства систем мобильной связи; 210601.65 Радиоэлектронные системы и комплексы. Специалист С.3.18. Устройства приема и обработки сигналов; 090302.65 Защита информации в системах связи и управления. Специалист С.3.30. Устройства приема и обработки сигналов
2015 · PDF