Spaces:
Sleeping
Sleeping
File size: 1,252 Bytes
ec37394 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # Complexity Metrics Guide
## Cyclomatic Complexity
Measures the number of linearly independent paths through code.
### Rankings
- **A (1-5)**: Simple, easy to maintain
- **B (6-10)**: Moderate complexity
- **C (11-20)**: High complexity, consider refactoring
- **D (21-30)**: Very high, definitely refactor
- **F (31+)**: Extremely complex, needs immediate attention
## Maintainability Index
Score from 0-100 indicating how maintainable code is.
### Thresholds
- **85-100**: Highly maintainable ✅
- **65-84**: Moderately maintainable ⚠️
- **< 65**: Difficult to maintain ❌
## Reducing Complexity
### 1. Extract Methods
Break large functions into smaller, focused ones.
### 2. Eliminate Nested Logic
Replace nested if-else with early returns.
```python
# Bad: Nested
def process(data):
if data:
if data.valid:
if data.ready:
return data.process()
return None
# Good: Early returns
def process(data):
if not data:
return None
if not data.valid:
return None
if not data.ready:
return None
return data.process()
```
### 3. Use Design Patterns
Apply appropriate patterns to simplify logic.
### 4. Reduce Dependencies
Minimize coupling between modules.
|