Please log in to watch this conference skillscast.
Time is a familiar, yet really fuzzy thing. And then we have to write software that deals with it!
We’ll start by exploring some aspects of time that require to understand the domain based on the example of Hotel Business.
1 - Time zones:
A user in Los Angeles books a room through our servers in Paris in a hotel in Sidney… A 3 day last minute discount could apply. When is it effective? What would happen for a hotel at the South Pole?
2 - Bi-temporal time:
Hotels define their prices and availabilities for each night. But to optimize hotel revenue, we use yield management technics, and look at how those values change in time: what was the price of the night of the 1st of august yesterday, and what will it be tomorrow? Having a clear understanding of the model is key to not get lost.
3 - Nights and days:
Hotels talk about the price for the 25th of June... but what does it mean? Most system implement it as a day. When Expedia started to permit people to book the 26th of June for the 25th, most people were surprised. Still a good understanding of the domain explains why it’s a total valid use case and most system model is to naïve. But what about when we'll book hotels on mars - different day length, year length ?
4 - Time passing:
Time that pass is hard to model in systems, language and APIs are far too naïve. By a careful understanding of how we feel time passing, we’ll see how events are a powerful model of time, and Domain Events with Event Sourcing tell the system whole story at the Domain level. Time left can be used to show how expressive and close to the Ubiquitous Language Event Sourcing in F# can be.
YOU MAY ALSO LIKE:
- Ukulele tabs in F# - Audience Level: Beginner (SkillsCast recorded in April 2017)
- Functional Concurrency in .NET with C# and F# (in London on 9th - 10th September 2019)
- Fast Track to F# with Tomas Petricek & Phil Trelford (in London on 9th - 10th September 2019)
- ProgNET London 2019 (in London on 11th - 13th September 2019)
- F# eXchange 2020 (in London on 2nd - 3rd April 2020)
- Hands-on: Fractal art with Fable and WebGL (in London on 20th June 2019)
- Keynote by Dick Wall on Why API Design Matters, and Why Yours Sucks! (and mine sucks too!) (in London on 24th June 2019)
- Solving 5 typical Issues in API development with Domain Driven Design (SkillsCast recorded in June 2019)
- Fancy Bears Are Not Your Problem: Real World Appsec (SkillsCast recorded in June 2019)