diff --git a/.ref-cache.json b/.ref-cache.json index 3cccd324..1b0754d5 100644 --- a/.ref-cache.json +++ b/.ref-cache.json @@ -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, @@ -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, diff --git a/README.md b/README.md index 9677ac5b..ad0c8cc5 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ primary sources, carries eighteen mandatory dimensions, and cites every claim. ![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) diff --git a/dist/catalogue-status.json b/dist/catalogue-status.json index a9b94721..41027706 100644 --- a/dist/catalogue-status.json +++ b/dist/catalogue-status.json @@ -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", diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 6a06af44..0fc9b6f2 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -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 | |---|---|---|---|---|---| diff --git a/patterns/04-principles-and-laws/README.md b/patterns/04-principles-and-laws/README.md index d80de655..412bda91 100644 --- a/patterns/04-principles-and-laws/README.md +++ b/patterns/04-principles-and-laws/README.md @@ -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 @@ -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. | diff --git a/patterns/04-principles-and-laws/fail-fast.md b/patterns/04-principles-and-laws/fail-fast.md index ae34d56e..331ead71 100644 --- a/patterns/04-principles-and-laws/fail-fast.md +++ b/patterns/04-principles-and-laws/fail-fast.md @@ -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). @@ -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,