diff --git a/modules/module1/sections/02-introduction-to-software-architecture.md b/modules/module1/sections/02-introduction-to-software-architecture.md
index b41d0f1..26f88f3 100644
--- a/modules/module1/sections/02-introduction-to-software-architecture.md
+++ b/modules/module1/sections/02-introduction-to-software-architecture.md
@@ -120,15 +120,8 @@
#### Примеры реализации
-
-
- Java
- Rust
- JavaScript
- Python
-
-
-
+
+🔧 Java (Spring Boot)
```java
// Монолитная архитектура
@@ -192,9 +185,11 @@ public class OrderController {
}
}
```
-
-
-
+
+
+
+
+🦀 Rust (Actix Web)
```rust
// Монолитная архитектура
@@ -247,9 +242,11 @@ async fn create_order(
Ok(web::Json(order))
}
```
-
-
-
+
+
+
+
+🟨 JavaScript (Node.js)
```javascript
// Монолитная архитектура
@@ -277,9 +274,11 @@ fastify.post('/api/orders', async (request, reply) => {
return order;
});
```
-
-
-
+
+
+
+
+🐍 Python (FastAPI)
```python
# Монолитная архитектура
@@ -310,8 +309,8 @@ async def create_order(request: CreateOrderRequest):
order = await order_service.create_order(request)
return order
```
-
-
+
+
### 2. SQL vs NoSQL
@@ -353,15 +352,8 @@ async def create_order(request: CreateOrderRequest):
#### Примеры реализации
-
-
- Java
- Rust
- JavaScript
- Python
-
-
-
+
+🔧 Java (Spring Boot + JPA)
```java
// SQL подход (PostgreSQL)
@@ -420,9 +412,11 @@ public class MongoUser {
}
}
```
-
-
-
+
+
+
+
+🦀 Rust (SQLx)
```rust
// SQL подход (PostgreSQL)
@@ -503,9 +497,11 @@ async fn create_user_with_order(
Ok(user)
}
```
-
-
-
+
+
+
+
+🟨 JavaScript (Node.js)
```javascript
// SQL подход (PostgreSQL)
@@ -593,9 +589,11 @@ async function createUserWithOrderMongo(request) {
return await user.save();
}
```
-
-
-
+
+
+
+
+🐍 Python (SQLAlchemy)
```python
# SQL подход (PostgreSQL)
@@ -671,8 +669,8 @@ def create_user_with_order_mongo(request):
user['_id'] = result.inserted_id
return user
```
-
-
+
+
### 3. REST vs GraphQL
@@ -713,15 +711,8 @@ def create_user_with_order_mongo(request):
#### Примеры реализации
-
-
- Java
- Rust
- JavaScript
- Python
-
-
-
+
+🔧 Java (Spring Boot)
```java
// REST API
@@ -749,9 +740,11 @@ public class UserResolver implements GraphQLResolver {
}
}
```
-
-
-
+
+
+
+
+🦀 Rust (Actix Web)
```rust
// REST API
@@ -787,9 +780,11 @@ const resolvers = {
}
};
```
-
-
-
+
+
+
+
+🟨 JavaScript (Node.js)
```javascript
// REST API
@@ -807,9 +802,11 @@ const resolvers = {
}
};
```
-
-
-
+
+
+
+
+🐍 Python (FastAPI + Strawberry)
```python
# REST API
@@ -825,8 +822,8 @@ class User:
async def orders(self) -> List[Order]:
return await order_service.find_by_user_id(self.id)
```
-
-
+
+
### 4. Стратегии кэширования
@@ -1027,15 +1024,8 @@ class User:
#### Примеры реализации
-
-
- Java
- Rust
- JavaScript
- Python
-
-
-
+
+🔧 Java (Spring Boot + Redis)
```java
// Cache-Aside Pattern
@@ -1091,9 +1081,11 @@ public class UserServiceWriteThrough {
}
}
```
-
-
-
+
+
+
+
+🦀 Rust (Redis + Tokio)
```rust
// Cache-Aside Pattern
@@ -1151,9 +1143,11 @@ impl UserService {
}
}
```
-
-
-
+
+
+
+
+🟨 JavaScript (Node.js + Redis)
```javascript
// Cache-Aside Pattern
@@ -1227,9 +1221,11 @@ class UserServiceWriteBehind {
}
}
```
-
-
-
+
+
+
+
+🐍 Python (FastAPI + Redis)
```python
# Cache-Aside Pattern
@@ -1302,8 +1298,8 @@ class UserService:
except Exception as e:
print(f"Async save error: {e}")
```
-
-
+
+
## Рекомендации по выбору
@@ -1404,86 +1400,5 @@ class UserService:
> **💡 Совет**: Документируйте архитектурные решения в Architecture Decision Records (ADR) для будущих поколений разработчиков.
-
-
-