From f9afd30663d1ed6dd08a960360c2fdf2d78846e2 Mon Sep 17 00:00:00 2001 From: Alexander Abakumov Date: Wed, 10 Sep 2025 00:21:35 +0300 Subject: [PATCH] =?UTF-8?q?refactor:=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D1=81=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D1=8E?= =?UTF-8?q?=D1=89=D0=B8=D0=B5=D1=81=D1=8F=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Заменены HTML вкладки на нативные скрывающиеся блоки (details/summary) - Добавлены эмодзи иконки для каждого языка программирования - Удален CSS и JavaScript код для упрощения - Улучшена совместимость с любыми Markdown редакторами - Все примеры кода теперь в collapsible секциях --- ...2-introduction-to-software-architecture.md | 237 ++++++------------ 1 file changed, 76 insertions(+), 161 deletions(-) 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 (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 (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 (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 (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) для будущих поколений разработчиков. - - -