
The Test Bus Imperative
Testability is such an important virtue that you should make architectural decisions to improve the testability of a system.
4,364 articles on Engineering.

Testability is such an important virtue that you should make architectural decisions to improve the testability of a system.

The kinds of model you draw depends on the purpose that you want to put them to. John describes a useful distinction between conceptual, specification, and implementation models.

For quite a while now, I've been doing most of my writing using XML - even to the point of writing my last book in XML. As I've mentioned this to people they've asked me a number of questions about my experiences, and that's been enough to prompt this little article on the whole thing.

Patterns that describe how you can describe specifications of kinds of objects. Essentially the most general form allows you to encode predicate expressions as an interpreter of objects. These are useful for representing object queries, and for defining a requirement that objects need to match.

How to build an object structure that allows you to represent complicated recurring events. Such as the schedule for street cleaning when I lived in the South End of Boston.

I'd intended to put together UML diagrams for the patterns in the book. As it turned out I've come the view that other things were more important. Some others did work on diagrams, however, so here there are some for chapters 2-5

This is a rework of the accountability chapter from the original analysis patterns book. It does some small updates to the patterns, but the main change is a complete rewrite of the chapter to put it into the new form that I'm now working with.

Many things have properties, and there are many ways to model how these properties work. These range from simple explicit properties to complex property models with an active knowledge level for validation. These patterns discuss some of the options in handling this.












Additions and updates to the Stripe platform

Stripe events, partnerships, and industry observations

Spotlights and updates on Stripe's suite of payments, financial services, and business operations products

Learn how to build web and mobile applications to accept payments, send payouts, and manage your business online with Stripe.

Stripe’s expansion into new countries, markets, and modes of commerce

Abstracting away the complexity of payments has driven the evolution of our APIs over the last decade. Learn more about Stripe payments APIs here.

Stripe uses Sorbet to type check our 15 million lines of Ruby code, making engineers more productive. Here's why we love Sorbet.

What makes Radar, Stripe’s fraud prevention solution, so powerful? Here are some of the key decisions made—and lessons learned—in the years it has taken to build it.

Stripe Billing allows businesses to manage customer relationships with recurring payments, usage triggers, and other customizable features.

Among global business leaders surveyed, 84% agree that adapting pricing quickly will be a key competitive advantage. Our new real-time analytics system for Stripe Billing helps them spot customer trends just as they emerge.

Let users securely share financial data so you can streamline payments, reduce fraud, underwrite risk and build new products.

It's important that interactive elements have enough space around them, when used on a mobile or touchscreen device. This helps everyone, and especially those with motor impairments.

Embed a media file in a web page using the and tags.

Touchscreens are available on more and more devices, from phones up to desktop screens. Your app should respond to their touch in intuitive and beautiful ways.

When designing your websites for agents and humans, you can follow similar best practices. Learn what they are.




Learn about the benefits and drawbacks of on-device and client-side large language models.

We've outlined different model types so you can choose a right-sized, sustainable model for your application.

Learn how to modify your Android payment app to provide the user's selected shipping address as well as contact information when the merchant has requested them using the Payment Request API.


Learn how to animate between two views in your apps.

Learn how to animate modal views in your apps.


Learn how to make your Progressive Web App feel like a real app by understanding how to implement platform-specific app patterns with web technologies.

App shortcuts give quick access to a handful of common actions that users need frequently.


Details of Chrome's and other browsers' plans to remove AppCache.

The WebXR Hit Test API is an enhancement to the web's augmented reality that lets you place virtual objects in a real-world view.

Using ARIA labels to create accessible element descriptions

Find out what to do if your site has been hacked to host spam.


Async Clipboard API simplifies permissions-friendly copy and paste.


Async functions allow you to write promise-based code as if it were synchronous.

Learn how to invoke asynchronous web APIs when compiling traditionally synchronous languages to WebAssembly.

The Web Audio API makes it possible to properly achieve AV synchronization.



Knowing when to reach for a polyfill can be a hard decision, but using Baseline features can help you answer this question. Learn more in this guide!