Show HN: Archsense – Accurately generated architecture from the source code
archsense.dev
archsense.dev
Their middle-tier pricing option is about $350/month, so if you spend more than ~4 developer hours per month documenting/explaining/analyzing your architecture, then you've saving money with their product.
We definitely spend more than that so it would make sense for us. However, I'd want to see it visualize the infrastructure as well (we use k8s and terraform so in theory this should be possible).
Except this is a false equivalence.
Not once have I documented something I was part of creating, in sufficient detail to explain it completely, without uncovering bugs/inconsistencies/oversights that otherwise would likely go unnoticed. Furthermore the practice refreshes the mental model in the minds of those documenting/explaining/analyzing, which otherwise atrophies and becomes out of sync with reality through the work of others.
Also, regarding architecture, why is more important than how (2nd law of software architecture, see Mark Richards), but such a tool especially provides the how and fails to explain the why at all - making it not a perfect for a software architect.
The difficulty in documenting code is not creating a diagram of it, but rather simplyfing the things enough so that one can understand it quite "fast" while not omitting important details. I'm fairly confident that this task requires some sort of intelligence a tool can only provide to some degree.
But yeah >300 sounds like something that will have to come down to succeed.
Does this actually track dependancies at the code level, or just at the module import level. EG if have a redis connection file that's imported to a service library file, and only 1 of 8 exposed methods from that service file use the imported Redis, will every file that imports that service library show a dependency to Redis, or just the ones that import the Redis based service.
Also, quick feedback on your site, your hero image shows the view that turns me off these types of things. An overwhelming graph that sprawls 3 screens horizontally, and thus can't be reasoned about in one look. The ones further down the page are more compelling, but perhaps the 1st one is the only one that actually represents the project?
Good architecture diagrams require genuine knowledge, insight, and, yes, effort. The creator needs to carefully decide what to show and what to omit from each perspective.
It goes way beyond dependency diagrams, which is what automated solutions are pretty much limited to. I wrote on this a couple of years ago: https://www.ilograph.com/blog/posts/beyond-whiteboarding-cre...
This does not seem to create any of those, unless I am missing something. This seems to mostly speak to code dependencies. Which is useful, but probably not $300/month useful.
A typical architecture diagram will show you ingress points, API gateways and the like, where your app servers or web servers or whatever are, databases, eventing systems, etc and how they speak to each other. This doesn’t seem to do that, and it generally is not possible to generate such a thing automatically because there are too many dynamic pieces to track, or there are manual steps. Also, as others have stated, good architecture documentation requires thought and experience on what to highlight and what to omit or group together.
When you can express the architecture directly in the code using an architectural programming language.
Can you link to a real-world example of using Objective-S to specify an architecture?
Note that I wouldn't call it "specifying an architecture", I would call it "programming the system using architecture-appropriate connectors".
For example, a task JSON backend:
https://gitlab.com/mpwmo/ObjectiveSmalltalk/-/blob/master/sc...
First defines a Task (model) class, then a scheme-handler for storing those tasks (in memory), and finally configures + hooks up those objects to create+run the actual backend.
I can see the utility of it for onboarding new team members - instead of chasing down stale docs, one gets a look at the state of the codebase as it is today.
It probably helps to spot problematic / unintended dependencies and the like as well.
I suspect from how "MVP" their site is, plus only NestJS actually has a "use" button instead of a "request demo" button, that the only thing currently supported is NestJS based javascript, and this is a way to test the water if they should build other languages. I could be wrong, ofc.
At ~$1800/year it is fairly expensive.
Automation frameworks cost around ~10k
Audit ~ 10k
Tools and other supporting products ~10k
Time spent by team.. priceless
$1900 is definitely too much compared to that.
Let’s do what you said 3 times because the first attempt might not make it.
I am not affiliated with archsense :)
Is this for single repository? If so, do you have any plans for visualizing multiple repos?
Whatever next?? Make your code edits on source accurately generated from the binary?? :)
As a simple example: Predicting the downstream impacts of updating a module from c++11 to c++20 can often be a tedious trial-and-error process. Having prior knowledge of potential effects is a valuable starting point.
Though this leans towards dependency management rather than pure architecture, in practice, the lines can blur.
In some places the implementation deviates from architecture and it’s useful to know if it did and how it did.
Also, not all projects have the time and money it takes to layout an architecture before actual implementation.
IME that kind of project gains nothing from adding it after.
Or at least you should account for that. I work with a dev team that is supposed to own a huge legacy codebase that we're dependent on a daily basis for using, but they are working on an entire new greenfield replacement and refuse to do any changes to it. Thanks guys, really glad you get to go off and have fun with new tech while I'm stuck in the stone ages.
I write about it here:
https://littlegreenviper.com/miscellany/forensic-design-docu...
https://littlegreenviper.com/miscellany/evolutionary-design-...
I call it "Paving the Bare Spots": https://littlegreenviper.com/miscellany/the-road-most-travel...
For myself, I think that firm architecture diagrams aren't very good. I think that we need the ability to generate one "on the fly," and this is kind of doing that. Not sure that this is the solution, but it's in the ball park.
In unknown domains that are learning their way, writing less code and complexity and not more.