دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: Second
نویسندگان: Sandi Metz
سری: Addison-Wesley Professional Ruby Series
ISBN (شابک) : 0134456475, 9780134456478
ناشر: Addison-Wesley Professional
سال نشر: 2018
تعداد صفحات: 281
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Practical Object-Oriented Design: An Agile Primer Using Ruby به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب طراحی عملی شی گرا: یک آغازگر چابک با استفاده از یاقوت نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
سادگی روبی که به طور گسترده مورد تحسین قرار می گیرد یک جنبه
منفی دارد: بسیاری از برنامه های Ruby و Rails بدون نگرانی برای
نگهداری طولانی مدت یا تکامل آنها ایجاد شده اند. وب غرق در کد
روبی است که اکنون تغییر یا گسترش آن عملاً غیرممکن است. این متن
به شما کمک می کند تا با استفاده از تکنیک های قدرتمند طراحی شی
گرا در دنیای واقعی که به طور کامل از طریق مثال های ساده و
کاربردی روبی توضیح داده شده است، آن مشکل را حل کنید. سندی متز
یک عمر مکالمه و ارائه در مورد طراحی شی گرا را به مجموعه ای
اثبات شده از روش های متمرکز روبی برای ایجاد کدهای قابل مدیریت،
توسعه پذیر و دلپذیر تبدیل کرده است. او نشان میدهد که چگونه
میتوان برنامههای کاربردی جدیدی ساخت که میتوانند از موفقیت
جان سالم به در ببرند، و برنامههای کاربردی موجود را که تغییر
آنها غیرممکن شده است، تعمیر کنیم. هر تکنیک با مثال های توسعه
یافته نشان داده شده است، که همگی از وب سایت همراه، poodr.info
قابل دانلود هستند. این راهنما به طور کامل برای Ruby 2.X به روز
شده است، این راهنما نشان می دهد که چگونه می توان:
تصمیم بگیرید که چه چیزی به یک کلاس روبی تعلق دارد، از درهم
تنیدگی اشیایی که باید جدا نگهداری شوند اجتناب کنید. اشیاء از
طریق ترکیب طراحی تست های مقرون به صرفه حل مشکلات رایج مرتبط با
کد روبی با طراحی ضعیف. به دنبال
Ruby's widely admired simplicity has a downside: too many Ruby
and Rails applications have been created without concern for
their long-term maintenance or evolution. The Web is awash in
Ruby code that is now virtually impossible to change or extend.
This text helps you solve that problem by using powerful
real-world object-oriented design techniques, thoroughly
explained via simple and practical Ruby examples. Sandi Metz
has distilled a lifetime of conversations and presentations
about object-oriented design into a proven set of Ruby-focused
practices for crafting manageable, extensible, and pleasing
code. She 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, all downloadable from the companion Web
site, poodr.info. Fully updated for Ruby 2.X, this guide shows
how to:
Decide what belongs in a single Ruby 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 Design cost-effective tests Solve common problems
associated with poorly designed Ruby code Whatever your
previous Ruby experience, Practical Object-Oriented Design
in Ruby, Second Edition will guide you to the superior
outcomes you're looking for.
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