Эйч
Эйч
  • Все менторы
Задачи/Java-разработчик/Ревью кода

Ревью кода

Условие задачи

Необходимо сделать ревью кода сервиса DataService и метода создания/получения новой сущности Data. Метод создания может вызываться из разных потоков и должен быть безопасен для такого режима использования. AccessService и DataRepository безопасны для использования из разных потоков. Предложить, как можно сделать лучше и пояснить проблему, если она есть

javapublic class DataService {
    private AccessService access;
    private DataRepository repository;
    private MessageDigest digest = get();

    public DataService(AccessService access, DataRepository repository) {
        this.access = access;
        this.repository = repository;
    }

    public Data get(String uid) {
        access.checkRead();
        return repository.get(uid);
    }

    public void create(String name) {
        access.checkWrite();
        digest = get();
        repository.save(new Data(
            HexFormat.of().formatHex(digest.digest(name.getBytes())),
            name
        ));
    }

    public static MessageDigest get() {
        try {
            return MessageDigest.getInstance("md5");
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException();
        }
    }

    public record Data(
        String uid,
        String name
    ) {}

    public interface DataRepository {
        void save(Data data);
        Data get(String uid);
    }

    public interface AccessService {
        void checkRead();
        void checkWrite();
    }
}

Профессия

Java-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта