Handling a Complex Domain with Readable Code
summary
Property tax software for Norway (used across ~300 municipalities and developed for 4–5 years) models complex rules with F# and event sourcing, using discriminated unions and units of measure to prevent type mistakes, computation expressions and active patterns to keep validation and branching readable, and bilingual identifiers (Norwegian domain terms) to let domain experts review code directly. The system produces notifications, tax calculations and reports, stays extensible for new regulations, and reduces cognitive load when debugging.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 2:00Outline
- 3:08About Norcat
- 4:05Property Taxes
- 5:25Data Sources
- 6:38Example
- 7:28Output
- 8:09Complexity
- 10:23How are you using fsharp
- 11:36Readability
- 13:20Coding in Norwegian
- 15:20Cancelout function
- 18:05Expressions
- 19:11System Data Import
- 20:39Passing Functions
- 22:18Conclusion
- 23:20Questions
related talks
37mDomain modelling in object-oriented and functional programming, based on C# and F#
51mExperiences from large project maintenance at the Norwegian tax authority
01h 02mDomain-Driven Refactoring
42mHigh-Speed DDD (revisited)
42mTo DDD or not to DDD? Domain modelling case study
58mDomain Driven Design (DDD) with Algebraic Data Types (ADT)
54mHelp! We’re inheriting a large F# application
24mKotlin Multiplatform's Cross-Platform at Norway's 377-Year-Old Postal Service
