arc42.org-site
java
Our great sponsors
arc42.org-site | java | |
---|---|---|
16 | 34 | |
6 | 967 | |
- | 3.1% | |
8.1 | 8.8 | |
about 1 month ago | 29 days ago | |
SCSS | Java | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
arc42.org-site
-
A View on Functional Software Architecture
There a various standards for documenting software architecture, like arc42 or C4. While useful and somewhat well-known (there is certainly a correlation here), here architecture documentation can be further simplified, particularly due to the self-similarity of project and component. Following is a small template, that can also serve as a project's and component's README:
-
Architecture diagrams enable better conversations
I've been using https://structurizr.com/ to automatically generate C4 diagrams from a model (rather than drawing them by hand). It works well with the approach for written documentation as proposed in https://arc42.org/. It's very easy to embed a C4 diagram into a markdown document.
The result is a set of documents and diagrams under version control that can be rendered using the structurizr documentation server (for interactive diagrams and indexed search).
I also use https://d2lang.com/ for declarative diagrams in addition to C4, e.g., sequence diagrams and https://adr.github.io/ for architectural decision records. These are also well integrated into structurizr.
-
Documenting a software project
My general approach to documentation is a "software guidebook" (free e-book link) or arc42 ... complemented with diagrams and architecture decision records where necessary.
-
System Design How to?
In addition to a small number of diagrams, I'd recommend something like arc42 or my "software guidebook" (link for a free copy of my book describing this), plus some architecture decision records.
-
Solution Templates
Arc42 may give some inspiration https://arc42.org/
-
What's your process to create documentation for a new startup's application?
If you need more structure than ADRs then https://arc42.org is super useful.
-
Recommendations for an Online Introduction to Software Modeling
There are plenty of good resources out there for learning modeling languages and architectural documentation structures. For more lightweight methods, I'd recommend checking out resources like Simon Brown's C4 model for visualizing software architecture, Martin Fowler's UML Distilled: A Brief Guide to the Standard Object Modeling Language, Scott Ambler's Agile Modeling site, and the arc42 template for architectural documentation.
-
How to get good at writing design documents?
As you need to, you can get into topics like different modeling languages or documentation template libraries. These are going to be highly dependent on your organization, though, as different organizations have different standards for what and how to document design decisions. Personally, I've found that the arc42 documentation template plus the C4 modeling language plus the UML modeling language (see UML as sketch and UML as notes for more on lightweight UML) for the most detailed models (which are rarely needed outside of the most complex parts of a system) tends to be a good, agile, lightweight model for the kinds of things to think about when it comes to creating design documentation.
-
How to improve writing documentation?
We've started using Arc42 and C4 model & PlantUML for diagrams. Working out well so far.
-
About documentation
arc42 - arc42
java
-
Documentation as Code for Cloud - C4 Model & Structurizr
Structurizr is used for describing and visualizing architecture using the C4 model. One of the main selling points is the fact you can define an entire (IT) architecture model using text. A typical model consists of:
-
Architecture diagrams enable better conversations
I've been using https://structurizr.com/ to automatically generate C4 diagrams from a model (rather than drawing them by hand). It works well with the approach for written documentation as proposed in https://arc42.org/. It's very easy to embed a C4 diagram into a markdown document.
The result is a set of documents and diagrams under version control that can be rendered using the structurizr documentation server (for interactive diagrams and indexed search).
I also use https://d2lang.com/ for declarative diagrams in addition to C4, e.g., sequence diagrams and https://adr.github.io/ for architectural decision records. These are also well integrated into structurizr.
- Dynamically generate Cloud System Architecture diagram
-
Mastering Software Architecture Visualization with the C4 Model
Structurizr, available at https://structurizr.com/ and also has a free plan available with a single workspace available, is a tool that allows you to build out a C4 model using its Structurizr DSL to outline the Containers, Components, and Contexts of the architecture. It is a valuable tool for designing and visualizing a software architecture. In this example we'll build out a simple Machine Learning Pipeline, I mean a very basic one, featuring an ETL Pipeline and a model that trains images that classifies it as a image of planet earth or not. To begin, lets define our work space.
-
Top 9 software architecture tools
Structurizr builds upon "diagrams as code", allowing you to create multiple diagrams from a single model using a number of tools and programming languages.
- Architecture diagrams should be code
-
Launch HN: IcePanel (YC W23) – Onboard engineers with explorable system designs
As a customer since 2021, is this re-launch HN?
Loved the concept, found it fell over for real-sized things on even the most powerful machines, had to switch to Structurizr to do our C4 modeling: https://structurizr.com/
Was very disappointed, bet I'd get more devs to model architecture with this tool. If it's relaunching because perf problems were resolved, will look forward to try it again.
Depending on scope of people's needs, either highly recommended or, try it first.
Hats off to Victor for great support back then, and I see the docs are a reflection of that, like this section on embedding into popular tools:
https://docs.icepanel.io/features/sharing#embedding-share-li...
TL;DR: Helpful team, thoughtful UI, thoughtful docs, a product capability (c4 modeling) very worth understanding and using.
-
Keep your diagrams updated with continuous delivery
He built a tool called Structurizr for this.
-
D2 is now open source – a new, modern language that turns text to diagrams
Ah this is like https://structurizr.com which is based on C4.
- What tools do you use to map out microservices?
What are some alternatives?
diataxis-documentation-framework - A systematic approach to creating better documentation.
C4-PlantUML - C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures
jgmd - A directory of direct links to get your personal data from web services.
dsl - Structurizr DSL
c4-notation - Technical resources for using the C4 model for visualizing software architecture.
c4-draw.io - Draw.io template/diagram containing C4 Model shapes. Drawio Diagrams.net
architecture_decision_record - Architecture decision record (ADR) examples for software planning, IT leadership, and template documentation
emacs-drawio
architecture-decision
d2 - D2 is a modern diagram scripting language that turns text to diagrams.
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
excalidraw - Virtual whiteboard for sketching hand-drawn like diagrams