feat(blss): add test#0 and test#1

This commit is contained in:
maxbarsukov 2025-02-25 21:20:00 +03:00
parent 68b2575755
commit 95e50ca9dc
2 changed files with 161 additions and 0 deletions

View File

@ -0,0 +1,119 @@
# Микроконтрольная №0
## Вариант 13579
### 1. Как реализуется уровень контроллера в Spring Web MVC?
В Spring Web MVC уровень контроллера реализуется с помощью аннотаций, таких как `@Controller` и `@RequestMapping`. Контроллеры обрабатывают HTTP-запросы и связывают их с соответствующими методами. Например:
```java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class CalculatorController {
@GetMapping("/calculate")
public ModelAndView calculate(@RequestParam("a") double a,
@RequestParam("b") double b,
@RequestParam("operation") String operation) {
double result = 0;
switch (operation) {
case "add":
result = a + b;
break;
case "subtract":
result = a - b;
break;
case "multiply":
result = a * b;
break;
case "divide":
result = a / b;
break;
}
ModelAndView modelAndView = new ModelAndView("result");
modelAndView.addObject("result", result);
return modelAndView;
}
}
```
### 2. Зачем нужны распределённые транзакции?
Распределенные транзакции необходимы для обеспечения целостности данных в системах, состоящих из нескольких сервисов или баз данных. Они позволяют гарантировать, что все операции в рамках транзакции будут выполнены успешно или не будут выполнены вовсе (принцип ACID), то есть предотвращает несогласованное состояние данных. Это особенно важно в микросервисной архитектуре, где данные могут храниться в разных системах.
Существует несколько подходов к реализации распределенных транзакций, включая двухфазную фиксацию (2PC), Saga и TCC. 2PC обеспечивает надежное завершение транзакций, но может привести к блокировкам и зависаниям. Саги, с другой стороны, разбивают транзакцию на серию локальных операций с компенсациями, что позволяет более гибко управлять неудачами.
### 3. Написать калькулятор (4 действия) на CDI-бинах.
```java
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Named;
@Named
@RequestScoped
public class Calculator {
public double add(double a, double b) {
return a + b;
}
public double subtract(double a, double b) {
return a - b;
}
public double multiply(double a, double b) {
return a * b;
}
public double divide(double a, double b) {
if (b == 0) throw new IllegalArgumentException("Division by zero.");
return a / b;
}
}
```
---
## Вариант 24680
### 1. Принципы CDI и IoC - что такое, зачем нужны, примеры использования.
CDI (Contexts and Dependency Injection) - это спецификация для управления зависимостями и контекстами в Java EE. IoC (Inversion of Control) - это принцип, при котором управление зависимостями передается контейнеру. CDI позволяет легко создавать и управлять объектами (бинами), внедрять зависимости и управлять их жизненным циклом. Пример использования CDI:
```java
import jakarta.inject.Inject;
public class UserService {
@Inject
private UserRepository userRepository;
public void createUser (User user) {
userRepository.save(user);
}
}
```
### 2. Зачем нужен JPA, если есть JDBC и ORM-фреймворки?
JPA (Java Persistence API) предоставляет стандартный способ работы с базами данных в Java-приложениях. В отличие от JDBC, JPA позволяет работать с объектами, а не с таблицами, что упрощает взаимодействие с базой данных. JPA также поддерживает кэширование, управление транзакциями и связь между сущностями, что делает его более мощным инструментом по сравнению с простым JDBC.
### 3. REST API на Spring, преобразующее все приходящие ему символы в верхний регистр.
```java
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api")
public class UpperCaseController {
@PostMapping("/uppercase")
public String toUpperCase(@RequestBody String input) {
return input.toUpperCase();
}
}
```

View File

@ -0,0 +1,42 @@
# Микроконтрольная №1
## Вариант 01234
### 1. Чем компонентный подход полезен при разработке бизнес-логики?
Компонентный подход в разработке бизнес-логики позволяет разбивать систему на независимые и переиспользуемые модули, что упрощает поддержку и масштабирование приложения. Такой подход способствует лучшей организации кода, позволяет командам работать параллельно над различными компонентами и облегчает тестирование. Кроме того, компоненты могут быть легко заменены или обновлены без значительного влияния на всю систему, что повышает гибкость и скорость разработки.
### 2. Что такое BPMN?
BPMN (Business Process Model and Notation) — это стандарт для моделирования бизнес-процессов, который предоставляет графическую нотацию для описания процессов в понятной и доступной форме. BPMN используется для визуализации, анализа и оптимизации бизнес-процессов, что помогает различным заинтересованным сторонам (таким как бизнес-аналитики, разработчики и менеджеры) лучше понимать и улучшать процессы.
### 3. BPMN рабочего рецепта колобка.
В BPMN для рабочего рецепта колобка можно представить процесс, который включает следующие шаги:
1. **Начало**: Получение ингредиентов (мука, сахар, яйца и т.д.).
2. **Процесс**: Замешивание теста, формирование колобка.
3. **Процесс**: Выпекание колобка в печи.
4. **Проверка**: Проверка готовности колобка.
5. **Конец**: Колобок готов к подаче.
---
## Вариант 56789
### 1. Зачем нужны политики безопасности на уровне бизнес-логики?
Политики безопасности на уровне бизнес-логики необходимы для защиты данных и обеспечения соблюдения нормативных требований. Они помогают контролировать доступ к ресурсам, определять, какие действия могут выполнять пользователи, и обеспечивать защиту от несанкционированного доступа или злоупотреблений.
### 2. Что такое BPMS?
BPMS (Business Process Management System) — это система управления бизнес-процессами, которая помогает моделировать, автоматизировать, анализировать и оптимизировать процессы в организации. BPMS обеспечивает интеграцию различных компонентов, позволяя улучшить эффективность процессов.
### 3. BPMN светофора.
В BPMN для модели светофора можно представить процесс, который включает следующие элементы:
1. **Начало**: Включение светофора.
2. **Процесс**: Светофор переключается на красный (остановка).
3. **Процесс**: Светофор переключается на желтый (предупреждение).
4. **Процесс**: Светофор переключается на зеленый (разрешение движения).
5. **Конец**: Цикл повторяется.