Тарифы зашиты в коде. Как можно изменять или добавлять тарифы без изменения кода и передеплоя?
Убедились, что проблема на стороне внешней интеграции (они долго обрабатывают запросы). Какие действия для быстрого реагирования и на будущее?
@PutMapping("/create") public Book create(@RequestBody CreateBook request) throws Exception { System.out.println("Check if book exists " + map); Book book = new ObjectMapper().convertValue(map, Book.class); Book b = repo.findByTitle(book.getTitle()); if (b != null) { throw new Exception("Book already exists"); } book.setId(UUID.randomUUID().toString()); repo.save(book); log.debug("Book {} by {} is created with id {}", book.getTitle(), book.getAuthor(), book.getId()); return book; } @GetMapping("/get") public Book get(@QueryParam("id") String id) { log.debug("Get book " + id); return repo.findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); } @GetMapping("/{id}") public Book get(@RequestParam("id") String id) { log.debug("Get book ", id); return repo.findById(id).orElseThrow(() -> new BookAlreadyExeption("book not find")) findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); }
Когда нужно использовать частичные и покрывающие индексы?
Можно ли оценить производительность запроса без его выполнения?
Работали ли вы с RabbitMQ?
Почему именно JOIN? Что это значит, что произойдет? Есть ли другие варианты JOIN операции?
Работали ли вы с Camunda как оркестратором? Что такое Saga паттерн?
В чём разница между композицией и наследованием? Что предпочтительнее?
Расскажите о принципах SOLID и зачем они нужны в разработке
Расскажите про equals и hashCode: контракт, зачем нужен hashCode
В чём основная проблема выбранной структуры решения - Нет обработки особых исключений при запуске - Конфигурационный класс без аннотаций @Configuration - Некорректная настройка зависимостей DI - Некорректная интеграция кастомных конфигов меняет порядок загрузки свойства - @Autowired отсутствует наличие зависимостей
—SEPARATOR—
Есть ли у вас вопросы по проекту Adapter SMEF3?
Неэффективное использование фиксированного пула потоков Проблемы с взаимодействием общих ресурсов Некорректное включение блокировки может привести к тупиковой ситуации. Некорректный уровень синхронизации Нет проверок всех потоков перед результатом Нет явного конструктора
Как относишься к использованию AI в разработке (вайб-кодинг и подобное)?
import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.ws.rs.QueryParam; import lombok.Data; import lombok.extern.log4j.Log4j2; @Log4j2 @Service @RestController("/store/book") public class BookStoreController { private final BooksRepository repo; public BookStoreController(BooksRepository repo, Boolean bool, Collection keys) { this.repo = repo; if (bool) { // check first key String firstKey = (String) ((ArrayList) keys).get(0); if (firstKey == "public") { keys.stream().forEach(key -> { // ... some logic log.warn("Using key " + key); }); } } } @PutMapping("/create") public Book create(Map<String, Object> map) throws Exception { System.out.println("Check if book exists " + map); }
В чём основная проблема выбранной структуры решения - ArrayList без предварительной ёмкости приводит к перерасходам - Риск взаимной блокировки при помощи методов - Неэффективная структура блокировок приводит к излишним накладным расходам. - ExecutorService не может корректно обрабатываться - Фиксированный пул защиты масштабируемости
Можно ли полностью откатить последний коммит?
В чём основная проблема данного примера Dockerfile FROM golang:1.16 WORKDIR /app COPY go.mod . COPY go.sum . RUN go mod download COPY . . RUN go build -o crashAnalysis . CMD ["./crashAnalysis"] EXPOSE 9090 - Отсутствует ENV для конфигурации - Отсутствие многоступенчатых билдов - Никогда не удаляются временные файлы - Неоптимальное использование RUN - Порт 8081 не указан в инструкции EXPOSE