دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: نویسندگان: Jeff Langr سری: ISBN (شابک) : 9780131482395, 2004114916 ناشر: Prentice Hall سال نشر: 2005 تعداد صفحات: 881 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب Agile Java(TM): Crafting Code with Test-Driven Development به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب چابک جاوا (TM): تهیه کد با توسعه تست محور نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این یک کتاب عالی در مورد جاوا است. من در سال های گذشته چندین کتاب در مورد جاوا خوانده ام، اما هیچ کدام مانند این کتاب مفاهیم جاوا را آموزش نمی دهند. ای کاش این کتاب را 7 سال پیش، زمانی که شروع به توسعه در جاوا کردم، می گرفتم. ای کاش کتاب های جدیدتری از این نویسنده وجود داشت.
This is an excellent book on Java. I have read several books on Java in the past years, but none of them teaches Java concepts like this one. I wish I had got this book 7 years back when I started developing in Java. I wish there were more recent books by this author.
Agile Java Crafting Code with Test-Driven Development......Page 1
Table of Contents......Page 2
Copyright......Page 10
Praise for Agile Java......Page 12
Robert C. Martin Series......Page 13
About the Author......Page 14
Foreword......Page 15
Acknowledgments......Page 17
Introduction......Page 18
Who Is This Book For?......Page 20
What This Book Is Not......Page 21
How to Use This Book......Page 22
Exercises......Page 23
Conventions Used in This Book......Page 24
An Agile Overview......Page 26
What Is "Agile?"......Page 27
What Is Java?......Page 29
Why OO?......Page 31
What Is an Object?......Page 32
What Are Classes?......Page 34
Why UML?......Page 37
What Is Inheritance?......Page 38
Why Test-Driven Development?......Page 40
Setting Up......Page 42
Software You'll Need......Page 43
Does It Work?......Page 47
Compiling Hello World......Page 49
Executing Hello World......Page 50
Still Stuck?......Page 52
Lesson 1. Getting Started......Page 53
Testing......Page 54
Design......Page 55
A Simple Test......Page 56
JUnit......Page 59
Adding a Test......Page 61
Creating a Student......Page 63
Creating the Student Class......Page 64
Constructors......Page 66
Local Variables......Page 67
Returning a Value from a Method......Page 69
Assertions......Page 71
Instance Variables......Page 74
Summarizing the Test......Page 77
Refactoring......Page 78
this......Page 81
private......Page 83
Naming Conventions......Page 85
Whitespace......Page 87
Exercises......Page 88
Lesson 2. Java Basics......Page 89
CourseSession......Page 90
Enrolling Students......Page 92
int......Page 93
Initialization......Page 96
Default Constructors......Page 97
Suites......Page 98
The SDK and java.util.ArrayList......Page 99
Adding Objects......Page 102
Incremental Refactoring......Page 104
Objects in Memory......Page 106
Packages and the import Statement......Page 108
The java.lang Package......Page 110
The Default Package and the package Statement......Page 111
The setUp Method......Page 113
More Refactoring......Page 115
Class Constants......Page 117
Dates......Page 119
Overloaded Constructors......Page 120
Deprecation Warnings......Page 124
Refactoring......Page 125
Creating Dates with Calendar......Page 128
Comments......Page 129
Javadoc Comments......Page 131
Exercises......Page 134
Lesson 3. Strings and Packages......Page 135
Characters and Strings......Page 136
Strings......Page 139
StringBuilder......Page 141
System Properties......Page 143
Looping through All Students......Page 145
Single-Responsibility Principle......Page 147
Refactoring......Page 151
System.out......Page 154
Using System.out......Page 156
Refactoring......Page 157
Package Structure......Page 158
Access Modifiers......Page 159
Using Ant......Page 165
Exercises......Page 169
Lesson 4. Class Methods and Fields......Page 171
Class Methods......Page 172
Class Variables......Page 176
Operating on Class Variables with Class Methods......Page 178
Static Import......Page 181
Incrementing......Page 184
Factory Methods......Page 186
Simple Design......Page 188
Static Dangers......Page 189
Using Statics: Various Notes......Page 191
Jeff's Rule of Statics......Page 192
Booleans......Page 193
Tests as Documentation......Page 198
More on Initialization......Page 200
Exceptions......Page 202
Revisiting Primitive-Type Field Initialization......Page 204
Exercises......Page 205
Lesson 5. Interfaces and Polymorphism......Page 207
Sorting: Preparation......Page 208
Sorting: Collections.sort......Page 210
CourseReportTest......Page 211
Interfaces......Page 213
Why Interfaces......Page 215
Implementing Comparable......Page 216
Sorting on Department and Number......Page 218
The if Statement......Page 219
Grading Students......Page 221
Floating-Point Numbers......Page 222
Testing Grades......Page 224
Refactoring......Page 227
Enums......Page 229
Polymorphism......Page 231
Using Interface References......Page 237
ArrayList and the List Interface......Page 239
Exercises......Page 240
Lesson 6. Inheritance......Page 243
The switch Statement......Page 244
Case Labels Are Just Labels......Page 246
Maps......Page 249
Inheritance......Page 252
Abstract Classes......Page 255
Extending Methods......Page 257
Refactoring......Page 259
Enhancing the Grade Enum......Page 261
Summer Course Sessions......Page 262
Calling Superclass Constructors......Page 264
Refactoring......Page 268
More on Constructors......Page 271
Inheritance and Polymorphism......Page 274
The Principle of Subcontracting......Page 275
Exercises......Page 283
Lesson 7. Legacy Elements......Page 285
Looping Constructs......Page 286
Breaking Up a Student's Name......Page 287
Comparing Java Loops......Page 295
Refactoring......Page 297
Looping Control Statements......Page 298
The Ternary Operator......Page 301
Legacy Collections......Page 302
Iterators......Page 303
Iterators and the for-each Loop......Page 305
Casting......Page 307
Wrapper Classes......Page 309
Arrays......Page 313
Refactoring......Page 322
Exercises......Page 325
Lesson 8. Exceptions and Logging......Page 327
Exceptions......Page 328
Dealing with Exceptions......Page 331
Checked Exceptions......Page 332
Exception Hierarchy......Page 335
Creating Your Own Exception Type......Page 336
Checked Exceptions vs. Unchecked Exceptions......Page 338
Messages......Page 339
Catching Multiple Exceptions......Page 341
Rethrowing Exceptions......Page 343
Stack Traces......Page 346
The finally Block......Page 347
Refactoring......Page 349
Logging......Page 352
Logging in Java......Page 353
Testing Logging......Page 356
Logging to Files......Page 360
Testing Philosophy for Logging......Page 363
More on FileHandler......Page 365
Logging Levels......Page 366
Logging Hierarchies......Page 368
Additional Notes on Logging......Page 369
Exercises......Page 370
Lesson 9. Maps and Equality......Page 375
Logical Operators......Page 376
Short-Circuiting......Page 378
Hash Tables......Page 379
Courses......Page 381
Refactoring Session......Page 383
Equality......Page 390
The Contract for Equality......Page 393
Apples and Oranges......Page 395
Collections and Equality......Page 398
Hash Tables......Page 399
Collisions......Page 401
An Ideal Hash Algorithm......Page 402
A Final Note on hashCode......Page 404
More on Using HashMaps......Page 406
Additional Hash Table and Set Implementations......Page 410
toString......Page 412
Strings and Equality......Page 414
Exercises......Page 416
Lesson 10. Mathematics......Page 417
BigDecimal......Page 418
More on Primitive Numerics......Page 422
Integer Math......Page 424
Numeric Casting......Page 425
Expression Evaluation Order......Page 427
NaN......Page 428
Infinity......Page 430
Numeric Overflow......Page 431
Bit Manipulation......Page 432
java.lang.Math......Page 440
Numeric Wrapper Classes......Page 442
Random Numbers......Page 444
Exercises......Page 448
Lesson 11. IO......Page 450
Organization......Page 451
Character Streams......Page 452
Writing to a File......Page 457
java.io.File......Page 460
Byte Streams and Conversion......Page 462
A Student User Interface......Page 463
Testing the Application......Page 467
Data Streams......Page 469
CourseCatalog......Page 470
Advanced Streams......Page 473
Object Streams......Page 474
Random Access Files......Page 481
The Student Directory......Page 483
sis.db.DataFileTest......Page 485
Static Nested Classes and Inner Classes......Page 487
sis.db.DataFile......Page 489
sis.db.KeyFileTest......Page 492
sis.db.KeyFile......Page 494
sis.util.IOUtilTest......Page 496
sis.util.IOUtil......Page 498
sis.util.TestUtil......Page 499
Developing the Solution......Page 500
Exercises......Page 501
Lesson 12. Reflection and Other Advanced Topics......Page 503
Mock Objects Revisited......Page 504
The Jim Bob ACH Interface......Page 506
The Mock Class......Page 508
The Account Class Implementation......Page 510
Anonymous Inner Classes......Page 512
Adapters......Page 515
Accessing Variables from the Enclosing Class......Page 517
Tradeoffs......Page 520
Reflection......Page 521
Using JUnit Code......Page 522
The Class Class......Page 524
Building the Suite......Page 526
Class Modifiers......Page 529
Dynamic Proxy......Page 531
A Secure Account Class......Page 533
Building the Secure Account Solution......Page 535
The SecureProxy Class......Page 540
Problems With Reflection......Page 543
Exercises......Page 544
Lesson 13. Multithreading......Page 545
Multithreading......Page 546
Search Server......Page 547
The Search Class......Page 548
Less Dependent Testing......Page 551
The Server......Page 555
Waiting in the Test......Page 557
Creating and Running Threads......Page 558
Cooperative and Preemptive Multitasking......Page 562
Synchronization......Page 563
Creating Threads with Runnable......Page 566
Synchronized......Page 567
Synchronized Collections......Page 568
BlockingQueue......Page 569
Stopping Threads......Page 571
Wait/Notify......Page 573
Additional Notes on wait and notify......Page 577
Locks and Conditions......Page 578
Thread Priorities......Page 580
Deadlocks......Page 581
ThreadLocal......Page 582
The Timer Class......Page 586
Thread Miscellany......Page 588
Summary: Basic Design Principles for Synchronization......Page 593
Exercises......Page 594
Lesson 14. Generics......Page 595
Parameterized Types......Page 596
Collection Framework......Page 597
Multiple Type Parameters......Page 598
Creating Parameterized Types......Page 599
Erasure......Page 602
Upper Bounds......Page 604
Wildcards......Page 607
Implications of Using Wildcards......Page 610
Generic Methods......Page 612
Wildcard Capture......Page 613
Super......Page 615
Additional Bounds......Page 617
Raw Types......Page 619
Checked Collections......Page 621
Arrays......Page 623
Additional Limitations......Page 624
Reflection......Page 625
Final Notes......Page 626
Exercises......Page 627
Lesson 15. Assertions and Annotations......Page 628
Assertions......Page 629
The assert Statement vs. JUnit Assert Methods......Page 631
Annotations......Page 632
Building a Testing Tool......Page 633
TestRunnerTest......Page 634
TestRunner......Page 636
The @TestMethod Annotation......Page 639
Retention......Page 642
Annotation Targets......Page 644
Skipping Test Methods......Page 646
Modifying TestRunner......Page 647
Single-Value Annotations......Page 649
A TestRunner User Interface Class......Page 652
Array Parameters......Page 654
Multiple Parameter Annotations......Page 656
Default Values......Page 658
Additional Return Types and Complex Annotation Types......Page 660
Package Annotations......Page 662
Compatibility Considerations......Page 664
Additional Notes on Annotations......Page 665
Summary......Page 666
Exercises......Page 667
Additional Lesson I: Swing, Part 1......Page 668
Swing......Page 670
Getting Started......Page 671
Swing Application Design......Page 675
Panels......Page 676
Refactoring......Page 680
More Widgets......Page 684
Refactoring......Page 687
Button Clicks and ActionListeners......Page 690
List Models......Page 692
The Application......Page 695
Layout......Page 698
GridBagLayout......Page 706
Moving Forward......Page 710
Additional Lesson II: Swing, Part 2......Page 711
Miscellaneous Aesthetics......Page 712
Feel......Page 717
Tables......Page 736
Feedback......Page 741
Responsiveness......Page 747
Remaining Tasks......Page 750
Final Notes......Page 751
Additional Lesson III: Java Miscellany......Page 753
JARs......Page 754
Regular Expressions......Page 757
Cloning and Covariance......Page 763
JDBC......Page 765
Internationalization......Page 773
Call by Reference versus Call by Value......Page 781
Java Periphery......Page 783
What Else Is There?......Page 792
Appendix A. An Agile Java Glossary......Page 797
Appendix B. Java Operator Precedence Rules......Page 824
Appendix C. Getting Started with IDEA......Page 825
IDEA......Page 826
The Hello Project......Page 827
Running Tests......Page 834
Taking Advantage of IDEA......Page 839
Agile Java References......Page 841
Index......Page 844
SYMBOL......Page 845
A......Page 846
B......Page 848
C......Page 850
D......Page 853
E......Page 854
F......Page 855
G......Page 856
H......Page 857
I......Page 858
J......Page 860
K......Page 862
L......Page 863
M......Page 865
N......Page 867
O......Page 868
P......Page 869
Q......Page 871
R......Page 872
S......Page 873
T......Page 875
U......Page 876
V......Page 877
W......Page 878
X......Page 879
Y......Page 880
Z......Page 881