Открыто

Practical Object-Oriented Design: An Agile Primer Using Ruby [Sandi Metz]

Тема в разделе "Электронные книги", создана пользователем rocketpavel, 14 авг 2018.

Цена: 1943р.
Взнос: 1943р.

Основной список: 1 участников

Резервный список: 3 участников

  1. 14 авг 2018
    #1
    rocketpavel
    rocketpavel СкладчикСкладчик

    Practical Object-Oriented Design: An Agile Primer Using Ruby [Sandi Metz]

    ShowCover.aspx.png

    By Sandi Metz

    Published Jul 10, 2018 by Addison-Wesley Professional.

    EPUB, MOBI, and PDF

    eBook (Watermarked)
    ISBN-10: 0-13-444560-0
    ISBN-13: 978-0-13-444560-1

    Страниц: 288

    Цена: 1943р

    Скрытая ссылка

    Полноценное руководство по созданию поддерживаемых, управляемых, понятных и мощных объектно-ориентированных приложений

    Объектно ориентированные языки существуют для того чтобы помочь тебе создавать красивые и понятных приложения, которые легко менять и просто расширять. К сожалению в мире полно объектно-ориентированных приложений которые сложно понимать и дорого изменять. Эта книга погрузит тебя в ОО образ мышления и научит на простых примерах и практических упражнениях мощным техникам объектно-ориентированного дизайна применяемым в реальном мире.
    Санди Метц продемонстрирует, как создавать новые приложения, которые могут исправить существующие приложения, которые казались невозможными для изменения. Каждая техника иллюстрируется расширенными примерами на понятном языке программирования Ruby, код всех примеров можно загрузить с сайта poodr.com.

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

    The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications

    Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples.

    Sandi Metz demonstrates how to build new applications that can “survive success” and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples in the easy-to-understand Ruby programming language, all downloadable from the companion website, poodr.com. Fully updated for Ruby 2.5, this guide shows how to

    • Decide what belongs in a single class
    • Avoid entangling objects that should be kept separate
    • Define flexible interfaces among objects
    • Reduce programming overhead costs with duck typing
    • Successfully apply inheritance
    • Build objects via composition
    Whatever your previous object-oriented experience, this concise guide will help you achieve the superior outcomes you’re looking for.

    Table of Contents

    Introduction xv

    Acknowledgments xix

    About the Author xxi

    Chapter 1: Object-Oriented Design 1

    1.1 In Praise of Design 2
    1.2 The Tools of Design 4
    1.3 The Act of Design 6
    1.4 A Brief Introduction to Object-Oriented Programming 10
    1.5 Summary 13

    Chapter 2: Designing Classes with a Single Responsibility 15

    2.1 Deciding What Belongs in a Class 16
    2.2 Creating Classes That Have a Single Responsibility 17
    2.3 Writing Code That Embraces Change 24
    2.4 Finally, the Real Wheel 33
    2.5 Summary 35

    Chapter 3: Managing Dependencies 37

    3.1 Understanding Dependencies 38
    3.2 Writing Loosely Coupled Code 41
    3.3 Managing Dependency Direction 53
    3.4 Summary 59

    Chapter 4: Creating Flexible Interfaces 61

    4.1 Understanding Interfaces 61
    4.2 Defining Interfaces 63
    4.3 Finding the Public Interface 65
    4.4 Writing Code That Puts Its Best (Inter)Face Forward 77
    4.5 The Law of Demeter 80
    4.6 Summary 84

    Chapter 5: Reducing Costs with Duck Typing 85

    5.1 Understanding Duck Typing 85
    5.2 Writing Code That Relies on Ducks 95
    5.3 Conquering a Fear of Duck Typing 100
    5.4 Summary 103

    Chapter 6: Acquiring Behavior through Inheritance 105

    6.1 Understanding Classical Inheritance 105
    6.2 Recognizing Where to Use Inheritance 106
    6.3 Misapplying Inheritance 114
    6.4 Finding the Abstraction 116
    6.5 Managing Coupling between Superclasses and Subclasses 129
    6.6 Summary 139

    Chapter 7: Sharing Role Behavior with Modules 141

    7.1 Understanding Roles 142
    7.2 Writing Inheritable Code 158
    7.3 Summary 161

    Chapter 8: Combining Objects with Composition 163

    8.1 Composing a Bicycle of Parts 163
    8.2 Composing the Parts Object 168
    8.3 Manufacturing Parts 176
    8.4 The Composed Bicycle 181
    8.5 Deciding between Inheritance and Composition 185
    8.6 Summary 191

    Chapter 9: Designing Cost-Effective Tests 193

    9.1 Intentional Testing 194
    9.2 Testing Incoming Messages 202
    9.3 Testing Private Methods 215
    9.4 Testing Outgoing Messages 217
    9.5 Testing Duck Types 221
    9.6 Testing Inherited Code 233
    9.7 Summary 244

    Afterword 245

    Index 247
     
    Последнее редактирование модератором: 22 авг 2018
  2. Последние события

    1. aleh123
      aleh123 не участвует.
      10 мар 2023
    2. constr
      constr не участвует.
      1 сен 2019
    3. antz13
      antz13 не участвует.
      9 ноя 2018
    4. katrin01
      katrin01 участвует.
      18 окт 2018

Поделиться этой страницей