generated from just-the-docs/just-the-docs-template
-
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds a basic landing page for the component finder.
- Loading branch information
1 parent
db41ac8
commit dcc4b2a
Showing
4 changed files
with
50 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
--- | ||
layout: default | ||
title: Component finder | ||
nav_order: 40 | ||
parent: Structurizr for Java | ||
has_children: true | ||
permalink: /java/component | ||
has_toc: false | ||
--- | ||
|
||
# Component finder | ||
|
||
[![Maven Central](https://img.shields.io/maven-central/v/com.structurizr/structurizr-component.svg?label=Maven%20Central)](https://search.maven.org/artifact/com.structurizr/structurizr-component) | ||
|
||
The idea behind the [C4 model](https://c4model.com) is that there are a number of levels of abstraction, allowing you to zoom-in from a | ||
high-level all the way down to the code: | ||
|
||
1. Software systems | ||
2. Containers | ||
3. Components | ||
4. Code | ||
|
||
The word "component" is a hugely overloaded term in the software development industry, but it's a useful word to use to | ||
describe the internal structure of an application, one level up from the code. In the context of the C4 model, a | ||
component is defined as being a grouping of related functionality. | ||
With a language like Java, the simplest way to think of a component is that it's a collection of one or more implementation | ||
classes, potentially sitting behind an interface. | ||
|
||
The `structurizr-component` library includes a facility to discover components in a Java codebase, providing a | ||
way to automatically generate a component diagram from your codebase without showing all the detail associated | ||
with the code level. See [C4 model - Components vs code?](https://c4model.com/abstractions/component#components-vs-code) | ||
for more on this topic. | ||
|
||
From an implementation perspective, Structurizr's component finder works using a combination of | ||
[Apache Commons BCEL](https://commons.apache.org/proper/commons-bcel/) and [JavaParser](https://javaparser.org), using a pluggable and customisable set of matching and | ||
filtering rules. It's available via a Java API and the Structurizr DSL [!components](/dsl/language#components) keyword. | ||
|
||
## Links | ||
|
||
- [GitHub](https://github.com/structurizr/java/tree/master/structurizr-component) | ||
- [Changelog](https://github.com/structurizr/java/blob/master/changelog.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters