• Вопрос с собеседования на Java Бекенд. Как гарантировать согласованность операций?

    Я не из МТС банка, но у нас в собесе тоже есть похожий вопрос, но я бы не назвал его простым, так как там дальше ещё много дополнительных вопросов и обсуждений можно невертеть.

    Основная идея заключается в том, что нужно как-то обеспечить транзакционнлсть при общении с левым сервисом.

    Самый простой и часто используемый вариант - Outbox.

    Смысл в том, что мы должны в нашей основной базе завести таблицу, в которой будет записано, что нам нужно отправить запрос в тот сервис и с какими параметрами. (Например отправить письмо по электронной почте)

    Создавать запись в эту таблицу мы будем в той же транзакции, что и основную запись (например при регистрации пользователя).

    Отправлять запрос уже будем в другом потоке, который периодически проходит по этой таблице и отправляет то, что ещё не было отправлено.

    Переносить взаимодействие со сторонним сервисом в Outbox также имеет смысл из-за того что ты не можешь гарантировать его доступность и задержки - если будешь работат с ним при обработке запроса от клиента по API, то можешь просто упасть по тайм-аут.

    Также Outbox часто сочетают вместе с очередями сообщений - тогда ты уже не просто отправляешь запрос, а кладешь его в очередь, которую тот сервис будет разбирать.

    66ab5b548e5a9142225375.png

    Благодаря тому что мы записываем основные бизнес-данные и намерение сделать запрос в сторонний сервис в одной транзакции - мы гарантируем, что мы не будем отправлять запрос, если данные не записались и наоборот - если данные записались, то мы гарантируем, что попытаемся рано или поздно отправить запрос.
    Ответ написан
    3 комментария
  • Как можно практически закрепить знания JAVA SE?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Мне кажется ты слега перегрел себя. Что там оттачивать в Enum? Какой вопрос тебя могут спросить на собеседновании на джуна и на который ты не знаешь ответ.

    В твоей ситуации я был. Это похоже на усталость. Ничего не надо делать. Надо просто отдохнуть.
    Для систематизации-же заведи себе в гитхабе проектик типа FAQ. И складывай туда code-samples
    по каждому вопросу.
    Ответ написан
    Комментировать
  • Как можно практически закрепить знания JAVA SE?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Вот :)
    Ответ написан
    Комментировать
  • Что должно в себя включать приложение по аренде авто?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Но я не могу понять что оно должно в себя включать и как работать

    Представляете себе следующую ситуацию: у вас есть 1000 авто. Вам надо сдать их в аренду с помощью приложения. Берете ручку, бумагу и записываете список того, что вам нужно от этого приложения как владельцу автопарка, так и потенциальному клиенту. Далее оформляете это в ТЗ, делаете декомпозицию задачи в несколько итераций, пишите частное ТЗ и реализуете данное приложение.

    кто-то может скинуть статью с объяснением функционала или пример такого приложения?

    А в чем сложность скачать и поставить любое приложение по аренде авто?
    Ответ написан
    4 комментария
  • Что должно в себя включать приложение по аренде авто?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Всем привет, я часто спрашивал "какую программу можно написать что бы отточить навыки ООП и немного JAVA FX?" И мне часто отвечали написать приложение по аренде/прокату автомобилей.

    Непонятно какое отношение имеет JavaFX к аренде автомобилей.

    Вообще чем короче постановка - тем меньше стоит на нее смотреть. Вот кто может написать аксептанс критерии на аренду. Где она вообще заканчивается? Какой объем фичей надо реализовать чтобы покрыть основные кейсы аренды? Это все - очень важные вопросы. И люди которые кидают вам в лицо такие задания - сами ничего в этом не понимают. А тоже могу миллиард таких заданий придумать. Техническая фантазия - богатая. Но я не смогу грамотно описать кейсы. Для этого нужно хотя-бы в этой аренде поработать. Бизнес - это ни хрен собачий.

    А так ... хочешь ООП - пиши любую безсмыслицу с классами.
    Ответ написан
    6 комментариев
  • Как написать код для таблицы истинности функции на C++?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    = - присваивание
    == - сравнение
    Ответ написан
  • Как выразить импликацию в с++?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    x → w = !x || w
    Ответ написан
    Комментировать