LibCoder

Ruby. Объектно-ориентированное проектирование

1C Agda Ruby
Ruby. Объектно-ориентированное проектирование
Дата выхода: 2017
Издательство: Питер
Количество страниц: 304
Размер файла: 2,6 МБ
Тип файла: PDF
Добавил: LibCoder
Оглавление
ПредисловиеВведение от технической группыКому эта книга будет полезнаКак следует читать книгуВ чем польза этого изданияБлагодарностиОб автореГлава....1Объектно-ориентированное проектированиеХвала проектированиюПроблемы, решаемые с помощью проектированияПочему изменения так нелегко даютсяОпределение проектированияИнструменты проектированияПринципы проектированияШаблоны проектированияПроцесс проектированияКогда нужно приступать к проектированиюОценка проектированияКраткое введение в объектно-ориентированное программированиеПроцедурные языкиОбъектно-ориентированные языкиВыводыГлава 2.Проектирование классов с единственной обязанностьюЧто должно принадлежать классуГруппировка методов в классыОрганизация кода с целью сохранения легкости внесения измененийСоздание классов с единственной обязанностьюПочему предметом рассмотрения стала единственная обязанностьОпределение наличия у класса единственной обязанностиКогда следует принимать проектировочные решенияСоздание кода, легко принимающего измененияПолагайтесь на поведение, а не на данныеПринуждение к повсеместному внедрению единственной обязанностиИ наконец, реальное колесоВыводыГлава....3Управление зависимостямиОсновные сведения о зависимостяхВыявление зависимостейСвязи между объектами — Coupling Between Objects (CBO)Другие зависимостиСоздание кода со слабой связьюВнедренные зависимостиИзоляция зависимостейУстранение зависимостей от порядка следования аргументовУправление направлением зависимостейРазворот в обратном направленииВыбор направленияОпределение конкретности и абстрактностиВыводыГлава....4Создание гибких интерфейсовОсновные сведения об интерфейсахОпределение интерфейсовОткрытые интерфейсыЗакрытые интерфейсыОбязанности, зависимости и интерфейсыПоиск открытого интерфейсаПример приложения: компания, занимающаяся велотуризмомФормирование намеренияИспользование диаграмм последовательностиНужно не говорить «как», а спрашивать «что»Поиск контекста независимостиДоверие, оказываемое другим объектамИспользование сообщений для обнаружения потребности в новых объектахСоздание приложения, основанного на сообщенияхНаписание кода, визитной карточкой которого становится его лучший интерфейсСоздавайте четко выраженные интерфейсыУважительное отношение к чужим открытым интерфейсамБудьте осмотрительны при наличии зависимости от закрытых интерфейсовМинимизация контекстаЗакон ДеметрыОпределение законаПоследствия нарушенийКак обойтись без нарушенийПрислушиваясь к закону ДеметрыВыводыГлава....5Снижение затрат за счет неявной типизацииОсновные сведения о неявной типизацииУпущение из виду возможностей применения неявной типизацииУсугубление проблемыОбнаружение возможностей применения неявной типизацииПоследствия неявной типизацииНаписание кода, полагающегося на использование неявной типизацииОбнаружение скрытых возможностей применения неявной типизацииВнедрение доверия в использование неявной типизацииДокументирование неявных типовРаспределение кода между «утками»Мудрый подход к выбору «уток»Преодоление страха применения неявной типизацииПодрыв неявной типизации с помощью статической типизацииСравнение статической и динамической типизацииВступление на путь динамической типизацииВыводыГлава....6Получение поведения через наследованиеОсновные сведения о классическом наследованииКак определить, где следует воспользоваться наследованиемНачнем с конкретного классаВстраивание нескольких типовПоиск встраиваемых типовВыбор наследованияПрорисовка наследственных связейНеверное применение наследованияПоиск абстракцииСоздание абстрактного родительского классаПеремещение вверх абстрактного поведенияОтделение абстрактного от конкретногоИспользование схемы шаблонного методаРеализация каждого шаблонного методаУправление связанностью родительских классов и подклассовОбщие сведения о связанностиУстранение связанности подклассов с использованием хук-сообщенийВыводыГлава....7Разделение ролевого поведения с помощью модулейОсновные сведения о роляхПоиск ролейОрганизация обязанностейУстранение ненужных зависимостейВыявление неявного типа, подходящего для планированияНужно позволить объектам говорить самим за себяНаписание конкретного кодаИзвлечение абстракцииПоиск методовГрубое упрощениеУточненное объяснениеПочти полное объяснениеНаследование ролевого поведенияНаписание наследуемого кодаВыявление антишаблоновПринуждение к абстракцииСоблюдение контрактаИспользование схемы шаблонного методаПревентивное отделение классовСоздание неглубоких иерархийВыводыГлава....8Объединение объектов путем составления композицииСоставление композиции Bicycle (велосипед) из Parts (частей)Обновление класса BicycleСоздание иерархии PartsСоставление композиции для объекта PartsСоздание PartПридание объекту Parts большей схожести с массивомИзготовление Parts-объектовСоздание модуля PartsFactoryПрименение PartsFactoryBicycle в виде композицииВыбор между наследованием и композициейПриемлемость наследованияПриемлемость композицииВыбор характера отношенийВыводыГлава....9Проектирование экономичных тестовЦеленаправленное тестированиеОсознание намеренийВыявление предмета тестированияУмение определять нужный момент для тестированияУмение проводить тестированиеТестирование входящих сообщенийУдаление неиспользуемых интерфейсовПроверка открытого интерфейсаИзоляция тестируемого объектаВнедрение зависимостей с использованием классовВнедрение зависимостей в качестве ролейТестирование закрытых методовИгнорирование закрытых методов при тестированииУдаление закрытых методов из тестируемого классаВыбор в пользу тестирования закрытого методаТестирование исходящих сообщенийИгнорирование сообщений-запросовПроверка сообщений-командТестирование неявных типовТестирование ролейРолевые тесты для проверки дублеровТестирование унаследованного кодаОпределение унаследованного интерфейсаОпределение обязанностей подклассаТестирование уникального поведенияВыводыЗаключение

Описание

Ниже — практический обзор по теме «объектно».

Тем, кто уже знаком с объектно-ориентированным проектированием, будет о чем поразмышлять; возможно, они по-новому посмотрят на уже привычные вещи и, вполне вероятно, с чем-то будут не согласны. Читателям с разными уровнями подготовки книга окажется по-разному полезна. Поскольку в объектно-ориентированном проектировании нет истины в последней инстанции, оспаривание принципов (и спор с автором данной книги) только улучшит общее понимание предмета. Хотя издание должно представлять интерес для читателей с различными уровнями подготовки, оно выпускалось с прицелом на новичков. В конце концов, именно вы должны оценивать собственные конструкции кода, проводить эксперименты и делать правильный выбор. Если вы новичок, то эта часть введения — именно для вас. Усвойте простую истину: объектно-ориентированное проектирование не магия.

На этом основные моменты по теме закрыты.

объектно ориентированное проектирование уровнями подготовки именно ruby читателям

Частые вопросы

Можно ли скачать «Ruby. Объектно-ориентированное проектирование» бесплатно?

Да, «Ruby. Объектно-ориентированное проектирование» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.

В каком формате и какого размера файл?

Книга предоставляется в формате PDF, размер файла 2,6 МБ.

Кто автор и когда вышла книга?

автор — Метц Сэнди, издательство Питер, год выпуска 2017, 304 страниц.

О чём книга «Ruby. Объектно-ориентированное проектирование»?

Читателям с разными уровнями подготовки книга окажется по-разному полезна.Тем, кто уже знаком с объектно-ориентированным проектированием, будет о чем поразмышлять; возможно, они по-новому посмотрят на уже привычные вещи и, вполне вероятно,

Похожие материалы