Comments (9)
Thanks for your input.
I partially agree with you, I think that ambiguity must be avoided at all costs and annotations are essential indeed - I do not propose dropping them.
-
About introducing new style of lines
C4 already supports different kinds of lines/ relationship arrows - take a look at Financial Risk System example from Structurizr. Solid and dashed lines are event mentioned in Simon Brown's book as @jikuja pointed here: #66 (comment).In my opinion it is not about introducing new style to C4 model but rather making this library comply with existing standard.
-
About avoiding ambiguity
@jikuja #66 (comment) also quoted the book:Once again, ensure that any styling supplements the existing information wherever possible and that the styles you use are described on the key/legend.
I agree, in order to make different styles of lines/ relationship arrows understandable in the same way by everyone, they must be described.
-
About colours
This option is already present, you can easily customize colours on your diagrams:Rel_(c1, c2, "label", "tech", "-[#cc44ff]->") Rel_(c3, c4, "label", "-[#cc44ff]->")
I will continue working on my PR and try to add arrow line styles to legend when there is more than one style present on the diagram. I hope that this way I can propose more comprehensive solution. 🏭
I look forward to receiving more feedback from other people as well 😃
from c4-plantuml.
Having legend for dotted lines that explain what they mean ("async communication") can be a solution?
Showing Async VS Sync is actually very important for lots of systems and having the ability to add it would be great.
from c4-plantuml.
@fineconstant, @Potherca: can we close this issue based on #130?
from c4-plantuml.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from c4-plantuml.
C4 Model is about simplicity, ambiguity should be avoided. Annotations are essential. Adding an additional type of lines would introduce the "boxes and lines" dilemma the C4 model tries to avoid.
Examples:
-
What are semantics of dotted lines in general? Will all developers understand the difference and will all developers interpret it the same way?
-
In one diagram both types of lines are used but annotated differently. Will you follow the line style or the annotation. You have introduced redundancy we usually try to avoid in C4.
-
Two types of lines might lead to the point where relationships are not annotated anymore as humans are "lazy". While this is ok to some degree, the implicit knowledge of this semantics will be lost over time for this particular diagram.
Also this would lead to the request of more lines and more colors while ending up in the root cause leading to the C4 model.
from c4-plantuml.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from c4-plantuml.
Atm we have 64 (!) different relation definitons, I wouldn't introduce additional Rel styles anymore.
I think the simplest solution is to add the "async communication" as part of the technology like below.
A second advantage would be that we need no special legend extensions.
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
SHOW_PERSON_SPRITE(person2)
Person(user, "Business User")
System(frs, "Financial Risk System")
System(ex1, "Ext1 System")
System(ex2, "Ext2 System")
Rel(user, frs, "view reports")
Rel(frs, ex1, "get data", "HTTPS")
Rel(frs, ex2, "get data", "RabbitMq, asnyc")
@enduml
A possible extension could be the support of an additional argument with "icon characters" e.g <&link-intact> (or sprite?), but I would prefere characters because they are typically smaller and predefined.
@startuml
[Actor]
[Participant]
sprite $triangle {
00000000000
00000F00000
0000FBF0000
0000FBF0000
000F999F000
000F999F000
00F66666F00
00F66666F00
0F3333333F0
0F3333333F0
0FFFFFFFFF0
00000000000
}
Actor -LEFT-> Participant: "<$triangle> - <&link-intact>\nldfjklasdfas fajkls dhfa"
@enduml
from c4-plantuml.
Hi @fineconstant,
dotted arrows cannot be defined via skinparams.
With PR #130 you can change the color and add symbols.
Can this solve your problem?
BR Helmut
from c4-plantuml.
With #160 dotted lines are supported too
from c4-plantuml.
Related Issues (20)
- (C4 styled) Sequence diagram HOT 6
- Tags and sprites conflict in Rel (update: sprites have white background, should be transparent) HOT 4
- Image gets cut on the side HOT 1
- Adjust thickness of element border HOT 6
- C4_Dynamic no longer numbers all relationships HOT 6
- error a001 on all diagrams HOT 2
- Odd Legend Rendering for Sequence Diagrams HOT 5
- Question: How do I split functions over multiple lines? HOT 1
- Wrong rendering for Rel_R HOT 4
- AddNodeTag in C4_Deployment throws an error HOT 5
- Support of "all" PlantUML elements can be enabled HOT 4
- Line styling not recognized when using ELK HOT 2
- "Cannot open URL" on Online Server HOT 2
- Legend text includes unexpected properties (e.g. $lineStyle) HOT 3
- Wrong layout: "== Base Query" <<boundary>> as Base Query HOT 3
- C4_Container diagram not rendering properly HOT 3
- Java OutOfMemoryError with some Sequence diagrams HOT 4
- $baseShape="label" does not use the correct color (size, ...?) in combination with themes
- Descriptions for boundaries HOT 8
- Separating model and view HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from c4-plantuml.