Giter VIP home page Giter VIP logo

Comments (9)

fineconstant avatar fineconstant commented on May 16, 2024 3

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.

FastNinja avatar FastNinja commented on May 16, 2024 2

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.

kirchsth avatar kirchsth commented on May 16, 2024 1

@fineconstant, @Potherca: can we close this issue based on #130?

from c4-plantuml.

stale avatar stale commented on May 16, 2024

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.

aheil avatar aheil commented on May 16, 2024

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:

  1. What are semantics of dotted lines in general? Will all developers understand the difference and will all developers interpret it the same way?

  2. 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.

  3. 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.

stale avatar stale commented on May 16, 2024

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.

kirchsth avatar kirchsth commented on May 16, 2024

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.

kirchsth avatar kirchsth commented on May 16, 2024

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.

kirchsth avatar kirchsth commented on May 16, 2024

With #160 dotted lines are supported too

from c4-plantuml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.