Ответ
На прошлом проекте я занимал позицию Middle Java Developer.
Основные обязанности и зона ответственности:
- Разработка: Создание и поддержка бизнес-логики, REST API (Spring Boot).
- Работа с данными: Оптимизация запросов и работа с БД (PostgreSQL, Hibernate).
- Интеграция: Взаимодействие с очередями (Kafka) и кэшем (Redis).
- Качество кода: Написание unit- и integration-тестов (JUnit, Mockito), участие в code review.
- Работа в команде: Участие в планировании спринтов, помощь junior-разработчикам.
Пример типичной реализации:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private CacheService cacheService;
@Override
@Transactional(readOnly = true)
public UserDto getUserById(Long id) {
// Проверка кэша перед запросом к БД
String cacheKey = "user:" + id;
UserDto cachedUser = cacheService.get(cacheKey, UserDto.class);
if (cachedUser != null) {
return cachedUser;
}
// Запрос к БД и маппинг сущности в DTO
User user = userRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
UserDto userDto = mapToDto(user);
// Сохранение в кэш
cacheService.put(cacheKey, userDto, Duration.ofMinutes(10));
return userDto;
}
}