/OxfordDDD

One week Domain-Driven Design (“DDD”) course given as part of Software Engineering Programme at Oxford University

Primary LanguageF#Apache License 2.0Apache-2.0

Domain Driven Design - One Week Course

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


How to set up your development environment

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 a known-to-be F#-friendly editor, I recommend:

  • Visual Studio Code (all platforms)
  • JetBrains Rider (all platforms)
  • Visual Studio (Windows and Mac).

I personally have not used Vim and Emacs for interactive coding in F#, but here are some links on how to use them:

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"
  • 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.


Directory Structure

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