Skip to content

Commit 853dedb

Browse files
committed
Transactions changes for present
1 parent 38931f4 commit 853dedb

6 files changed

Lines changed: 23 additions & 23 deletions

File tree

‎docs/ru/transactions/lab-work.md‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
[English](../../en/transactions/lab-work.md) | [中文](../../cn/transactions/lab-work.md) | Русский
22

33

4-
# Transactions Lab Work
4+
# Лабораторная работа по Транзакциям
55

6-
Добро пожаловать в лабораторную работу по транзакциям! Цель этой серии задач - помочь вам практиковать и овладеть управлением транзакциями в приложении на Spring. Независимо от вашего уровня - будь то начинающий или опытный разработчик, эти практические задачи помогут вам освоить различные аспекты управления транзакциями, включая распространение, уровни изоляции, вложенные транзакции и многое другое.
6+
Добро пожаловать в лабораторную работу по транзакциям! Цель этих задач - помочь вам овладеть управлением транзакциями в приложении на Spring. Независимо от вашего уровня - будь то начинающий или опытный разработчик, эти практические задачи помогут вам освоить различные аспекты управления транзакциями, включая распространение, уровни изоляции, вложенные транзакции и многое другое.
77

88
## Цель лабораторной работы
99

10-
Основная цель этой лабораторной работы - предоставить вам практический опыт и навыки в управлении транзакциями в среде Spring. Через эти задачи вы получите ценные знания о настройке транзакций, обработке различных типов распространения, реализации вложенных транзакций и обеспечении целостности данных в ваших приложениях.
10+
Основная цель этой лабораторной работы - предоставить вам практический опыт и навыки в управлении транзакциями. Через эти задачи вы получите ценные знания о настройке транзакций, обработке различных типов распространения, реализации вложенных транзакций и обеспечении целостности данных в ваших приложениях.
1111

1212
## Задачи практики
1313

@@ -37,7 +37,7 @@
3737
- **Изоляция:** READ_COMMITTED
3838

3939
- **Добавление нового мероприятия**
40-
- **Задача:** Реализуйте метод для добавления нового мероприятия. Эта операция должна выполняться без транзакционных гарантий, чтобы избежать ненужных накладных расходов на транзакции.
40+
- **Задача:** Реализуйте метод для добавления нового мероприятия. Эта операция должна выполняться без транзакционных гарантий, чтобы избежать ненужных затрат на транзакции.
4141
- **Распространение:** NOT_SUPPORTED
4242

4343
- **Обновление деталей мероприятия и регистраций с вложенными транзакциями**
@@ -52,5 +52,5 @@
5252
- **Изоляция:** REPEATABLE_READ
5353

5454
- **Выполнение операции без транзакции**
55-
- **Задача:** Реализуйте метод для операций, не требующих транзакционного контекста, таких как некритические задачи или журналирование.
55+
- **Задача:** Реализуйте метод для операций, не требующих транзакционного контекста, например обычные операции или логгирование.
5656
- **Распространение:** Нет

‎docs/ru/transactions/practice/configuration.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66

77
## Цель
88

9-
Цель данного руководства - продемонстрировать, как настроить управление транзакциями в приложении Spring Boot, что позволит управлять транзакциями базы данных.
9+
Цель данного руководства - продемонстрировать, как настроить управление транзакциями, что позволит при помощи транзакций взаимодействовать с базой данных.
1010

1111
## Настройка управления транзакциями
1212

13-
Для включения управления транзакциями в вашем проекте Spring Boot выполните следующие шаги:
13+
Для включения управления транзакциями в вашем проекте выполните следующие шаги:
1414

1515
1. Добавьте необходимые зависимости в ваш файл `pom.xml` или `build.gradle`. Убедитесь, что у вас есть зависимости для Spring Boot, Spring Data JPA и любого используемого вами драйвера базы данных (например, H2, MySQL, PostgreSQL).
1616

17-
2. Настройте управление транзакциями в вашем приложении Spring Boot. Это можно сделать, аннотируя ваш главный класс приложения с помощью `@EnableTransactionManagement`.
17+
2. Настройте управление транзакциями в вашем приложении. Это можно сделать, аннотируя ваш главный класс приложения с помощью `@EnableTransactionManagement`.
1818

1919
### Пример (Java Config):
2020

‎docs/ru/transactions/practice/lessons/basic-transactional-operations.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
1. **Зачисление студента на курс**
1010

11-
**Сценарий**: В качестве администратора университета вам необходимо зачислить студента на курс. Это действие должно быть гладким и гарантировать целостность данных, даже если происходит несколько зачислений одновременно или возникают проблемы с базой данных.
11+
**Сценарий**: В качестве администратора университета вам необходимо зачислить студента на курс. Это действие должно быть не должно вызвать проблем и гарантировать целостность данных, даже если происходит несколько зачислений одновременно или возникают проблемы с базой данных.
1212

13-
**Реализация метода `enrollStudentInCourse`**: Создайте метод для зачисления студента на курс. Обеспечьте, чтобы этот процесс был транзакционным, что означает, что это как единый пакетный процесс, гарантирующий, что все происходит правильно вместе. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковой не существует. Кроме того, мы устанавливаем `Isolation.SERIALIZABLE`, чтобы гарантировать, что даже если есть параллельные транзакции, они не взаимодействуют друг с другом, сохраняя целостность данных.
13+
**Реализация метода `enrollStudentInCourse`**: Создайте метод для зачисления студента на курс. Обеспечьте, чтобы этот процесс был транзакционным, что означает, что это как единый пакетный процесс, гарантирующий, что весь процесс единый. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковой не существует. Кроме того, мы устанавливаем `Isolation.SERIALIZABLE`, чтобы гарантировать, что даже если есть параллельные транзакции, они не мешают друг другу, сохраняя целостность данных.
1414

1515
```java
1616
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE)
@@ -21,7 +21,7 @@
2121

2222
2. **Получение списка студентов для курса**
2323

24-
**Сценарий**: Чтобы создать список группы для курса, вам необходимо получить список студентов, которые зачислены на него. Эта операция должна гарантировать, что вы всегда получаете точное представление базы данных, даже если происходят другие действия одновременно.
24+
**Сценарий**: Чтобы создать список группы для курса, вам необходимо получить список студентов, которые зачислены на него. Эта операция должна гарантировать, что вы всегда получаете точные данные базы данных, даже если происходят другие действия одновременно.
2525

2626
**Реализация метода `getStudentsForCourse`**: Разработайте метод для извлечения студентов для определенного курса. Он должен гарантировать, что данные, которые вы извлекаете, согласованы, независимо от любых текущих транзакций. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковая не существует. Мы устанавливаем `Isolation.READ_COMMITTED`, чтобы гарантировать, что данные, которые мы извлекаем, зафиксированы и видны другим транзакциям, поддерживая последовательность.
2727

@@ -34,7 +34,7 @@
3434

3535
3. **Добавление нового курса**
3636

37-
**Сценарий**: Новый курс готовится к введению в учебный план. При добавлении его в систему вы хотите убедиться, что это действие не мешает ничему другому, происходящему в системе, сохраняя свою независимость.
37+
**Сценарий**: Новый курс готовится к новому учебному году. При добавлении нового курса в систему вы хотите убедиться, что это действие не мешает ничему другому, происходящему в системе, сохраняя свою независимость.
3838

3939
**Реализация метода `addNewCourse`**: Создайте метод для добавления нового курса в систему. Убедитесь, что этот процесс не запутывается с другими текущими транзакциями. Мы используем `Propagation.NOT_SUPPORTED`, чтобы убедиться, что этот метод не участвует в какой-либо текущей транзакции, обеспечивая его автономность и избегая потенциальных конфликтов с другими операциями.
4040

‎docs/ru/transactions/practice/lessons/entities-and-repositories.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
- Enrollment (Зачисление)
1616
- Log (Лог)
1717

18-
Обеспечьте наличие необходимых атрибутов в каждом классе сущности, как показано на ER-диаграмме.
18+
Обеспечьте наличие необходимых атрибутов в каждом классе, как показано на ER-диаграмме.
1919

2020
2. **Создайте репозитории для сущностей.**
2121

@@ -31,7 +31,7 @@
3131
}
3232
```
3333

34-
Если у вас уже есть репозитории для сущностей, перейдите к следующему шагу. В противном случае повторите описанный выше шаг для репозиториев оставшихся сущностей (Course, Enrollment, Log).
34+
Если у вас уже есть репозитории, перейдите к следующему шагу. В противном случае повторите описанный выше шаг для репозиториев оставшихся сущностей (Course, Enrollment, Log).
3535

3636
---
3737

‎docs/ru/transactions/practice/lessons/nested-and-non-transactional-operations.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
}
3636
```
3737

38-
2. **Обновление зачислений независимо**
38+
2. **Независимое обновление зачислений**
3939

4040
**Сценарий**: Некоторые административные задачи могут потребовать обновления зачислений независимо от обновлений курса. Эта операция должна поддерживать целостность данных, позволяя при этом отдельное транзакционное управление.
4141

‎docs/ru/transactions/practice/lessons/transactional-logging.md‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
## Урок 3: Дополнение транзакционных методов подробным журналированием
1+
## Урок 3: Дополнение транзакционных методов логгированием
22

33
## Цель
44

5-
Этот раздел направлен на интеграцию подробного журналирования для каждой транзакционной операции, обеспечивая запись действий с их результатами.
5+
Этот раздел направлен на интеграцию логгирования для каждой транзакционной операции, обеспечивая запись действий с их результатами.
66

77
## Шаги
88

9-
1. **Реализация метода журналирования**
9+
1. **Реализация метода журналирования(логгирования)**
1010

11-
**Сценарий**: Прежде чем улучшать транзакционные методы с помощью журналирования, нам нужно реализовать метод для обработки журналирования независимо от основной транзакции. Это гарантирует, что журналирование происходит надежно, независимо от результата основной транзакции.
11+
**Сценарий**: Прежде чем улучшать транзакционные методы с помощью журналирования, нам нужно реализовать метод для обработки журналирования независимо от основной транзакции. Это гарантирует, что логгирование происходит надежно, независимо от результата основной транзакции.
1212

13-
**Реализация метода `logAction`**: Создайте метод для независимого журналирования действий, обеспечивая точное отслеживание результатов транзакции. Мы используем `Propagation.REQUIRES_NEW`, чтобы выполнить операцию журналирования в отдельной транзакции, делая ее независимой от любых текущих транзакций и гарантируя ее завершение даже в случае сбоя основной транзакции.
13+
**Реализация метода `logAction`**: Создайте метод для независимого записывания действий, обеспечивая точное отслеживание результатов транзакции. Мы используем `Propagation.REQUIRES_NEW`, чтобы выполнить операцию логгирования в отдельной транзакции, делая ее независимой от любых текущих транзакций и гарантируя ее завершение даже в случае сбоя основной транзакции.
1414

1515
```java
1616
@Transactional(propagation = Propagation.REQUIRES_NEW)
@@ -20,7 +20,7 @@
2020
}
2121
```
2222

23-
2. **Журналирование зачисления студента на курс**
23+
2. **Логгирование зачисления студента на курс**
2424

2525
**Сценарий**: В качестве администратора университета вам необходимо зарегистрировать зачисление студента на курс для отслеживания успешных зачислений и возможных ошибок.
2626

@@ -46,7 +46,7 @@
4646
}
4747
```
4848

49-
3. **Журналирование получения списка студентов для курса**
49+
3. **Запись получения списка студентов для курса**
5050

5151
**Сценарий**: Для поддержания аудита активностей, связанных с курсом, вам необходимо зарегистрировать получение списка студентов для курса и гарантировать, что журналирование происходит даже в случае исключений.
5252

@@ -73,7 +73,7 @@
7373
}
7474
```
7575

76-
4. **Журналирование добавления нового курса**
76+
4. **Запись добавления нового курса**
7777

7878
**Сценарий**: При добавлении нового курса важно зарегистрировать результат операции для отслеживания успешного или неудачного добавления.
7979

0 commit comments

Comments
 (0)