Ответ
На последней позиции в качестве Backend-разработчика на Spring Boot я занимался следующими задачами:
- Разработка REST API для банковского приложения.
- Реализация безопасности: JWT-аутентификация и авторизация с помощью Spring Security.
- Работа с данными: Оптимизация сложных SQL-запросов к PostgreSQL и настройка индексов.
- Интеграции: Подключение внешних платежных шлюзов и систем.
- Тестирование: Написание модульных и интеграционных тестов с использованием JUnit 5 и Mockito.
- Поддержка инфраструктуры: Участие в рефакторинге legacy-кода, настройке пайплайна CI/CD в Jenkins и разработке асинхронного микросервиса для уведомлений на основе Kafka.
Пример кода (Endpoint для проверки баланса):
@RestController
@RequestMapping("/api/accounts")
public class AccountController {
@GetMapping("/{id}/balance")
@PreAuthorize("hasRole('USER')")
public ResponseEntity<BigDecimal> getBalance(
@PathVariable Long id,
@AuthenticationPrincipal UserDetails user) {
// Проверка прав доступа
if (!accountService.isOwner(id, user.getUsername())) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
return ResponseEntity.ok(accountService.getBalance(id));
}
} Ответ 18+ 🔞
Вот, представляешь, сижу я на этой своей последней работе, блядь, как Backend-разработчик на Spring Boot. И занимался я там таким, что волосы дыбом встают, ёпта!
Ну, в общем, список моих подвигов, блядь:
- REST API пилил для одного банковского приложения. Не просто так, а чтобы деньги считать, блядь, серьёзно всё.
- Безопасность, мать её. JWT-токены, Spring Security — чтобы всякие левые пидорасы не ломились в систему, как к себе домой. Авторизация, аутентификация, в рот меня чих-пых, чтоб всё по полочкам.
- С данными воевал. PostgreSQL, блядь. Запросы такие, что сам SQL с ума сходил. Оптимизировал, индексы настраивал — чтобы не тормозило, как черепаха в сиропе.
- Внешние шлюзы подключал, платежные. Интеграции, блядь. Там свои заморочки, свои API, доку — овердохуища текста, который читать — терпения ебать ноль.
- Тесты писал. JUnit 5, Mockito. Чтобы потом, когда что-то сломаешь, не охуеть от последствий, а сразу понять, что ты — мудак.
- Инфраструктуру поддерживал. Legacy-код рефакторил — это как разгребать авгиевы конюшни, только кодом. CI/CD в Jenkins настраивал. И ещё, блядь, асинхронный микросервис для уведомлений на Kafka делал. Чтобы письма летели, как дерьмо в вентилятор, только вовремя.
А вот, смотри, кусочек кода, как я endpoint для баланса делал. Красота, блядь:
@RestController
@RequestMapping("/api/accounts")
public class AccountController {
@GetMapping("/{id}/balance")
@PreAuthorize("hasRole('USER')")
public ResponseEntity<BigDecimal> getBalance(
@PathVariable Long id,
@AuthenticationPrincipal UserDetails user) {
// Проверка прав доступа
if (!accountService.isOwner(id, user.getUsername())) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
return ResponseEntity.ok(accountService.getBalance(id));
}
}
Видишь? @PreAuthorize("hasRole('USER')"). Это чтобы не абы кто мог зайти и посмотреть, сколько у кого денег. Сначала проверяем: а твоя ли это, сука, учетка? Если нет — получай FORBIDDEN и иди нахуй. А если твоя — вот тебе баланс, держи, распишись. Всё честно, блядь.
Вот такая, понимаешь, жизнь у backend-разработчика. Не сахар, но зато интересно, ёпта. То SQL-запрос оптимизируешь, то с Kafka танцуешь, а то legacy-код читаешь и думаешь: «Какой же, блядь, пидарас это писал?.. О, это же я полгода назад».