Initial commit: Complete Software Architecture course with 11 modules
- Added comprehensive course structure with 11 modules - Included theoretical content, practical examples, and tasks - Multi-language code examples (Java, Rust, Node.js, Python) - Detailed analysis of architectural approaches and trade-offs - Complete caching strategies documentation - Architecture examples from real-world systems (Twitter, Netflix, Uber) - Structured navigation and learning path - Ready for educational use
This commit is contained in:
commit
15e744da49
107 files changed
+61762
No files matched your search
@@ -0,0 +1,180 @@
|
||||
# Техническая документация
|
||||
|
||||
## Навигация
|
||||
- [🏠 Главная страница курса](../../../README.md)
|
||||
- [📚 Модуль 7](../README.md)
|
||||
|
||||
---
|
||||
|
||||
## Документация API
|
||||
|
||||
### 1. OpenAPI Specification
|
||||
```yaml
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Order Service API
|
||||
version: 1.0.0
|
||||
description: API for managing orders
|
||||
|
||||
servers:
|
||||
- url: https://api.example.com/v1
|
||||
description: Production server
|
||||
- url: https://staging-api.example.com/v1
|
||||
description: Staging server
|
||||
|
||||
paths:
|
||||
/orders:
|
||||
post:
|
||||
summary: Create a new order
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CreateOrderRequest'
|
||||
responses:
|
||||
'201':
|
||||
description: Order created successfully
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Order'
|
||||
'400':
|
||||
description: Bad request
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
components:
|
||||
schemas:
|
||||
CreateOrderRequest:
|
||||
type: object
|
||||
required:
|
||||
- customerId
|
||||
- items
|
||||
properties:
|
||||
customerId:
|
||||
type: string
|
||||
format: uuid
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/OrderItem'
|
||||
|
||||
Order:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
customerId:
|
||||
type: string
|
||||
format: uuid
|
||||
status:
|
||||
type: string
|
||||
enum: [CREATED, CONFIRMED, SHIPPED, DELIVERED, CANCELLED]
|
||||
totalAmount:
|
||||
type: number
|
||||
format: decimal
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
```
|
||||
|
||||
### 2. API Documentation Tools
|
||||
- **Swagger UI** — интерактивная документация
|
||||
- **ReDoc** — альтернативный интерфейс
|
||||
- **Postman** — коллекции и тесты
|
||||
|
||||
## Документация базы данных
|
||||
|
||||
### 1. Entity Relationship Diagrams
|
||||
```plantuml
|
||||
@startuml
|
||||
title Order Database Schema
|
||||
|
||||
entity "users" {
|
||||
* id : UUID
|
||||
--
|
||||
* username : VARCHAR(50)
|
||||
* email : VARCHAR(100)
|
||||
* password_hash : VARCHAR(255)
|
||||
* created_at : TIMESTAMP
|
||||
* updated_at : TIMESTAMP
|
||||
}
|
||||
|
||||
entity "orders" {
|
||||
* id : UUID
|
||||
--
|
||||
* user_id : UUID
|
||||
* status : VARCHAR(20)
|
||||
* total_amount : DECIMAL(10,2)
|
||||
* created_at : TIMESTAMP
|
||||
* updated_at : TIMESTAMP
|
||||
}
|
||||
|
||||
entity "order_items" {
|
||||
* id : UUID
|
||||
--
|
||||
* order_id : UUID
|
||||
* product_id : UUID
|
||||
* quantity : INTEGER
|
||||
* unit_price : DECIMAL(10,2)
|
||||
}
|
||||
|
||||
entity "products" {
|
||||
* id : UUID
|
||||
--
|
||||
* name : VARCHAR(100)
|
||||
* description : TEXT
|
||||
* price : DECIMAL(10,2)
|
||||
* stock_quantity : INTEGER
|
||||
* created_at : TIMESTAMP
|
||||
* updated_at : TIMESTAMP
|
||||
}
|
||||
|
||||
users ||--o{ orders : "places"
|
||||
orders ||--o{ order_items : "contains"
|
||||
products ||--o{ order_items : "referenced in"
|
||||
|
||||
@enduml
|
||||
```
|
||||
|
||||
### 2. Data Dictionary
|
||||
```markdown
|
||||
# Data Dictionary
|
||||
|
||||
## Table: users
|
||||
|
||||
| Column | Type | Constraints | Description |
|
||||
|--------|------|-------------|-------------|
|
||||
| id | UUID | PRIMARY KEY | Unique identifier for user |
|
||||
| username | VARCHAR(50) | NOT NULL, UNIQUE | User's login name |
|
||||
| email | VARCHAR(100) | NOT NULL, UNIQUE | User's email address |
|
||||
| password_hash | VARCHAR(255) | NOT NULL | Hashed password |
|
||||
| created_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Record creation timestamp |
|
||||
| updated_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Record update timestamp |
|
||||
|
||||
## Table: orders
|
||||
|
||||
| Column | Type | Constraints | Description |
|
||||
|--------|------|-------------|-------------|
|
||||
| id | UUID | PRIMARY KEY | Unique identifier for order |
|
||||
| user_id | UUID | NOT NULL, FOREIGN KEY | Reference to users.id |
|
||||
| status | VARCHAR(20) | NOT NULL | Order status (CREATED, CONFIRMED, etc.) |
|
||||
| total_amount | DECIMAL(10,2) | NOT NULL | Total order amount |
|
||||
| created_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Record creation timestamp |
|
||||
| updated_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Record update timestamp |
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Техническая документация является основой для понимания и поддержки системы:
|
||||
|
||||
1. **API документация** — OpenAPI спецификации и интерактивные инструменты
|
||||
2. **Документация БД** — ER диаграммы и словари данных
|
||||
3. **Структурированность** — четкая организация и стандартизация
|
||||
4. **Актуальность** — регулярное обновление и синхронизация с кодом
|
||||
|
||||
Правильная техническая документация значительно упрощает разработку, тестирование и поддержку системы.
|
||||
Reference in new issue
Block a user