mirror of
https://github.com/maxbarsukov/itmo.git
synced 2026-09-12 19:19:57 +05:00
feat(blss): ✨ add test#0 and test#1
This commit is contained in:
parent
68b2575755
commit
95e50ca9dc
119
6 блпс/микрокр/0.md
Normal file
119
6 блпс/микрокр/0.md
Normal 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();
|
||||
}
|
||||
}
|
||||
```
|
||||
42
6 блпс/микрокр/1.md
Normal file
42
6 блпс/микрокр/1.md
Normal 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. **Конец**: Цикл повторяется.
|
||||
Loading…
Reference in New Issue
Block a user