From 95e50ca9dc0ff5910f0477934ea2d9729b85ea31 Mon Sep 17 00:00:00 2001 From: maxbarsukov Date: Tue, 25 Feb 2025 21:20:00 +0300 Subject: [PATCH] feat(blss): :sparkles: add test#0 and test#1 --- 6 блпс/микрокр/0.md | 119 ++++++++++++++++++++++++++++++++++++++++++++ 6 блпс/микрокр/1.md | 42 ++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 6 блпс/микрокр/0.md create mode 100644 6 блпс/микрокр/1.md diff --git a/6 блпс/микрокр/0.md b/6 блпс/микрокр/0.md new file mode 100644 index 0000000..5854189 --- /dev/null +++ b/6 блпс/микрокр/0.md @@ -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(); + } +} +``` diff --git a/6 блпс/микрокр/1.md b/6 блпс/микрокр/1.md new file mode 100644 index 0000000..df4d031 --- /dev/null +++ b/6 блпс/микрокр/1.md @@ -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. **Конец**: Цикл повторяется.