دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: Fields. Jay, Harvie. Shane, Fowler. Martin سری: ISBN (شابک) : 1818094436, 0321603508 ناشر: Addison-Wesley سال نشر: 2009 تعداد صفحات: 479 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 2 مگابایت
در صورت تبدیل فایل کتاب Refactoring: Ruby Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Refactoring: Ruby Edition نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Cover......Page 1
Contents......Page 8
Foreword......Page 14
Preface......Page 16
Acknowledgments......Page 21
About the Authors......Page 23
Chapter 1: Refactoring, a First Example......Page 24
The Starting Point......Page 25
The First Step in Refactoring......Page 29
Decomposing and Redistributing the Statement Method......Page 30
Replacing the Conditional Logic on Price Code with Polymorphism......Page 55
Final Thoughts......Page 73
Where Did Refactoring Come From?......Page 74
Defining Refactoring......Page 75
Why Should You Refactor?......Page 77
When Should You Refactor?......Page 80
Why Refactoring Works......Page 83
Indirection and Refactoring......Page 84
Problems with Refactoring......Page 86
Refactoring and Design......Page 90
It Takes A While to Create Nothing......Page 92
Refactoring and Performance......Page 93
Optimizing a Payroll System......Page 94
Chapter 3: Bad Smells in Code......Page 96
Long Method......Page 97
Long Parameter List......Page 99
Divergent Change......Page 100
Feature Envy......Page 101
Primitive Obsession......Page 102
Case Statements......Page 103
Speculative Generality......Page 104
Message Chains......Page 105
Alternative Classes with Different Interfaces......Page 106
Refused Bequest......Page 107
Comments......Page 108
Repetitive Boilerplate......Page 109
The Value of Self-Testing Code......Page 110
The Test::Unit Testing Framework......Page 111
Developer and Quality Assurance Tests......Page 114
Adding More Tests......Page 115
Format of the Refactorings......Page 120
Finding References......Page 122
Chapter 6: Composing Methods......Page 124
Extract Method......Page 125
Inline Method......Page 131
Inline Temp......Page 133
Replace Temp with Query......Page 134
Replace Temp with Chain......Page 137
Introduce Explaining Variable......Page 140
Split Temporary Variable......Page 144
Remove Assignments to Parameters......Page 147
Replace Method with Method Object......Page 150
Substitute Algorithm......Page 154
Replace Loop with Collection Closure Method......Page 156
Extract Surrounding Method......Page 158
Introduce Class Annotation......Page 162
Introduce Named Parameter......Page 165
Remove Named Parameter......Page 170
Remove Unused Default Parameter......Page 173
Dynamic Method Definition......Page 175
Replace Dynamic Receptor with Dynamic Method Definition......Page 181
Isolate Dynamic Receptor......Page 183
Move Eval from Runtime to Parse Time......Page 188
Move Method......Page 190
Move Field......Page 195
Extract Class......Page 198
Inline Class......Page 202
Hide Delegate......Page 204
Remove Middle Man......Page 208
Chapter 8: Organizing Data......Page 210
Self Encapsulate Field......Page 211
Replace Data Value with Object......Page 214
Change Value to Reference......Page 217
Change Reference to Value......Page 221
Replace Array with Object......Page 224
Replace Hash with Object......Page 229
Change Unidirectional Association to Bidirectional......Page 233
Change Bidirectional Association to Unidirectional......Page 236
Replace Magic Number with Symbolic Constant......Page 240
Encapsulate Collection......Page 242
Replace Record with Data Class......Page 247
Replace Type Code with Polymorphism......Page 248
Replace Type Code with Module Extension......Page 255
Replace Type Code with State/Strategy......Page 262
Replace Subclass with Fields......Page 274
Lazily Initialized Attribute......Page 278
Eagerly Initialized Attribute......Page 280
Decompose Conditional......Page 284
Recompose Conditional......Page 287
Consolidate Conditional Expression......Page 288
Consolidate Duplicate Conditional Fragments......Page 291
Remove Control Flag......Page 292
Replace Nested Conditional with Guard Clauses......Page 297
Replace Conditional with Polymorphism......Page 302
Introduce Null Object......Page 307
Introduce Assertion......Page 315
Chapter 10: Making Method Calls Simpler......Page 320
Rename Method......Page 321
Add Parameter......Page 323
Remove Parameter......Page 325
Separate Query from Modifier......Page 326
Parameterize Method......Page 330
Replace Parameter with Explicit Methods......Page 333
Preserve Whole Object......Page 336
Replace Parameter with Method......Page 340
Introduce Parameter Object......Page 343
Remove Setting Method......Page 347
Hide Method......Page 350
Replace Constructor with Factory Method......Page 351
Replace Error Code with Exception......Page 355
Replace Exception with Test......Page 360
Introduce Gateway......Page 364
Introduce Expression Builder......Page 369
Pull Up Method......Page 376
Push Down Method......Page 379
Extract Module......Page 380
Inline Module......Page 385
Extract Subclass......Page 386
Introduce Inheritance......Page 391
Collapse Heirarchy......Page 394
Form Template Method......Page 395
Replace Inheritance with Delegation......Page 409
Replace Delegation with Hierarchy......Page 412
Replace Abstract Superclass with Module......Page 415
The Nature of the Game......Page 420
Four Big Refactorings......Page 421
Tease Apart Inheritance......Page 422
Convert Procedural Design to Objects......Page 428
Separate Domain from Presentation......Page 429
Extract Hierarchy......Page 435
Chapter 13: Putting It All Together......Page 440
References......Page 444
A......Page 446
C......Page 447
D......Page 451
E......Page 454
F......Page 456
G......Page 457
I......Page 458
M......Page 460
N......Page 464
O......Page 465
P......Page 466
Q......Page 467
R......Page 468
S......Page 473
T......Page 474
V......Page 476
W-X-Y-Z......Page 477