We introduced the concept of architecture as code or code-first approach. We took the opportunity to leverage Structurizr tool suite to support the end-user journey. However, most of the journey focused on what one could expect to gain from a single model defined as code, without dwelling on how authoring this model for too long. It is now time to address this point.
Leveraging an hypothetical requirement, this bootcamp will guide you over tiny stages to gradually define and refine a compelling software model
. Alongside his journey, one will be exposed to multiple dimensions a software model
should cover. Unfolding each stage will fuel the reader with insights regarding both the matching structurizr
syntax and the underlying C4
philosophy.
The course is self-directed learning. You can do it at whatever pace you wish.
Here’s how the C4 bootcamp
works.
This GitHub repository contains workspaces
and other assets you will need to complete the bootcamp.
Thus, if you want to follow the bootcamp we recommend doing the following:
- Sign up for GitHub, if you haven’t already.
- Clone this repository to your local machine.
- As you go through the project, keep a web browser tab open to the c4 bootcamp so you can read all of the instructions clearly and easily.
C4 bootcamp
consists of 17 stages
:
And a bunch of bonus stages
:
Each stage contains the following structure:
╠══ Stage xx
║ ╠══ README.md // step-by-step recipe
║ ╠══ theme*.dslf // extra theme(s) definition (optional)
║ ╚══ workspace.dsl // completed lesson workspace
Each C4 bootcamp
stage contains a README
which explains the following:
- The
Structurizr
concepts (eg ) and tools you will be applying in the lesson, along with links to any relevant documentation or examples. - Step-by-step instructions (✏️) on how to modify the
workspace
to match the expected one at the end of each lesson. Feel free to jump from ✏️ to ✏️, if you want to quickly unfold the stage. - If you get stuck following the step-by-step instructions, each lesson contains check points (📙) and a completed
workspace.dsl
(📘) file that shows the expected output. You can compare this against your own code and see what you need to do differently.
Each stage enrichs the previous one, allowing one to tailor software model
from scratch up to completion. If you are interested on an intermediate stage and don't want to unfold the whole journey prior to it, just take the previous state (*.dsl
files) as your starting point. Eg, if you would like to exercise stage 07
, just copy & paste *.dsl
from stage 06
, and engage.
A few things to bear in mind when you are following the step-by-step instructions:
- Don't just copy and paste the code shown in the lesson's
README
. You'll retain and learn all of the built-inStructurizr
functions if you type out the code as it's shown. - You might be required to fill in some blanks during individual lessons. Part of helping you learn
Structurizr
involves leaving some parts of the exercise up to you - if you ever feel lost, always check the contents of theworkspace.dsl
for that lesson. - Don't be afraid to ask questions.
We will provide explanations of all key concepts throughout each lesson, but of course, you should bookmark (and feel free to use!) the C4 documentation
This course expects the following:
- A Github account and basic knowledge of Git
- An up to date installation of VS Code editor
- An up to date
Cornifer
extension - An up & running docker daemon
See here for details.