c4-notation
arc42.org-site
c4-notation | arc42.org-site | |
---|---|---|
134 | 16 | |
25 | 6 | |
- | - | |
10.0 | 7.4 | |
over 5 years ago | 18 days ago | |
SCSS | ||
Apache License 2.0 | MIT License |
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.
c4-notation
-
Step outside the Happy Path
Start by formalizing the architecture. You don’t need heavy enterprise methodologies like TOGAF; use formats that fit the team and product. Frameworks like arc42 are suitable for complex systems, while simpler projects may only need C4 diagrams supplemented with a few additional visualizations.
-
C4 Model - The Basics
Software Architecture is all about developing systems that scale and are maintainable. Clear visualizations will help teams to communicate the design effectively. The C4 model comes in handy for this task! But what is C4, and why should you care?
-
Turning the Crank: Design as a Mechanical Process
https://c4model.com/ is very useful for this. :-)
I've told it before, but when we were doing some clean sheet work a while ago I decided to use the C4 model and drew out the obligatory "Context" diagram with "user" "phone" "laptop" "app" sort of stuff... and then two hours later realized that because we had both an online and a semi-disconnected mobile app that could be offline, certain things -had- to use a queue and expect an arbitrary amount of time for a task to run, and it completely changed how we thought about the core of how we implemented something pretty important.
Sold. :-)
-
Vega – A declarative language for interactive visualization designs
What sort of maps are you wanting to build? https://c4model.com/ seems to be the more popular standard for this style at the moment. https://github.com/plantuml-stdlib/C4-PlantUML makes this somewhat easy to code out. (And I think most cloud providers have addons for it.)
- Ask HN: Best tool to create cloud architecture diagrams
- Ask HN: Visualize Software Architecture/Concepts
-
Devs need system design tools, not diagramming tools
It sounded like it was working up to a C4 pitch but never got there. It bears a look exactly for this post's title.
https://c4model.com
-
Book: Just Enough Software Architecture
Simon Brown is another person who has done a far better job than me of "democratizing" software architecture for developers. His talks [1] and workshops on architecture are exceptionally effective and his C4 architecture modeling language [2] is getting real traction.
I have youtube videos too [3] but they aren't as effective.
[1] https://www.youtube.com/results?search_query=simon+brown+arc...
[2] https://c4model.com/
[3] https://www.youtube.com/playlist?list=PLRqKmfi2Jh3uoMnZdaWmC...
-
Ask HN: Guidelines for making clear architecture diagrams
Second this.
Reference for anyone looking I to it: https://c4model.com/
There is also quite a lot of options for helping create these diagrams. I've found https://structurizr.com/ to be the best of what I've tried so far.
-
Show HN: Flyde – an open-source visual programming language
What you are describing sounds a lot like C4: https://c4model.com/
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
What are some alternatives?
excalidraw - Virtual whiteboard for sketching hand-drawn like diagrams
diataxis-documentation-framework - A systematic approach to creating better documentation.
backstage - Backstage is an open framework for building developer portals
architecture_decision_record - Architecture decision record (ADR) examples for software planning, IT leadership, and template 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.
mermaid - Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown
exploring-the-testing-hyperpyramid - Code repo for the KotlinConf 2023 talk by @daviddenton and @s4nchez
modules.tf-lambda - Infrastructure as code generator - from visual diagrams created with Cloudcraft.co to Terraform
structurizr-site-generatr - Static site generator for architecture models created with Structurizr DSL
pumla - pumla - systematic re-use of model elements described with PlantUML
java - Structurizr for Java