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

And-Or Trees

Posted on September 10, 2024 by Bill Wake

Suppose you want to represent a finite set of possibilities in a compact way. An And-Or Tree can do this, and is useful in several situations. An And-Or Tree has leaf nodes and interior nodes. The leaf nodes contain some Continue reading And-Or Trees→

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

TDD with a Function Pipeline

Posted on June 6, 2024 by Bill Wake

Our “geek” group tackled a problem a couple weeks ago, that one of us had heard suggested by Michael Feathers: given a sequence of numbers, tell how many non-zero runs it has. Ron Jeffries described a procedural implementation; we’ll look Continue reading TDD with a Function Pipeline→

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

Trees – Confidence in Design

Posted on May 2, 2024 by Bill Wake

Test-Driven Development (TDD) depends on assembling well-tested parts into a trustworthy whole. Some design structures make this easier. Today, we’ll look at trees. A tree is a structure consisting of leaf and interior nodes. An interior node contains some number Continue reading Trees – Confidence in Design→

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

Pipelines – Confidence in Design

Posted on April 4, 2024 by Bill Wake

The other day, Kent Beck pointed out a skill that test-driven development (TDD) relies on but doesn’t give much guidance about: “behavioral composition”. This is the skill of dividing a big behavior in such a way that we trust the Continue reading Pipelines – Confidence in Design→

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

Threaded Code (and Composite)

Posted on March 7, 2024 by Bill Wake

Let’s look at the threaded code approach. It’s a less-well-known way to build an interpreter for a programming language. (The more common approach simulates each instruction.) Threaded code has a high-level analog, and some extra tricks when done in assembly Continue reading Threaded Code (and Composite)→

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

Organizing Fields and Methods

Posted on November 2, 2023 by Bill Wake

When you’re making a class, in what order do you put the fields and methods? We’ll look at several choices and some tradeoffs between them. Organizing Fields I’ve seen a few approaches to organizing fields: In C#, Swift, and some Continue reading Organizing Fields and Methods→

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

Reduce Dependencies Using Lambda

Posted on October 5, 2023 by Bill Wake

When A depends on B (A → B), a change in B may force A to change as well. Dependencies are both good and bad: they let objects work together, but they make software harder to change. We can use Continue reading Reduce Dependencies Using Lambda→

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

Iterative Enhancement and XP-Style Design

Posted on September 7, 2023 by Bill Wake

“Iterative Enhancement” is a model for iterative development, from Basili & Turner, described in 1975 (!). We’ll look at it, and compare it to XP’s approach. I’ve seen occasional mention of this paper in people writing about evolutionary design or Continue reading Iterative Enhancement and XP-Style Design→

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

Observe and Control Objects – TDD Patterns

Posted on July 6, 2023 by Bill Wake

An object holds state, and you observe and control it (or both) through its public fields or methods. We’ll look at techniques you can use when an object provides no direct way to observe or control it the way a Continue reading Observe and Control Objects – TDD Patterns→

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

Code That Writes Code Needs Multi-Level Tests

Posted on June 1, 2023 by Bill Wake

Code that writes code is fun in a meta sort of way, but it requires extra testing. We’ll start by considering generic systems and their tests, then look at testing for code generation.  “I’d rather write programs to write programs Continue reading Code That Writes Code Needs Multi-Level Tests→

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

Post navigation

← Older 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