Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:01:55 +08:00
commit 60782a2f51
22 changed files with 5228 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
---
title: Diagram Analysis
description: Understanding system architecture to choose appropriate diagram types
tags: [analysis, diagrams, architecture, visualization]
---
# Diagram Analysis
## Metadata
**Purpose**: Analyze systems to determine best diagram type and content
**Version**: 1.0.0
---
## Analysis Steps
### 1. Understand the Goal
**Ask**:
- What story needs to be told?
- Who is the audience?
- What decisions will this support?
- What level of detail is needed?
### 2. Identify Architecture Type
**Common patterns**:
- **Monolithic** - Single application, internal modules
- **Microservices** - Multiple services, APIs, message queues
- **Data pipeline** - Data flow from sources to outputs
- **ML system** - Training vs inference pipelines
- **Library/Framework** - Class hierarchies, modules
### 3. Choose Diagram Type
**For system overview**: C4 Context
**For service architecture**: C4 Container or Flowchart
**For internal structure**: C4 Component or Class Diagram
**For interactions**: Sequence Diagram
**For data models**: ER Diagram
**For processes**: Flowchart
**For state changes**: State Diagram
### 4. Determine Scope
**Include**:
- Essential components for the story
- Key relationships and dependencies
- Technology choices (if relevant to audience)
**Exclude**:
- Implementation details (unless that's the focus)
- Everything not needed for this specific diagram
- Redundant information
## Discovery Commands
**System boundaries**:
```bash
# Find services/modules
ls -d */ | head -10
find . -name "docker-compose.yml" -o -name "Dockerfile"
```
**Interactions**:
```bash
# Find API definitions
find . -name "*api*.py" -o -name "*route*.py"
# Check for message queues
grep -r "kafka\|rabbitmq\|redis\|celery" pyproject.toml requirements.txt
```
**Data flow**:
```bash
# Find data sources
find . -name "*data*" -o -name "*extract*" -o -name "*load*"
# Check databases
grep -i "postgres\|mysql\|mongo\|sqlite" pyproject.toml requirements.txt
```
## Diagram Planning
**Start simple**:
1. List main components
2. Identify key relationships
3. Choose direction (TD/LR)
4. Add labels
5. Refine as needed
**Validate**:
- Does it tell the right story?
- Is it too complex?
- Is anything missing?
- Will the audience understand it?