Book description
Apply what you know about extreme programming and object-oriented design to learning C# and the Microsoft® .NET Framework on the fly. Written by a leader in extreme programming, this book covers both high-level concepts and practical coding applications.
Table of contents
- Extreme Programming Adventures in C#
- A Note Regarding Supplemental Files
- Foreword
- Introduction
- Extreme Programming
- 1. XML Notepad Stories
- 2. Testing with NUnit
- 3. A Pressing Matter
- 4. Extracting the Model
- 5. Expressing Ideas
- 6. The First Customer Acceptance Test
- 7. Warts and All
- 8. The InputCommand Object
- 9. Story One Is Done!
-
10. Find a Bug, Write a Test
- Oh No, There’s a Bug!
- Find a Defect, Write Tests
- Mock the TextBox
- Extract Method
- The Scroll Test
- Build an Interface
- Lessons: Lots of Learning, Not Much Testing
- Conclusions
- Code Summary
- CustomerTest.cs
- InputCommand.cs
- InputCommandTest.cs
- ITestTextBox.cs
- MockTextBox.cs
- Notepad.cs
- TestableTextBox.cs
- TestScroll.cs
- TextTextBox.cs
- TestTextModel1.cs
- TextModel.cs
- XMLNotepad.cs
- 11. Adding the Section Tag, Part I
- 12. Adding the Section Tag, Part II
- 13. Discovering the Menu
- 14. Don’t Try This at Home
- 15. Climbing Out of the Rat Hole
- 16. Adding the <pre> Tag
- 17. How Do We Do a Test That We Can’t Do?
- 18. A Simple Feature Teaches Some Lessons
- 19. Dark Clouds on the Horizon
- 20. Finishing the Shift+Enter Story
- 21. Some Things We Ought to Do
- 22. The Delegate from Troy
- 23. Planning Interlude
- 24. File Save and Load
-
25. Tagging Along
- Setting Direction
- The Basic Approach
- The Actual Work
- Improving the Platform
- sbBegin with a Test
- Enter the List Item
- What’s the Opposite of Simple?
- We Have to Do Something
- Some Starting Ideas
- Removing the Duplication
- Moving Responsibility
- A Bit More Cleanup
- Reflection
- Ordered List
- The Code at This Point
- Selected Customer Tests
- 26. Menu Arrays
- 27. Displaying the Article
-
28. Oh No! Undo!
- The Final Exam
- The Requirement
- Possible Solutions
- What About Tests?
- Begin with a Test
- Using TextModel as the Saved Object
- Snapshot Every Time
- Building It In
- Removing the Experiments
- It Gets Weird for a Moment
- Are We There Yet?
- Review of What Has Happened So Far
- The Big Picture
- Does This Prove Anything?
- 29. The Final Optimized Undo
- 30. The Long Dark Teatime of the Soul
-
31. Project Retrospective
- Learning from the Past
- Could We Put This Program into Production?
- The Value of Real Customers
- Customer Tests
- Pair Programming
- Trends over Time
- Are the Tests Helping Us?
- Are the Objects Helping Us?
- Did Our Tests and Objects Help Us Enough?
- Eat Your Own Dog Food
- Code Manager
- Coding Standard
- Be Ready to Use Advanced Facilities
- Is TextModel Too Large?
- Premature Optimization
- Responding to Pressure
- Pressure and Productivity
- Pressure and Quality
- Debugging Techniques
- Design and Code Quality
- Would "More Design" Have Helped?
- Smaller Questions
- The Effect of Illness
- Does Incremental Development Work?
-
Sound Bites
- Are the objects helping us? (Chapter 31, page 482)
- Are the tests helping us? (Chapter 31, page 481)
- Automated tests record our intelligence for later! (Chapter 5, page 65)
- Begin with a test. (Chapter 25, page 323)
- Build simple scaffolding and then improve it. (Chapter 17, page 216)
- Card, Conversation, Confirmation. (Chapter 6, pages 71-72)
- Daily builds are for wimps. (Extreme Programming, page xxix)
- Design all the time. (Chapter 1, page 8)
- Don’t fall in love with our own work
- End to end is further than you think. (Chapter 13, page 182)
- Expressing Intention. (Chapter 4, page 42)
- Fake it before you make it. Fake it till you make it. (Chapter 11, page 146)
- Find a bug, write a test. (Chapter 5, page 58)
- Infrastructure doesn’t please the customer; features do. (Chapter 30, page 472)
- Isolate the unknown
- It’s Chet’s fault. (Chapter 11, page 139)
- Keep the tests on green. (Chapter 17, page 213)
- Make it work; make it right; make it fast. (Chapter 17, page 215)
- Outer design should drive inner design, always. (Chapter 30, page 473)
- Programming without thinking...what good is that? (Chapter 30, page 473)
- Push a little when something seems too hard. (Chapter 17, page 216)
- Reflect on how things are going. (Chapter 30, page 469)
- Removing duplication is your friend. (Chapter 11, page 151)
- Solve what you know; leave the parts you don’t know for later. (Chapter 6, page 78)
- Some very simple refactoring...has done most of the job for us. (Chapter 22, page 268)
- Start a new path with something abysmally simple. (Chapter 4, page 45)
- The story’s not done until the customer tests run. (Chapter 6, page 72)
- Twenty lines without a successful test is a pretty big change! (Chapter 4, page 45)
- Two Hats. (Chapter 8, page 95)
- We don’t need a testing framework; we need tests. (Chapter 6, page 73)
- We start new features with large bold strokes. We’re intentionally building from rough toward smooth. (Chapter 4, page 47)
- What is the simplest thing that could possibly work? Do the simplest thing that could possibly work. (Chapter 28, page 408)
- YAGNI—You Aren’t Gonna Need It. (Chapter 14, page 192)
- Bibliography
- Ron Jeffries
- Index
- About the Author
- Copyright
Product information
- Title: Extreme Programming Adventures in C#
- Author(s):
- Release date: February 2004
- Publisher(s): Microsoft Press
- ISBN: 9780735619494
You might also like
book
Design Patterns in .NET Core 3: Reusable Approaches in C# and F# for Object-Oriented Software Design
Implement design patterns in .NET Core 3 using the latest versions of the C# and F# …
book
Hands-On Object-Oriented Programming with C#
Enhance your programming skills by learning the intricacies of object oriented programming in C# 8 Key …
book
Hands-On Parallel Programming with C# 8 and .NET Core 3
Enhance your enterprise application development skills by mastering parallel programming techniques in .NET and C# Key …
book
Learning C# 3.0
If you're new to C#, this popular book is the ideal way to get started. Completely …