gbih/ddd-in-go
38.8
Weak · 21 September 2026
953
lines of production code
Go
primary language
4
measurements over time
What this system is
Features
Add F\# example for undefined types and refactor Go example
Added a new F\# example (main.fsx) that defines an 'Undefined' exception type and uses it to create several type aliases (CustomerInfo, ShippingAddress, etc.) and a record type (Order). In the Go example, removed the commented-out F\# type definition and added a newline character to the Printf format string.
084-undefined-type · medium confidence
Added F\# example for modeling simple values and refactored Go example
Added a new F\# script (main.fsx) demonstrating how to model simple values using single-case unions and pattern matching. In the Go example, the main function was refactored to remove commented-out code and unused variable declarations, simplifying the demonstration of value types.
079-modeling-simple-values · high confidence
Removals
Removed experimental Go code for functional programming patterns
Removed all files in the 'WORKING' directory, which contained experimental Go code demonstrating functional programming concepts such as higher-order functions, currying, functional composition, and pipeline patterns.
WORKING · high confidence
Behavioural changes
Added MIT license and updated project documentation
The repository now includes an MIT license file, clarifying the terms of use and distribution for the software. Additionally, the README has been updated to correct the author's name from 'Scott Wlashin' to 'Scott Wlaschin' in the description of the domain modeling port.
(repo-wide) · high confidence
Added compile-time interface validation for contact info types
Added compile-time checks to ensure that EmailContactInfo, PostalContactInfo, and BothContactMethods correctly implement the ContactInfo interface. This prevents runtime errors by verifying interface satisfaction at compile time, improving code reliability without runtime overhead.
111-sumtypes · medium confidence
Cleaned up Go source by removing commented-out code
The main.go file in the 108-invariant directory has been refactored to remove large blocks of commented-out code and unused type definitions. This cleanup improves code readability and maintainability by eliminating dead code that was previously present in the file.
108-invariant · high confidence
Corrects typo in paid invoice output message
The text message printed when a paid invoice is processed has been corrected from 'The paid invoiceis is' to 'The paid invoice is is'. This fixes a typo in the user-facing output string.
092-entities-inside-id-equality · high confidence
Fixes missing newline in workflow example output
The 085-workflows-struct example was updated to include a newline character in the output of the placeOrder function, ensuring the printed result is properly terminated.
085-workflows-struct · high confidence
Fixes type mismatch in 107-units-of-measure example
The 107-units-of-measure example was updated to correct a type mismatch error. The code previously attempted to assign a string value to a variable typed as a custom float64-based unit, which is invalid in Go. This change removes the invalid assignment, ensuring the example compiles and runs without type errors.
107-units-of-measure · medium confidence
Go source file relocated to new directory structure
The main Go source file for the 108-invariant2 example has been moved from the 'WORKING' directory to the root of the 108-invariant2 folder. This change reorganizes the project's file structure, ensuring the entry point is located in the expected location for the example.
108-invariant2 · high confidence
Moved capturing-rules example to root directory
The Go source files for the 110-capturing-rules example have been relocated from the 'WORKING' subdirectory to the root of the project. This change also includes minor cleanup of comments and removal of extraneous reference material.
110-capturing-rules · high confidence
Refactored domain model examples to demonstrate sum and composed types
The domain modeling examples have been refactored to better illustrate type composition and pattern matching. In the F\# examples (065, 067, 068), the code now explicitly defines sum types (unions) and record types, with 067 demonstrating a discriminated union for order quantities and 068 showing a complex payment type composed of other types. In the Go examples, the code has been cleaned up by removing commented-out F\# code and unused test functions, while enabling the \ConvertPaymentCurrency\ function to show the practical application of the composed \Payment\ type.
065-sum-types, 067-sum-types, 068-composing-types · medium confidence
Removed commented-out type alias for InvoiceId
The commented-out type alias for InvoiceId has been removed from the main.go file, cleaning up the codebase by eliminating unused or obsolete type definitions.
091-entities-inside-id · medium confidence
Reorganized workflow example files
The main.go file for the '086-workflows-sum-switch' example has been moved from the 'WORKING' directory to the root of the example folder. This reorganization likely reflects a change in the project's directory structure or workflow management.
086-workflows-sum-switch value · medium confidence
Simplified entity identifier types and formatting
The entity identifier types have been simplified: ContactId is now defined as an empty interface rather than a custom type wrapping a UUID, and the UUID generation output formatting has been adjusted to remove an extra space in the printed string.
089-entity-identifiers · medium confidence
Simplified session initialization and debug output
The main function's logic was streamlined by removing several commented-out code blocks and unused variable declarations. Debug print statements for variables 't' and 'b' were updated to include explicit labels, and the conditional check that previously initialized 't' via 'createSession' was commented out, effectively disabling that initialization path.
109-invariant3 · medium confidence
Uncommented and exposed shipping and billing address handling in the Order workflow
The Go implementation for the '032-intro' location now actively processes and prints the results for shipping and billing addresses, which were previously commented out or missing. Specifically, the \main\ function now instantiates \ShippingAddress\ and \BillingAddress\ structs and passes them to the \do\ function, allowing users to see how these specific data structures are handled within the Order-Taking bounded context.
032-intro · medium confidence
Update import path for value object package
The import path for the immutable value object package has been updated from 'github.com/088-value-objects/immutable/valueobject001' to 'github.com/gbih/ddd-in-go/088-value-objects/immutable/valueobject001'. This change ensures the code references the correct repository location for the value object implementation.
088-value-objects · high confidence
Dependencies
Go module paths and structure updated
The Go module definitions have been restructured. The module at '105-private' was removed entirely. The module at '088-value-objects' was renamed and its module path was updated from 'github.com/088-value-objects/immutable' to 'github.com/gbih/ddd-in-go/088-value-objects/immutable'. The module at '110-capturing-rules' was renamed but its content remained unchanged.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 37 → 39 (+1.6)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 (new)
- Architecture 100 → 100 (+0.0)
- Maturity 28 → 28 (+0.0)
- Readiness 15 → 15 (+0.0)
- Security 92 → 84 (-7.6)
Resolved (26)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- …and 6 more
New (27)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- …and 7 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
gbih/ddd-in-go was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bd9bb37aaf22221494abcef851b919bc3455fb62 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.