Skip to content

XP123

Exploring Extreme Programming

Menu

Primary menu

  • Home
  • Refactoring Workshop
  • Start Here
    • Comics
    • TDD: Test-Driven Development
    • Refactoring
    • User Stories
    • Dungeons & Patterns
  • Update
  • About
  • Contact

Tag Archives: design

Review: Operating System Principles

Posted on December 29, 2021 by Bill Wake

Operating System Principles, by Per Brinch Hansen. 1973. This is a classic book on operating systems – better than many of its successors. What I love about this book is that it comes just after an era of experimentation, when Continue reading Review: Operating System Principles→

Posted in xp123.com | Tagged design, programmer, reviews

Immutable Objects

Posted on December 8, 2021 by Bill Wake

Immutability is the idea that once created, data never changes. Why might we want this? Avoid aliasing bugs: Aliasing occurs when there are multiple ways to access the same piece of data, and one piece changes it in a way Continue reading Immutable Objects→

Posted in xp123.com | Tagged design, programmer, XPlorations

Queues from Stacks: Functional Data Types

Posted on November 17, 2021 by Bill Wake

Functional languages often have immutable data types – you can’t change an object once you’ve created it, though you can include it as part of other objects. Immutable objects are easier to reason about, and prevent errors where two parts Continue reading Queues from Stacks: Functional Data Types→

Posted in xp123.com | Tagged design, programmer, XPlorations

Refactoring and Programming Language Semantics

Posted on November 10, 2021 by Bill Wake

Refactoring improves the design of code without changing its observable behavior. But what is observable behavior? We’ll look at how language semantics affect that. When you devise new refactorings, you have to take semantics into account. The Simple View is Continue reading Refactoring and Programming Language Semantics→

Posted in xp123.com | Tagged design, programmer, refactoring, XPlorations

Lambda to Reduce Coupling

Posted on October 27, 2021 by Bill Wake

Coupling occurs when one part of a system depends on another part. That is, if one part changes, the other must be adjusted too. Lambda expressions can reduce coupling by needing to refer to fewer things. Dependencies on Objects Consider Continue reading Lambda to Reduce Coupling→

Posted in xp123.com | Tagged design, programmer, refactoring, tdd, XPlorations

Lambda for Control Structures, a Refactoring

Posted on October 13, 2021 by Bill Wake

Several mainstream languages have added better support for lambda expressions (including lighter syntax) in the last few years. This can let you define new forms of control structures, and reduce duplication in a different way than say extracting a common Continue reading Lambda for Control Structures, a Refactoring→

Posted in xp123.com | Tagged design, refactoring, XPlorations

Example Parameterized Tests: Java, Kotlin, and Swift

Posted on September 14, 2021 by Bill Wake

Last time (“Extracting” in References), we looked at why you’d use parameterized tests, to reduce duplication, improve clarity, and improve test quality. This time we’ll look at an example parameterized test in three languages: Java, Kotlin, and Swift. Java Example Continue reading Example Parameterized Tests: Java, Kotlin, and Swift→

Posted in xp123.com | Tagged design, tdd, XPlorations

Extracting Parameterized Unit Tests

Posted on September 8, 2021 by Bill Wake

Duplication across tests may not be as harmful as duplication in production code, but a parameterized unit test can reduce duplication and help us create better tests. Judging Tests – The Pause Spotting duplication in tests is like spotting it Continue reading Extracting Parameterized Unit Tests→

Posted in xp123.com | Tagged design, refactoring, tdd, XPlorations

Refactoring: Forcing the Right Extract Method

Posted on August 25, 2021 by Bill Wake

Automated refactoring tools are great, but sometimes the tool doesn’t make the best choice. We can often nudge the tool to a better choice. Why Bother? Why bother nudging? Couldn’t you do the refactoring manually just as quickly? You could Continue reading Refactoring: Forcing the Right Extract Method→

Posted in xp123.com | Tagged design, programmer, refactoring, XPlorations

Disaster Strikes! A Design Dead End

Posted on March 10, 2021 by Bill Wake

In incremental development, we grow a system by adding capabilities one at a time. Our bet is that we won’t often hit a dead end, but if we do, the time we’ve already saved will let us dig our way Continue reading Disaster Strikes! A Design Dead End→

Posted in xp123.com | Tagged design, programmer, XPlorations

Post navigation

← Older posts
Newer posts →

Primary Sidebar Widget Area

Stay Up-to-Date

If you'd like to hear when articles come out, sign up today!

|●  Become a Patron!

Recent Posts

  • AAA and the Object Lifecycle
  • “Test Interface, Not Implementation”
  • How to Reduce Coupling, Three Ways
  • Reordering Items, Four Ways
  • And-Or Trees
  • Run Tests Without an App — Step by Step with Xcode
  • Swift Testing – A New Unit Testing Framework
  • TDD with a Function Pipeline
  • Trees – Confidence in Design
  • Pipelines – Confidence in Design

Tags

agile analysis atdd author business charts classic coach computers conference cool customer design economics fiction games HCI history improv integration interesting intro Java job aids language lean learning metaphor music myth patterns planning programmer refactoring resources reviews scrum software spreadsheet stories tdd team tester training XPlorations

Archives

counter for wordpress
Copyright © 2026 XP123. All Rights Reserved.
Theme: Catch Box by Catch Themes
Scroll Up