Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
nocomplexity committed Nov 5, 2024
1 parent d12f709 commit 3ccadc2
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 66 deletions.
21 changes: 18 additions & 3 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Book settings
title: "Architecture Playbook"
author: "Maikel Mardjan"
author : '<a href="https://nocomplexity.com/">Maikel Mardjan (nocomplexity.com)</a>' # The author of the book
#author : '' To ommit the author line in the footer
logo: 'images/nocxbanner.png'
copyright: "2018,2019, 2020 BM-Support.org. Created by Maikel Mardjan. This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (cc-by-sa)"
copyright: "2018-2024 BM-Support.org. Created by Maikel Mardjan. This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (cc-by-sa)"


launch_buttons:
Expand All @@ -17,7 +18,21 @@ html:
use_edit_page_button: true
extra_navbar: ''


# Advanced and power-user settings
sphinx:
config:
master_doc: "introduction"
html_show_copyright: false
html_last_updated_fmt: ""
html_theme_options:
repository_url: "https://github.com/nocomplexity/ArchitecturePlaybook"
repository_branch: "master"
use_repository_button: True
use_edit_page_button: True
use_issues_button: True
logo:
text: <b>Architecture Playbook</b>
extra_footer: '<p>(c) 2018-2024 <a href="https://bm-support.org/"> BM-Support.org</a> <br> <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a> This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>'



87 changes: 87 additions & 0 deletions software-architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Software Architecture
Architecture SHOULD be simple and have a clear purpose. Good software
architecture methods are hard to find. Often it is too high level (TOGAF
based with archimate diagrams). Often with no or very little value for
software developers and managers. Or software architecture diagrams are
a random collection of code-snippets and UML diagrams. Often only
created since creating documentation was requested.

When you create an application, its architecture must do two things:

- Provide an easy way to communicate to **ALL** stakeholders.
- Enable various stakeholders to see different levels of granularity.
- Make sure that even you understand the working and key dependencies
a few years later!

## The C4 model for visualising software architecture

C4 stands for context, containers, components, and code . It is a great
way to create a good software architecture. And it is an open method. A
full training can be found on:
<https://s3.amazonaws.com/static.codingthearchitecture.com/presentations/bcsspa2019-the-lost-art-of-software-design.pdf>

The C4 model was created as a way to help software development teams
describe and communicate software architecture, both during up-front
design sessions and when retrospectively documenting an existing
codebase. It's a way to create maps of your code, at various levels of
detail, in the same way you would use something like Google Maps to zoom
in and out of an area you are interested in.

By using the C4 model for software architecture, you can capture just
enough architecture to communicate to stakeholders and enable team
understanding without having to define details that will change as your
architecture changes.

Source and more info on: <https://c4model.com/>

## arc42 software architectures

- arc42 is based on practical experience of many systems in various
domains, from information and web systems, real-time and embedded to
business intelligence and data warehouses.
- arc42 provides a template for documentation and communication of
software and system architectures.
- arc42 supports arbitrary technologies and tools.
- arc42 is completely process-agnostic, and especially well-suited for
lean and agile development approaches.
- arc42 is open-source and can be used free of charge, in commercial
and private situations.

All arc42 templates can be found on:
<https://github.com/arc42/arc42-template> Or check the arc42 download
page on: <https://arc42.org/download>

## D2: Declarative Diagramming

D2 is a modern diagram scripting language that turns text to diagrams.

The project including a playground can be found here: [https://d2lang.com/](https://d2lang.com/)

Repository on [github](https://github.com/terrastruct/d2)



## The Bounded Context Canvas

Great FOSS tool that helps with your software design. Source code and
instruction on: <https://github.com/ddd-crew/bounded-context-canvas>

The Bounded Context Canvas is a collaborative tool for designing and
documenting the design of a single bounded context.

A bounded context is a sub-system in a software architecture aligned to
a part of your domain.

The canvas guides you through the process of designing a bounded context
by requiring you to consider and make choices about the key elements of
its design, from naming to responsibilities, to its public interface and
dependencies.

## Systemizer

Systemizer is a system design tool used to create and simulate large
scale distributed systems.

Landing page: <https://honzaap.github.io/Systemizer/>

Repository on github: <https://github.com/honzaap/Systemizer>
63 changes: 0 additions & 63 deletions software-architecture.rst

This file was deleted.

0 comments on commit 3ccadc2

Please sign in to comment.