liveBook · Manning

Flexibility

As explained in API Design Patterns

Flexibility is the property of an interface that allows users or client code to accommodate changes without losing functionality.

Flexibility is an interface’s ability to accommodate changes without breaking existing use. It matters especially for APIs because client code depends on exact names and request shapes. section 2.2

Renaming an API field

Renaming an API field can immediately break code written against the previous name. By contrast, moving or recoloring a GUI button may frustrate users without making the interface unusable. section 2.2

Table 2.2 Difficulty of changing various interfaces (view table figure)

Flexibility

Audience

Example interface

Change difficulty

Flexible

Private

Internal monitoring console

Very easy

Flexible

Public

Facebook.com

Moderate

Rigid

Private

Internal photo storage API

Difficult

Rigid

Public

Public Facebook API

Very difficult

Compare how audience and interface rigidity combine to determine the difficulty of making changes. section 2.2

How API Design Patterns covers it

How deep it goes
Defines flexibility through API and GUI contrasts, stopping short of implementation techniques or detailed compatibility strategies.
Examples
Uses an API field rename, GUI button changes, and a comparison of private and public interfaces.
What you can do after
Evaluate/understand why API changes are more brittle than comparable GUI changes.
How it connects
Connects flexibility with APIs, graphical user interfaces, API design patterns, and agile development.

Also explained in

Compare how 9 books explain flexibility →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of API Design Patterns. The section links point to the parts of the book it draws on.