-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d12f709
commit 3ccadc2
Showing
3 changed files
with
105 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file was deleted.
Oops, something went wrong.