This is the git repository for the one week Domain-Driven Design (“DDD”) course given as part of Software Engineering Programme at Oxford University (website).
All documentation and code will be available via this repo. Please refresh and re-pull if the contents have changed.
Before the course starts:
- Ensure your development environment is set up (see below)
- Review the course outline
- Please work through the prestudy material in the prestudy.md file.
Any questions, please contact me at scott(at)scottwlaschin.com
We will be using F# as our development language. No prior experience with F# is needed -- the prestudy materials will cover the basics of using F# and I will explain everything else as we need it.
1. Please install the F# compiler and an F#-friendly editor
There are instructions at fsharp.org or Ionide.io
Installation instructions for F#:
- For Mac: https://fsharp.org/use/mac/
- For Windows: https://fsharp.org/use/windows/
- For Linux: https://fsharp.org/use/linux/
For a known-to-be F#-friendly editor, I recommend:
- Visual Studio Code (all platforms)
- JetBrains Rider (all platforms)
- Visual Studio (Windows and Mac).
NOTE: I prefer to change the defaults in VSCode and Visual Studio to be less distracting. A list of the settings is available in the file vscode_setup.md
I personally have not used Vim and Emacs for interactive coding in F#, but here are some links on how to use them:
- Emacs: fsharp-mode
- Vim: Ionide support and a blog post explaining how to use it.
If you would prefer not install on your local system, there are a number of ways to work on a remote VM or to develop in docker container, depending on your environment and editor. For example, VS Code has excellent support for remote development using SSH and for editing in a local docker container.
2. Clone or download this repo locally
If you already have git installed, you can use:
mkdir OxfordDDD
git clone https://github.com/swlaschin/OxfordDDD
If you don't have git installed, you can install it using these instructions. NOTE: we will not be using the features of git in the course, so installing it is not required (see below).
If you don't want to install git, you can download a zip file from the "code" button on the github website as shown in this screenshot:
3. Check that you can run F#
- Open the code folder:
- In VS Code, open the
/src
folder - In VisualStudio or JetBrains Rider, open the
OxfordDDD.sln
solution file, then "Solution Items"
- In VS Code, open the
- Open
00-HelloWorld.fsx
and follow instructions to check that F# is working
4. Open the prestudy material
Please work through the prestudy material in the prestudy.md file.
The folders in this repository are laid out as follows
/src/
contains the code/doc/
contains pdf documents/slides/
contains the slides/extra/
contains extra material not used in the course