190 lines
5.9 KiB
Markdown
190 lines
5.9 KiB
Markdown
# Best Practices
|
|
|
|
Guidelines for creating clear, effective ASCII diagrams.
|
|
|
|
## Formatting Rules
|
|
|
|
### Width Constraints
|
|
|
|
**Maximum line width: 80 characters**
|
|
|
|
This ensures compatibility with:
|
|
- Terminal windows
|
|
- Code review tools
|
|
- Markdown rendering
|
|
- Email clients
|
|
|
|
```
|
|
# Good - fits in 80 chars
|
|
┌──────────────────────────────────────────────────────────────────────────┐
|
|
|
|
# Bad - exceeds 80 chars, will wrap
|
|
┌────────────────────────────────────────────────────────────────────────────────────┐
|
|
```
|
|
|
|
### Alignment
|
|
|
|
**Vertical alignment** creates visual hierarchy:
|
|
|
|
```
|
|
# Good - aligned centers
|
|
┌─────────┐
|
|
│ Step 1 │
|
|
└─────────┘
|
|
│
|
|
▼
|
|
┌─────────┐
|
|
│ Step 2 │
|
|
└─────────┘
|
|
|
|
# Bad - misaligned
|
|
┌─────────┐
|
|
│ Step 1 │
|
|
└─────────┘
|
|
│
|
|
▼
|
|
┌─────────┐
|
|
│ Step 2 │
|
|
└─────────┘
|
|
```
|
|
|
|
**Horizontal alignment** for side-by-side comparisons:
|
|
|
|
```
|
|
# Good - columns aligned
|
|
BEFORE: AFTER:
|
|
├── file1.js ──► ├── file1.ts
|
|
└── file2.js ──► └── file2.ts
|
|
|
|
# Bad - uneven columns
|
|
BEFORE: AFTER:
|
|
├── file1.js ──► ├── file1.ts
|
|
└── file2.js ──► └── file2.ts
|
|
```
|
|
|
|
### Spacing
|
|
|
|
Use blank lines to separate logical sections:
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ MIGRATION PLAN │
|
|
└─────────────────────────────────────────────┘
|
|
|
|
PHASE 1: Analysis
|
|
┌──────────────────┐
|
|
│ Analyze current │
|
|
└──────────────────┘
|
|
|
|
PHASE 2: Migration
|
|
┌──────────────────┐
|
|
│ Execute changes │
|
|
└──────────────────┘
|
|
```
|
|
|
|
## Clarity Guidelines
|
|
|
|
### Use Consistent Box Sizes
|
|
|
|
Keep related boxes the same width:
|
|
|
|
```
|
|
# Good - consistent widths
|
|
┌──────────────────┐ ┌──────────────────┐
|
|
│ Component A │ │ Component B │
|
|
└──────────────────┘ └──────────────────┘
|
|
|
|
# Bad - inconsistent
|
|
┌────────┐ ┌────────────────────────┐
|
|
│ Comp A │ │ Component B │
|
|
└────────┘ └────────────────────────┘
|
|
```
|
|
|
|
### Include Legends
|
|
|
|
When using symbols, explain them:
|
|
|
|
```
|
|
┌──────────────────┐
|
|
│ ✓ Database │
|
|
│ ⏳ API │
|
|
│ ✗ Legacy │
|
|
└──────────────────┘
|
|
|
|
Legend:
|
|
✓ = Complete
|
|
⏳ = In Progress
|
|
✗ = Removed
|
|
```
|
|
|
|
### Group Related Items
|
|
|
|
Use visual proximity to show relationships:
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ FRONTEND LAYER │
|
|
├─────────────────────────────────────────┤
|
|
│ • React Components │
|
|
│ • State Management │
|
|
│ • Routing │
|
|
└─────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────┐
|
|
│ BACKEND LAYER │
|
|
├─────────────────────────────────────────┤
|
|
│ • API Endpoints │
|
|
│ • Business Logic │
|
|
│ • Database Access │
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
## Information Density
|
|
|
|
### Include Status Indicators
|
|
|
|
Show progress at a glance:
|
|
|
|
```
|
|
│ ✓ Step 1: Setup │
|
|
│ ✓ Step 2: Configuration │
|
|
│ ⏳ Step 3: Migration │
|
|
│ Step 4: Validation │
|
|
```
|
|
|
|
### Show Counts When Relevant
|
|
|
|
Provide context with numbers:
|
|
|
|
```
|
|
┌──────────────────┐
|
|
│ Current State │
|
|
│ 11 directories │
|
|
│ 47 files │
|
|
│ 3 duplicates │
|
|
└──────────────────┘
|
|
```
|
|
|
|
### Add Brief Descriptions
|
|
|
|
Clarify purpose without cluttering:
|
|
|
|
```
|
|
┌──────────────────┐
|
|
│ Auth Service │──► Handles JWT tokens
|
|
│ 3 endpoints │──► Login, logout, refresh
|
|
└──────────────────┘
|
|
```
|
|
|
|
## Common Mistakes to Avoid
|
|
|
|
| Mistake | Problem | Solution |
|
|
|---------|---------|----------|
|
|
| Exceeding 80 chars | Wrapping breaks diagram | Split or abbreviate |
|
|
| No legend | Symbols are confusing | Always include legend |
|
|
| Inconsistent boxes | Looks unprofessional | Standardize widths |
|
|
| Too much detail | Overwhelming | Simplify or split |
|
|
| No spacing | Hard to read | Add blank lines |
|
|
| Misaligned arrows | Confusing flow | Check alignment |
|