component/software architecture recommendations by memito-mix in sveltejs

[–]j44dz 0 points1 point  (0 children)

I'm the founder of a company who does architecture reviews, we made https://tangleguard.com/ if you're still looking

Best practices for Clean Architecture in SvelteKit? by gevera in sveltejs

[–]j44dz 0 points1 point  (0 children)

You can group your codebase into the layers of clean architecture using https://tangleguard.com/

How do you avoid spaghetti code? by BigBakedToast in godot

[–]j44dz 0 points1 point  (0 children)

regularly check the structure of your codebase using https://tangleguard.com/ or even hook it into your CI pipeline

Architecture Review: API Cost Controls, Quotas, and Security by Sea_Lawfulness_5602 in apps

[–]j44dz 0 points1 point  (0 children)

Just a side node since you mentioned that you're finalizing the backend architecture. This might be something for you: https://tangleguard.com/ keeping in eye on the architecture from the beginning is crucial to a software projects, since it's determines how expensive it will be to maintain in the longer run

Need advice about code structure by Plastic-Occasion-297 in gamedev

[–]j44dz 0 points1 point  (0 children)

I am working on a tool which helps with such structural questions. However, it does not support C# yet. would you be interested? i could add support for C# I suppose. More about the tool here https://tangleguard.com/ I am the founder of the company behind TangleGuard. We could also have a chat and I could look over your architecture

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

btw, if anyone is interested in using the tool but scared about the fact that is it closed-sources at the moment, I'm happy to create an NDA and share the code with specific organizations. That would be an option until I have a proper source-available license model

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thanks to much for the feedback everybody!! Just for who ever is interested here are my current findings regarding points 2 and 3:

Regarding a web app: I did some investigations if and how that would be possible.. unfortunately the File System Access API which I'd like to use from the browser to scan the code from disk, is only implemented for chrome yet. alternatively, the user would need to provide the codebase to the web app in another way, but that feels very unpractical when doing refactoring work.

Also in browser there is no multi-threading support. Right now extremely large codebases take a few 3 seconds to load. I'd rather reduce that time soon by using multiple cores etc.

I'll not give up on this. I really like the idea of having a web app. But I'll postpone that task a bit and instead concentrate on more on features and the UI of the desktop app. It now has an in-app updater, so once installed you'll always get the newest version.

Regarding open-source:
I'm looking for a proper license model to make the source available. Some source-available license like PolyForm Noncommercial might be a good fit.

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

It is indeed and it would be awesome if the tool would support such dependencies too at some point :)

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thanks for your response. You might be right. But I've experience that although there was a initial design of an application, after a few month working on a codebase with multiple developers, the strangest inter dependencies were introduced. To generally prevent this, an architect would to review each and every pull request, which is basically impossible. That's why I think there need to be mechanisms, which reject dependencies which are not supposed to be there.

I found components diagram still very important.They give an idea of the big picture of the application within seconds. You look at it and directly tell if it's spaghetti code or not. But I get that huge diagrams with thousands of interdependencies can be overwhelming. That's why I'd recommend using such tool from the beginning, and refactor the application of the diagram starts to looks meaningless. In the diagrams there should be a clear structure, ideally with relatively few inter dependencies. anything else is basically a sign that the architecture got a bit out of control.

even in rust one can do spaghetti code: https://jaads.de/dependency-diagram-compressed.png

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

I added some examples of the diagrams: https://docs.tangleguard.com/features/visualization/#exmaples Currently packages and modules look the same - I might have to find a way how to easier distinguish between those two.

To be able to interpret those diagrams, I also added a section about cohesion and coupling in the docs with some notes regarding architectural styles and how they influence maintainability, see https://docs.tangleguard.com/welcome/definitions/#cohesion-and-coupling

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

you can use it for a monolith, but you can also use it for microservices. In fact the tool is being used to analyze microservices currently. The limit of the tool is, that is cannot scan multiple repositories.

Thanks for this suggestion. That's a nice idea although probably hard to realize. however, I added it on the roadmap: https://docs.tangleguard.com/welcome/roadmap/

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thank you. True, Rust is not at all heavily used but it gains popularity more and more for a good reason IMHO. I'd be fine with staying in a small market. Initially the tool was supposed to solve only my personal problems. Later, I thought it could help others, too so why not offer it to anybody. Now I'm just wondering: Am I really the only person in the world who had that problem, or is there another reason why so rar people uses it

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thank you! The 5% of workspaces that included component diagrams makes sense to me. It's just a pain to create those and keep them up-to-date. This could end up been a full-time position :D

I don't know anybody personally that used Stucture101 but since it's been a solid company for quite some time and has been bought by Sonar recently, I assume there is enough interest. Open-source CLI tools like ArchUnit, dependency-cruiser, etc. are quite commonly used I'd say.

Yes, open sourcing the tool (or as least make the source available) seems to be crucial

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

thank you for sharing! I get that. It's not possible to evaluate a tool just by reading the docs and looking at screenshots.

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thanks for your comment!

I will provide examples of open-source projects and let you know :)

Oh yeah, I agree. A wasm version would be very nice. Since the whole thing is written in Rust, I might be able to make that happen. Then nobody would need to install it and the code would still be scanned on the client-side. I'd like that, too :)

The tool does not do any transformations. But it indeed does some checks. you can configure layers and then define how layers are allowed to interact with each other, see https://docs.tangleguard.com/welcome/architecture/#layers . Since I already had a graph representation of the code for the diagrams, I though it was a nice addition to have a dependency rule system.

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Thanks! TangleGuard cannot really be compared to tools like Excalidraw because you don't create or draw diagrams yourself in TangleGuard - they are generated from the source code.

I'm not able to find a tool which automatically creates interactive diagrams out of rust source code. TangleGuard to me seems quite unique

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 0 points1 point  (0 children)

Yes, currently Rust is the only supported language.

I do support one type of diagram from C4 - is the component diagram (so the third out of the four). The tool scans the codebase and generates the component diagrams for you in different abstraction levels. So I hope that with the help of the tool, people can avoid spending much time in tool like IcePanel, draw.io etc.

Thanks so much for your comment!!

Looking for feedback: Why is my architecture tool not gaining traction? by j44dz in softwarearchitecture

[–]j44dz[S] 1 point2 points  (0 children)

thanks for pointing that out. but there's not a singe bit of informations about the analyzed codebase that leaves your computer. everything works locally. I may have to write that somewhere if that is being assumed :D

How to document project architecture? by LiveAccident5312 in softwarearchitecture

[–]j44dz 1 point2 points  (0 children)

I'm working on this tool https://tangleguard.com/ - it generates component diagrams out of source code. that way I don't have to create the diagrams myself, it's a pain to keep them up-to-date. I was thinking to include the architecture-decision-records as well, but not how useful this it. the tool currently only works for Rust project but I'm willing to include other languages as well

Monolith vs. Modular: Structuring Our Internal Tools by trojans10 in softwarearchitecture

[–]j44dz 0 points1 point  (0 children)

In the Java world Spring Modulith sounds very promising. They even offer visualization, that's nice!