-
Use Onion architecture
- Dependencies go inwards. That is, the Core domain doesn't know about outside layers
-
Use pipeline model to implement workflows/use-cases/stories
- Business logic makes decisions
- IO does storage with minimal logic
- Keep Business logic and IO separate
-
Keep IO at edges
What should F# as a language contain?
- A default test framework like Expecto
- A default HTTP client like HTTP.fs
- A default web framework like Suave
- A default JS framework like Fable
- A default logging framework like Logary
- A default character parser combinator library like FParsec
- A default binary parser combinator library like FsAttoparsec
- A default concurrent programming framework like Hopac