Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions .ref-cache.json
Original file line number Diff line number Diff line change
Expand Up @@ -3345,6 +3345,7 @@
"https://martinfowler.com/eaaDev/SupervisingPresenter.html": 200,
"https://martinfowler.com/eaaDev/uiArchs.html": 200,
"https://martinfowler.com/ieeeSoftware/coupling.pdf": 200,
"https://martinfowler.com/ieeeSoftware/failFast.pdf": 200,
"https://martinfowler.com/ieeeSoftware/protectedVariation.pdf": 200,
"https://martinfowler.com/refactoringErrata.html": 200,
"https://masstransit.io/documentation/concepts/messages": 200,
Expand Down Expand Up @@ -4849,12 +4850,12 @@
"https://www.reactive-streams.org/": 200,
"https://www.research.ed.ac.uk/en/publications/handlers-of-algebraic-effects": 200,
"https://www.research.ed.ac.uk/en/publications/monads-for-functional-programming/": 200,
"https://www.researchgate.net/publication/221366961_Relationship-based_access_control_policies_and_their_policy_languages": "429 then HTTPError",
"https://www.researchgate.net/publication/228342050_Software_design_patterns_for_message_driven_service_oriented_integration_of_stovepipe_applications_in_healthcare_enterprise": "429 then HTTPError",
"https://www.researchgate.net/publication/2378571_Ideal_Hash_Trees": "429 then HTTPError",
"https://www.researchgate.net/publication/2949837_Virtual_Time_and_Global_States_of_Distributed_Systems": "429 then HTTPError",
"https://www.researchgate.net/publication/342799123_RefactoringMiner_20": "429 then HTTPError",
"https://www.researchgate.net/publication/43921655_Combinators_for_bidirectional_tree_transformations_A_linguistic_approach_to_the_view-update_problem": "429 then HTTPError",
"https://www.researchgate.net/publication/221366961_Relationship-based_access_control_policies_and_their_policy_languages": "403 then HTTPError",
"https://www.researchgate.net/publication/228342050_Software_design_patterns_for_message_driven_service_oriented_integration_of_stovepipe_applications_in_healthcare_enterprise": "403 then HTTPError",
"https://www.researchgate.net/publication/2378571_Ideal_Hash_Trees": "403 then HTTPError",
"https://www.researchgate.net/publication/2949837_Virtual_Time_and_Global_States_of_Distributed_Systems": "403 then HTTPError",
"https://www.researchgate.net/publication/342799123_RefactoringMiner_20": "403 then HTTPError",
"https://www.researchgate.net/publication/43921655_Combinators_for_bidirectional_tree_transformations_A_linguistic_approach_to_the_view-update_problem": "403 then HTTPError",
"https://www.rfc-editor.org/info/rfc5246": 200,
"https://www.rfc-editor.org/info/rfc6265/": 200,
"https://www.rfc-editor.org/info/rfc6749": 200,
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ primary sources, carries eighteen mandatory dimensions, and cites every claim.
<!-- BADGES:AUTOGEN:START -->
![CI](https://github.com/mjmirza/patterns/actions/workflows/ci.yml/badge.svg?branch=main)
![Catalogue completion](https://img.shields.io/badge/completion-100.0%25-yellow)
![References checked](https://img.shields.io/badge/references%20checked-5067-brightgreen)
![References checked](https://img.shields.io/badge/references%20checked-5068-brightgreen)
![Stale entries](https://img.shields.io/badge/stale%20entries-0-brightgreen)
![Code examples tested](https://img.shields.io/badge/code%20examples-compiled%20in%20CI-brightgreen)
<!-- BADGES:AUTOGEN:END -->
Expand Down
2 changes: 1 addition & 1 deletion dist/catalogue-status.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"families_total": 29,
"families_complete": 29,
"stale_entries": 0,
"references_checked": 5067,
"references_checked": 5068,
"rows": [
{
"family": "01-design-patterns-gof",
Expand Down
2 changes: 1 addition & 1 deletion docs/PROGRESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Completion: 100.0%
Families: 29
Families complete: 29
Stale entries (untouched past 180 days): 0
References checked (live in .ref-cache.json): 5067
References checked (live in .ref-cache.json): 5068

| # | Family | Published | Planned | Target | Percent |
|---|---|---|---|---|---|
Expand Down
4 changes: 2 additions & 2 deletions patterns/04-principles-and-laws/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Origin. Martin, Larman, Brewer, Conway

42 entries, 327,232 words. Every entry carries all 18
42 entries, 327,240 words. Every entry carries all 18
dimensions from [the entry contract](../../docs/ENTRY-TEMPLATE.md).

## Design Principle
Expand Down Expand Up @@ -36,7 +36,7 @@ dimensions from [the entry contract](../../docs/ENTRY-TEMPLATE.md).
| [Conway's Law](conway-law.md) | canonical | 7,751 | A team is asked to build a system with several distinct concerns. |
| [Creator](creator.md) | canonical | 7,514 | Every object-oriented system eventually needs a new object of type A to come into existence somewhere, and the code that calls the constructor has to live in some class B. |
| [Do Not Repeat Yourself](do-not-repeat-yourself.md) | canonical | 6,453 | A single fact about the system, a tax rate, a validation rule, a URL, a unit conversion, a business rule about who is allowed to approve a refund, gets written down in more than ... |
| [Fail Fast](fail-fast.md) | established | 7,090 | A running program encounters a state it was not written to handle correctly. |
| [Fail Fast](fail-fast.md) | established | 7,098 | A running program encounters a state it was not written to handle correctly. |
| [High Cohesion](high-cohesion.md) | canonical | 8,014 | A team splits a system into modules, classes, packages, or services, and almost every split is defensible on some axis. |
| [Idiomatic](idiomatic.md) | canonical | 7,073 | A person who learns to program in one language carries that language's mental model into every language learned afterward. |
| [Indirection](indirection.md) | canonical | 8,493 | Two parts of a system need to interact, but binding them together directly creates a cost that shows up later rather than now. |
Expand Down
10 changes: 5 additions & 5 deletions patterns/04-principles-and-laws/fail-fast.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ site on 31 August 2004 and syndicated the same year through IEEE Software's
Shore's framing is direct. software should fail immediately and visibly when
an error occurs, rather than working around the error, because a system that
masks a fault produces a mysterious failure later, far from the place the
fault actually happened. Fowler carries the same essay on his own bliki under
the same title and cites Shore as the source
(https://martinfowler.com/bliki/FailFast.html, verified 2026-08-02, page
fault actually happened. Fowler published the IEEE Software article titled
"Fail Fast" by James Shore on his site and cites Shore as the source
(https://martinfowler.com/ieeeSoftware/failFast.pdf, verified 2026-08-30, page
confirmed reachable and attributes the term to Shore's 2004 IEEE Software
piece).

Expand Down Expand Up @@ -746,8 +746,8 @@ enough of the rest of the input to reproduce the problem.

- James Shore, "Fail Fast", 31 August 2004,
https://www.jamesshore.com/v2/blog/2004/fail-fast, verified 2026-08-02.
- Martin Fowler, "FailFast", bliki, 2004,
https://martinfowler.com/bliki/FailFast.html, verified 2026-08-02.
- Martin Fowler, "FailFast", IEEE Software column article by James Shore, 2004,
https://martinfowler.com/ieeeSoftware/failFast.pdf, verified 2026-08-30.
- Bertrand Meyer, "Object-Oriented Software Construction", 2nd edition,
Prentice Hall, 1997, chapter 11, "Design by Contract, if you insist".
- "Design by Contract" summary, https://en.wikipedia.org/wiki/Design_by_contract,
Expand Down
Loading