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

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

Value Objects – TDD Patterns

Posted on December 30, 2020 by Bill Wake

How do you know if two objects are equal? One breakdown is to classify objects as value objects or reference objects. Value objects compare as equal when their component values are equal. Reference objects compare as equal only when it’s Continue reading Value Objects – TDD Patterns→

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

Building a Builder – TDD Patterns

Posted on December 23, 2020 by Bill Wake

A Builder (design pattern) lets you create an object piecemeal rather than requiring the data all at once. Let’s look at what’s involved in testing one into existence. Builder A builder has a constructor, methods that gather information, and a Continue reading Building a Builder – TDD Patterns→

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

Evolutionary Design: Techniques and Example

Posted on July 3, 2020 by Bill Wake

Evolutionary design is a strategy to enable incremental delivery of capabilities. Consider two delivery strategies. In one, we plan everything we need, develop, then deliver when everything is ready. In the other, an incremental strategy, we first deliver a minimal Continue reading Evolutionary Design: Techniques and Example→

Posted in xp123.com | Tagged customer, 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

  • 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
  • Threaded Code (and Composite)
  • Time Troubles – Transitions
  • Refactor: Inline-Adjust-Extract
  • Organizing Fields and Methods

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 © 2025 XP123. All Rights Reserved.
Theme: Catch Box by Catch Themes
Scroll Up