Вопросы на подумать

Вопросы на подумать #


  1. Ситуация. SQL. На счету пользователя 1000 р. Первая транзакция: читает 1000 на счету, пытается снять 1000. Вторая транзакция тоже читает 1000, хочет снять еще 500 р. По результату уходим в минус. Как обойти ситуацию? -Если хотим решить ситуацию, но оставить уровень транзакции READ COMMITED?

  2. Ситуация. SQL. На уровне Repeatable Read или Serializable транзакция начинает обновлять запись, но сама транзакция еще не завершается. Могут ли две транзакции друг друга заблокировать? Как называется, как с ней быть? - deadlock

  3. Ситуация. Индексы. По бизнес-логике нужно часто делать запросы по точному совпадению фамилии доставать пользователей. Ты хочешь повесить индекс на это поле для повышения перформанса. Какой тип индекса лучше подойдет? - А хеш-индекс подойдет? - Если поле не фамилия, а номер счета, но не primary key? - Если поле updated_at timestamp, хочу посмотреть все данные, которые были обновлены за последний час, либо за вчерашний день, какой индекс лучше подойдет? - BTree, потому что отсортированное дерево

  4. Ситуауция. SQL. Таблица уже в проде, приложение тоже, очень много данных, почти ТБайты, активное использование. Как повесить индексы на таблицу, но не блокировать доступ к таблице, не останавливать прод?

  5. Ситуция. SQL. Как резделять данные по шардам, если есть 4 инстанса, мы берем данные из uuid. А потом захотим добавить 5 инстанс, придется переложить заново? - Альтернатива координатору для распределения по шардам (если координатор упадет, потеряем данные ко всему)

  6. Ситуация. SQL. Сервис в рамках транзакции сохранил в БД и должен еще записать в Kafka, но отключили свет. Как предусмотреть, что в БД закомичены данные, которые не дошли до конца?

  7. Ситуация. Общаемся с сервисом по REST, получили сетевую ошибку, кажется, что можно вызывать заново. Что настроить на своей стороне? - паттерн Retry - Если соседний сервис очень слабый, то постоянный retry еще больше его положит - увеличить промежутки времени между retry или паттерн circuit breaker

  8. Ситуация. Со стороны consumer-а. Топик очень высоконагруженый. 8 партиций. Хотим масшрабироваться на стороне consumer-а, читать сообщения побыстрее. Какой способ? Чтобы читать сообщения с одной бизнес-логикой несколькими Spring-приложениями

  9. Ситуация. Сервис закупок хранит количества остатка товара на складе. Пользователь выбирает товары в приложении и видит, сколько товаров осталось. Этот сервис проскалирован и используется кеширование для количества остатка товара. Какой кеш лучше локальный или распределенный? - Если сделаем локально, будут ли проблемы? - С другой стороне, если товар в одном экземпляре, у каждого клиента это записано. Что может случиться?

  10. Ситуация. Стратегии деплоя. Сервис работает в проде, новый релиз с серьезным багом. Если такой релиз выкатим, а предыдущий убьем, будет больно. Какие более плавные подходы деплоя?

  11. Ситуация. Деплой. У тебя был монолит, билдился 40 минут. Если надо раскатить предыдущую версию, придется ждать 40 минут. Есть ли менее болезненные подходы?

  12. Ситуация. Код в try возвращает разный int. В catch обрабатываем ошибку и оборачиваем в свою. В finally возвращаем 0. В какой последовательности все пойдет? Что получим на выходе метода?

  13. Ситуация. 2 таблицы: данные сотрудника и отделы. Хотим получить данные сотрудника и название отдела. Какой JOIN использовать?

  14. Ситуация. Liquibase. Если не знаем, какая БД в проде. Боимся, что что-то произойдет при накатке. Хотим сделать себе возможность откатить изменения

  15. Ситуауция: есть Spring Boot Application, он собрался. Запускаешь получившийся jar-ник. Он падает с Runtime Exception - не может внедрить зависимости: 2 кандидата на внедрение в какое-то место. Из-за чего такое может произойти? Как решить?

  16. Ситуация. Есть класс-сервис. Внутри 2 метода. Оба public, @Transactional. Первый метод внутри обращается ко второму. Инжектим класс из другого класса и обращаемся к первому методу. Будет ли второй метод транзакционным? После. бираем транзакцию у первого метода. Делаем такое же обращение через первый метод. Через 10 минут демо, надо, чтобы второй метод стал транзакционным

  17. Ситуация. Можем ли мы создать несколько синглтонов, которые будут имплемитировать один и тот же класс, но будут разные параметры?

  18. Ситуация. Kafka. 3 машины в кафке и одна упала. Что с нашей инфой? Инфа постарадает?

  19. Ситуация. Kafka. Было 2 сервиса (producer, consumer), общались по Kafka. Consumer на каждое сообщение должен проходить большой процесс обогащения, поэтому стали копиться сообщения. Решили в двух pod-ах поднять consumer. Но второй pod не видит сообщений. В чем проблема?

  20. Ситуация. Kafka. Если у нас несколько брокеров как будут распологаться partition?

  21. Ситуация. Kafka. У нас есть n partition. Есть ли смысл настроить Spring приложение для увеличения partition?

  22. Ситуация. Kafka. Consumer group. 10 партиций и консьюмеры не справляются. Что делать?

  23. Ситуация. Docker. Один контейнер содержит app, который умеет убивать ОС. Выживут ли другие контейнеры?

  24. Ситуация. Liquibase. Две ветки от master, в одной изменения внесены в бд с liquibase. Ты её локально поднимаешь - ок. Начинаешь поднимать 2 ветку, в ней тоже есть изменения бд через liquibase. Когда будешь поднимать 2 ветку, возникнут какие либо проблемы? (Check сумма не будет совпадать liquibase кинет exception)

  25. Ситуация. HashMap расширилась. Добавили в неё 13 элементов, потом удалили 2 что произойдет?

  26. Ситуация. У класса есть статический атрибут (public static int counter). Мы его инкрементим. Операцию инкремента отдаем 100 потокам. Будет ли в итоге counter равен 100?

  27. Ситуация. Подключаю Spring Boot Application, делаю Maven parent SpringBoot и подключаю SpringBootStarter. Веб появляется?

  28. Ситуация. Метод помечен @Transactional, в нем обращаемся к БД, получаем сущность, на этой же сущности ставим set_id. И забываем сделать сохранение в БД. Что происходит?

  29. Ситуация. В HashMap вставляем 10 тыс ключ-значений, это все разные объекты. Как сделать так, что с вероятностью 99% мы получили значение по ключу за константное время? - один вариант: сразу создать очень большую мапу 10 млрд значений

  30. Ситуация. Есть веб-сервис на Tomcat, Spring Boot. Ты написал Controller получения имени пользователя по id. За именем пользователя идешь в БД Postgres. Запускаешь этот сервис на одноядерной системе, ожидаешь нагрузку около 100 запросов в секунду. Будет ли это работать?

  31. Ситуация. На тех же мощностях запускаем сервер, но ручка вычисляет числа Фибоначчи. Что-то изменится? - Как это будет выглядеть со стороны метрик? - Со стороны пользователей это будет выглядеть так, что запрос очень долго выполняется? Что будет с CPU? На сколько он будет нагружен?

  32. Ситуация. Переменную count хочешь быстро заинкрементировать до 10 тыс. В цикле запустил 10 тыс. потоков, которые инкрементят счетчик. Решил сделать синхронизацию. Какой способ выбрать: synchronized или atomic? Почему?

  33. Ситуация. Как сделать так, если 10 потоков вызывают get() одновременно, ты не создал 10 объектов Singletone?

  34. Ситуация. От стартеров абстрагируемся. Хотим сделать Spring Boot приложение. Ставим @SpringBootApplication public static void main. Передаешь класс, где main. Добавляешь зависимости, стартеры и все начинает работать. От момента, как прописал зависимости и поставил аннотацию - что происходит? - Что значит идет конфигурирование приложения?

  35. Ситуация. Что делает Spring Boot? В Maven в pom-ник добавляешь зависимость dependencies пишешь либы org, spring, springwebstarter. Прописал и начинаешь релоадить. Что происходит в этот момент? - Что значит подгружаются зависимости? - Куда попадают библиотеки, классы? - Для чего Spring Boot кладет библиотеки в локальную папку? - Что такое Classpath?

  36. Ситуация. Какие коллекции позволяют дублировать, какие не позволяют?

  37. Ситуация. Kafka. Есть producer, consumer, consumer record. Consumer record несет в себе key-value. Есть топик, в нем 3 партиции. Мы продьюсим сообщения. Вкакую патртицию попадают сообщения? По каким принципам?

  38. Ситуация. Kafka. Топик и 3 партиции. Мы создаем одного consumer-a. К каким партициям прицепится consumer? - цепляется ко всем 3 партициям. Создаем еще одного consumera. С такой же group id. И цепляем его к такому же топику. Он тоже подцепится к этим трем партициям? - Kafka ребалансируется, один консьюмер получит 2 партиции, а второй консьюмер получит 1 партицию

  39. Ситуация. БД. Предположим, разработали микросервис на спринге и есть бизнес-логика по забору данных, есть “тонкое место”. Что делать будем, как решать проблему?

  40. Ситуация. Переменная не помечена словом final, но изменяться она не может?

  41. В чем отличие несинхронной обработки запроса и неблокирующей реактивной обработки?

  42. Хорошо ли делать длинную цепочку наследования на классах?

  43. Как поведёт себя запущенный проект на Spring без spring-boot-starter-web?

  44. Библиотека vs фреймворк

  45. Ситуация. Есть таблица, 2 поля: айди и количество лайков. Как бы ты сделал увеличение счетчиков лайков на 1?

  46. Ситуация. Есть класс, у которого 2 поля int и java.util.date. Как сделать immutable class из этого?

  47. Ситуация. Есть класс, в котором должны быть заинжекчены какие-то бины. В чем разница сделать это через поля класса, либо через конструктор?

  48. Ситуация. Есть таблицы: Authors(id int PK, name text), Books(id int PK, title text). Как сделать на уровне БД так, чтобы у авторов могло быть много книг, и у книги много авторов? - сделать третью таблицу и связь многие-ко-многим

  49. Ситуация Kafka. Есть 5 консьюмеров. Хотим ими параллельно читать из Kafka, чтобы каждому доставались уникальные сообщения. Можно ли такого достичь?

  50. Ситуация. Как назвать метод. Есть таблица users, поле age. Как назовешь метод, если нужно найти всех users с определенным age и отсортировать по возрастанию

  51. Ситуация. Kafka. Есть два сервиса, им нужно общаться между собой. Два топика. Что должно быть реализовано на сервисах?

  52. Ситуация по volatile. Может ли быть, что разные потоки всегда видят актуальное значение переменной, хотя она НЕ помечена volatile?

  53. Ситуация по synchronized. Есть статичный метод, в его сигнатуре пишу synchronized. На чем будет происходить синхронизация?

  54. Ситуация. В методе с @Transactional достали сущность изменили и отправили дальше, какая проблема возникнет? Как её решить?

  55. Ситуация. Есть класс User в котором есть поле adress, В класе Adress есть поле типа Building. Нужно написать метод который получает User и возвращает Building, причем каждое поле может быть null

  56. Ситуация. Git. Есть Петя и Вася пишут каждый пишет в своей ветке, Пети понадобился один из комитов Васи как это сделать?

  57. Ситуация. Есть maven репозиторий с API и репозиторий с вашим сервисом который подключен как зависимость, после обновления API и сервиса - обновленния не произошло, почему? Загрузиться ли в репозиторий изменения при использовании package?

  58. Ситуация. Есть consumer group c одним consumer-ом и топик с одной партицией, есть задержка в чтении как можно исправить?

  59. Ситуация. Есть брокер и сервис который отправляет в него сообщения. Нужно сделать чтобы сообщения отправлялись всегда даже при сбое, потере питания и т.д

  60. Ситуация. В контролер приходит номер, по нему находим документ и отправляем в брокер. Как гарантировать отправку?

  61. Ситуация. Какой-то запрос читает данные, в это время другой изменяет данные в бд. Какие данные нам прийдут?

  62. Ситуация. Есть метод который помеченный @Transactional, в середине нужно сохранить сохранить промежуточный результат в отдельную таблицу даже при исключении

  63. Ситуация. Есть объект, внутри синхронизированный метод, к которому могут обратиться несколько потоков. Предположите, когда синхронизированный метод не сработает и получим коллизию?

  64. Ситуация. Действия при OutOfMemory. Сервис перезагружается каждые несколько часов

  65. Ситуация. Сервис фото и публикации контента. Подскачил трафик и сервис стал медлонно обрабатывать пользовательские запроосы.

  66. Ситуация. Таблица в ней сто миллионов взаписей. Есть поле Х и нужно достать значения где X больше 100

  67. Ситуация. Пишем генерацию отчета. Мне надо сходить в 4 системы по HTTP и получить данные. Хотим ускорить с помощью многопоточки. Как сделать?

  68. Ситуация. Есть key, value. Программист создает Map с дженериками, где key - собственный класс, а value - string. Что ему нужно сделать, чтобы использовать key?

  69. Ситуация. Есть контроллер Singletone. Он торчит наружу своим API. Мы этот контроллер autowire-им в сервис. Сервис Prototype. User 10 раз дергает контроллер. Сколько будет создано сервисов?

  70. Ситуация. У нас есть библиотека. В ней главный интерфейес movable. У него метод move() что-то дввигает. У нас есть имплементация movableImpl() этого метода. Скомпилировали, собрали war, выложили на Nexus. Другой разраб берет нашу библиотеку, использует autowired куда-то себе, у него все работает. Менеджер попросил что-то у нас переделат. Мы решили сделать movableImpl2(), там имплементация того же интерфейса movable, который autowire-ид тот разраб у себя. Какие будут проблемы?

  71. Ситуация. Junior developer повесил @Transactional так, что транзакция не открывается. Как он это сделал?

  72. Ситуация. Нужно передать на сервер логин и пароль. Через что будем делать? Почему?

  73. Ситуация. Несколько микросервисов читают из одного топика. Как обеспечить, что один топик, один producer и 3 consumer-а, и все 3 гарантированно должны забрать одно и то же сообщение?

  74. Ситуация. Есть сервис, который вызывает другой сервис по http. Мы используем RestTemplate или Feign Client. Мы должны взять метод, что-то сделать, обработать, в базу положить. И хотим весь процесс сделать асинхронным, чтобы метод не блочил систему. Как это реализовать?

  75. Ситуация. Есть API, мы торчим наружу get запросом, с помощью которого туда передается команда. В рамках API выбираются очень большие данные, их нужно будет отправить в Kafka. За месяц накапливается 2 млн записей таблицы и их нужно выгрузить в Kafka. Какие подводные камни могут быть, если наружу торчим get запросом? На фронт нужно отправить количество записей

  76. Ситуация. Сервис интеграции с платежным шлюзом. Два метода. Как бы вы оценили эту таску и какой срок реализации таски?

  77. Ситуация. Есть бизнес, где функционал очень связан. Микросервис большой. Он может оставаться микросервисом? Или это уже монолит?

  78. Ситуация. Есть один монолит на Java 11. Он содержит системы, которые надо вынести. С чего бы начал?

  79. Ситуация. Возможно в Kafka послать сообщения так, чтобы они были получены в том же порядке, как отправлены?

  80. Ситуация. Нужно использовать Prototype в Singleton. Могут быть проблемы?

  81. Ситуация. Если мы autowire-им поле Prototype в Singleton. Что будет? Мы к объекту Prototype будем обращаться и каждый раз заново будем получать этот Prototype, или нет?

  82. Ситуация. Одно и то же приложение нужно запустить в двух разных окружениях. Как это сделать проще всего?

  83. Ситуация. Пишешь приложение, на локалке все работает, отдаешь в сборку. DevOps запускает на проде, там все падает, не подключается к БД, не подключается к Kafka. Что делать?

  84. Ситуация. Хотим какую-то логику выполнить до и после нашего кода. Куда логичнее положить эту Proxy? Чтобы Spring видел, что мы вызываем методы Proxy

  85. Ситуация. Есть сервис в нескольких экземплярах. Приходит команда, которая в каждый может прийти. Или по шедулеру срабатывает джоба. Нужно, чтобы выполнение таски сработало только один раз

  86. Ситуация. Есть 5 разных потоков. Есть метод объекта, который потоки хотят плюс-минус одновременно дернуть, но нужно, чтобы дернул только один. Что делать в первую очередь

  87. Ситуация. Есть таблица, 3 поля: id, name, sex. Заполнили пользователями. Сделали индекс на имя и индекс на пол. Делаем запрос: SELECT * FROM table WHERE sex=‘w’; Как предположить или посмотреть, какие индексы будут использоваться в этом запросе?

  88. Ситуация. У нас 2 БД. Один сервер у нас, другой сервер в Латинской Америке. Пользователи обновляют одну БД, вторая БД должна обновиться сложным путем. При этом запрашиваем одновременно данные из обеих БД. Что может быть не так?

  89. Ситуация. Есть 2 таблицы по 5 строк в каждой. Я делаю запрос в LEFT JOIN. В результате выборки данных от скольки до скольки может получиться строк?

  90. Ситуация. Java. Есть интерфейс, там 2 метода. Хочу сделать этот интерфейс функциональным. Что сделать?

  91. Ситуация. Есть список из 10 объектов. Делаю стрим map, filter, и другие нетерминальные операции. Сохраняю ссылку на стрим. Потом добавлю новые объекты в список. В самом конце, беру ссылку на стрим, вызываю терминальную операцию toList(). Какое количество объектов стрим обработает: изначальное или новое? Или ошибка?

  92. Ситуация. Создали entity, неправильно переопределили hashCode(), он всегда возвращает рандомное число. Чем это опасно?

  93. Ситуация. Я использую массив в качестве ключа для HashMap. Во время код-ревью что вы мне скажете?

  94. Ситуация. На atomic переменной сделали счетчик. Изначально значение переменной 0. Два потока прибавляют 1 одновременно.

  95. Ситуация. Маленькое приложение, всего 2 бина. Бин A Singleton инжектит в себя Бин B Prototype. Как будет подниматься контекст Spring? Сколько будет экземпляров бинов?

  96. Ситуация. Есть аннотация, уже написана. Когда разраб помечает свой метод этой аннотацией, происходит логирование. Как реализовать такой функционал?

  97. Ситуация. Приложение использует библиотеку. Библиотека реализует интерфейс. Есть две реализации бинов, одна в самой библиотеке, вторая в нашем приложении. Мы инжектим интерфейс. Как ведет себя Spring?

  98. Ситуация на SELECT. Есть 2 таблицы: сотрудники, отделы. В одном отделе много сотрудников. Выбрать все id отделов, где сотрудников больше 10

  99. Ситуация на микросервисы. Есть сервис, который принимает REST запросы. Он ходит в БД, и запросы начинают тормозить. Мы поднимаем новый инстанс этого сервиса. Теперь запросы распределяются по двум подам. Опять число запросов увеличилось, опять тормозит, мы снова так поднимаем, пока не перестает помогать. То есть новый инстанс поднимаем, а запросы продолжают тормозить. В чем может быть проблема?

  100. Ситуация к предыдущему вопросу. Хотим запускать приложение на нескольких стендах: dev, prod. Есть выбор: использовать Spring, либо собственную Статическую Фабрику. Где будет удобнее? Продолжение ситуации. Есть подключение к БД. В Абстрактной Фабрике есть конфиги, объекты, я сам создаю инстанс. На другом стенде придется создать другой класс с другими конфигами. И подкладывать нужный объект для каждого стенда. Как это в Spring реализовано?

  101. Ситуация: два сервиса. Первый используется во втором, а второй - в первом. Если буду инжектить через конструктор, каждый при старте будет требовать другой сервис. Что делать?

  102. Ситуация на синхронизацию микросервисов, чтобы только один микросервис отправил запрос, а остальные не отправляли. Есть монолит, есть Sheduled, который идет в БД, строит отчет, отправляет сообщение в Kafka. Если есть второй инстанс, то оба отправят в Kafka сообщение, а нам нужно только одно сообщение.

  103. Ситуация. 3 партиции, 3 консьюмера, объединенные в одну consumer group. Как они будут взаимодействовать с партициями?

  104. Ситуция. Создали индекс на поле, делаем запрос на это поле, а индексы не сработали. Может быть так?

  105. Ситуация. Таблица пользователей и таблица машин. Связь один-ко-многим. Где здесь N+1 запрос?

  106. Ситуация. Есть интерфейс, там 2 метода. Как сделать интерфейс функциональным?

  107. Ситуация. Есть список из 10 объектов. Делаю стрим map, filter, и другие нетерминальные операции. Потом очищаем список. И делаем терминальную операцию стрима. Сколько объектов списка обработается 10 или ничего не произойдет?

  108. Ситуация. Запрос медленно работает Что делать?

  109. Ситуация. Класс небольшой, но нарушает принцип S. Чем плохо?

  110. Ситуация на иммутабельность в многопоточке. Есть POJO объект. Создаем его и закидываем в виде таски в Executor Service. Там джоба с какой-то логикой, джоба работает с POJO объекту, обращается к полям. Как поможет иммутабельность в такой многопоточке? Порассуждать на тему Race condition

  111. Ситуация. Есть бин, который реализует сервис, на который приходят клиенты. Он много раз используется, несколько клиентов могут быть одновременно. Он должен быть Singleton или Prototype?

  112. Ситуация БД. Две простые сущности: сотрудник и телефон. О сотруднике данных мало: ФИО одной строкой. О телефоне данных мало: номер одной строкой. Сотрудник имеет много номеров, один номер принадлежит только одному сотруднику. Как организовать в БД?

  113. Ситуация. Если там, где надо @Service мы поставим @Component, и наоборот, где надо @Component поставим @Service, будет работать?

  114. Ситуация на многопоточку. Есть несколько потоков, мы хотим, чтобы они все стартанули одновременно. Как это сделать средствами Java?

  115. Ситуация. СофтСкилл. Ты делаешь задачу и не успеваешь к дедлайну, какие твои действия?

  116. Ситуация. В БД огромная таблица. В ней есть поля state и category. Нужно выбрать все записи, где state=3 или category=4. Как лучше сделать?

  117. Ситуация в Postgres, с индексами. Есть атрибут state, на нем есть индекс. Подхватится ли индекс при запросе с проверкой state на Null?

  118. Ситуация. Есть связь многие-ко-многим. Книги и авторы. Можем ли в обеих таблицах повесить Eager?

  119. Ситуация. Взяли сущность, у нее все ссылочные поля Lazy. Считали сущность, передали в другой метод. Конечный метод пытается обратиться к Lazy полю. Получит ли он данные? Почему?

  120. Ситуация. Нужно создать метод, который очищает кэш. Какой нейминг?

  121. Ситуация. Создать метод, который выполняет расчет, сохраняет в БД, возвращает код успех или ошибка. Какой нейминг?

  122. Ситуация В таблице первичный ключ Х, но нужно искать не по Х, а по У. Когда грузишь мапу, что ты можешь сделать, чтобы ключь стал другим в мапе, но ты не потеряешь данные? Зачем я могу это делать?

  123. Ситуация. Один сервис вызывает другой сервис. Где может возникнуть задержка? На что обратить внимание, что бы уменьшить время задержки?

  124. Ситуация. Ты попадаешь на новый проект. Залезаешь в логи сервиса и там OutOfMemory. Какие есть идеи?

  125. Ситуация. Git. Вы вместе с коллегой пишете два разных функционала в ветках и тебе понадобился его код из его ветки. Твои действия?

  126. Ситуация. Можно сделать индекс на все колонки у таблицы? Чем это нам поможет?

  127. Ситуация. Из таблицы удаляем автора. К автору прицеплено 10 книг. К кому будут прицеплены эти книги? Что будет с id автора?

  128. Ситуация. Один сервис продуцирует сообщеня, по сути является продьюсером. Публикует результаты экзаменов учеников. Есть 3 системы, которые потребляют сообщения. Сколько нужно сделать Топиков и Партиций? Если сделаем 1 партицию, что случится? А если 10?

  129. Ситуация. Почему нельзя сделать две БД на запись и на чтение?

  130. Ситуация. У нас есть SOLID и есть множественная имплементация. С одной стороны говорят дробите, с другой принцип единой ответственности, как решить этот диссонанс?

  131. Ситуация. Компилятор требует при использовании лямбды выражения либо final, либо effectively final?

  132. Ситуация. В сервисном слое приложения есть класс. В классе метод1 и метод2. Оба метода public. Оба помечены @Transactional. Метод2 вызывается внутри метода1. Метод1 вызывается в контроллере. Что будет с транзакцией в метод2?

  133. Ситуация. Работа с БД в микросервисах. Используем подход Database per Microservice. Как добиться той же ситуации, как с транзакциями?

  134. Ситуация. Один сервис отправил сообщение, что нужно сохранить несколько сущностей. Нужно сохранить всё или ничего. Как бы сделал процесс отката?

  135. Ситуация. Метод, в котором 150 if-ов, где сравниваются строки. Как отрефакторить?

  136. Ситуация. Есть цикл, который заполняет List. Там много данных, работает медленно. Решили, что нужно распараллелить в несколько потоков. Но List не потокобезопасен. Что делать?

  137. Ситуация. Kafka. Возможно обрабатывать несколькими консьюмерами одну партицию?

  138. Ситуация. Как на стороне консьюмера обрабатывать сообщения, чтобы не обрабатывать дубли?

  139. Ситуация. Сервис. Работает только синхронно и в диалоговом режиме. Посылает гет запрос и должен получить ответ. Сложность в том, что данные которые нужно получить собираются асинхронно. Как совместить асинхронность и синхронность?

  140. Ситуация. Объект А зависит от объекта Б. Б зависит от С. С зависит от А. Как решить проблему?

  141. Ситуация. Ты передаешь переменные. Параметры через конструктор. Они объявлены как final. Это иммутабельность?

  142. Ситуация. Singleton якобы плохой паттерн. Почему Spring один сплошной Singleton?

  143. Ситуация. У класса переопределили метод. Как вызвать метод предка из переопределенного класса? Представим, что метод приватный.

  144. Ситуация. В коде нужно сделать паузу. Нельзя использовать классические способы Thread sleep, wait. Как нам реализовать паузу?

  145. Ситуация. Создал иммутабельный класс, в нем 10 полей, хочу использовать свой класс как ключ в HashMap. Что делать?

  146. Ситуация. Нужно сделать систему мониторов, мьютексов, чтобы таски выполнять согласованно. Какой concurrency интерфейс использовать? Методы, классы, интерфейсы, которые предоставляют механизмы блокировок?

  147. Ситуация. Есть приложение, навешал туда Lock-ов, все работает четко. По бизнесу конфликтов нет. Начал горизонтально масштабировать свое приложение, и полезли проблемы. Почему Lock-и перестали спасать после горизонтального масштабирования? Горизонтальное масштабирование - приложение работало в одном экземпляре, стало в двух экземплярах работать

  148. Ситуация по Spring. Есть интерфейс, который реализуют несколько классов. Я пытаюсь внедрять этот интерфейс куда-нибудь как Bean. Как Spring поймет, какую реализацию выбрать?

  149. Ситуация. Есть запрос от клиента в какой-то из наших контроллеров, через что проходит запрос?

  150. Ситуация. Есть сущность и связанная к ней сущность. Нужно вытащить список родительских сущностей. Что произойдет в рамках запроса, если ленивая загрузка включена? Как называется эта проблема?

  151. Ситуация на Hibernate. В БД есть справочные таблицы, которые никогда не меняются. Есть Spring MVC приложение. Нужно много ходить в эти таблицы, много запросов к БД. Как разрулить ситуацию со стороны Hibername?

  152. Ситуация. В БД много записей. Как настроишь отображение большого количества данных между бэком и фронтом?

  153. Ситуация. Есть сервис, который нужно протестировать. В сервисе есть внедрение стороннего компонента, хочу этому компоненту придать определенное поведение. Тест с какой аннотацией нужно сделать заглушкой?

  154. Ситуация. Приложение работает несколько суток, принимает HTTP трафик. Есть ли возможность в Spring закинуть туда бин, не рестартуя приложение?

  155. Ситуация. Kafka. Консьюмер отвалился, продьюсер есть, сообщения идут в топик. Консьюмеров на топике нет. Потеряются ли сообщения? Когда консьюмер поднимется, придут ли к нему пропущенные сообщения?

  156. Ситуация. SQL. Как из запроса с группировкой выбрать одну группу? Например, чтобы сумма была больше чего-то?

  157. Ситуация. Есть большой набор данных 50-100 тыс элементов. Ожидаются частые удаления, вставки в середину набора. LinkedList или ArrayList выберешь и почему?

  158. Ситуация. Объект типа User с двумя полями String firstName, String lastName, без реализации hashCode(). Объекты User используются в качестве ключей в HashMap. Сначала записали в HashMap с ключом user1. Потом создали user2 с такими же firstName, lastName, пробуем по ключу user2 вытащить из HashMap данные. Что будет?

  159. Ситуация. Spring приложение, прикручена БД. Есть требование, что нельзя хранить login, password в Application Properties в открытом виде. Они там хранятся в зашифрованном виде. Как решить проблему, чтобы Spring расшифровывал их? Токен для расшифровки хранится на локальной машине

  160. Ситуация. Сможет ли сборщик мусора удалить два объекта ссылающиеся друг на друга?

  161. Ситуация. Есть счетчик. Запустили 100 потоков. По итогу у нас будет занчение 100?

  162. Ситуация. Большая таблица на миллион записей. Обеспечить быстрый доступ к данным. В таблицу много пишем. Как совместить?

  163. Ситуация. Kafka. Два консьюмера и 3 партиции. Что будет?

  164. Ситуация. Проблема управления распределнной транзакцией. Какие есть подходы к решению?

  165. Ситуация. В одном потоке перебирается коллекция, а в другом потоке из коллекции что-то удаляется. Что делать, чтобы не было ошибки?

  166. Ситуация. Используем Set. Храним в нем несколько элементов, но оказывается, что внутри хранится только один элемент. Почему?

  167. Ситуация. Что будет если на вход map() и flatMap() приходит null

  168. Ситуация. Спроектировать класс сущности в котором будет будут связи один к одному, один к многим и многие к одному. Как спроектировать класс

  169. Ситуация. Consumer не существует. Топик существует, Продюсеры что-то туда откидывают. Создаю нового Консьюмера. Есть ли возможность получить все сообщения, которые были до этого? Скажем так, остались в этом Топике

  170. Ситуация. Консьюмер подключился к Топику и считывает сообщения. В одном из сообщений вылетело необработанное исключение. Что будет с ним?

  171. Ситуация. Логическа задача. Есть куб. Он состоит из тысячи маленьких кубиков. То есть у нас куб со стороной 10 на 10 на 10. Нужно найти количество кубиков, находящихся на внешнем слое этого куба. То есть мы можем крутить-вертеть, сколько мы можем в сумме увидеть на внешнем слое кубиков

  172. Ситуация. У хэшмап планируем использовать в качестве некого счетчика для действий пользователя. В качестве ключа у нас пользователь, в качестве значения счетчик. Происходит какое-то событие, мы берем пользователя, добавляем в счетчик плюс один. Таким образом у нас растет событие. Вопрос. Будет ли корректно такая мапа работать в многопоточке?

  173. Ситуация. Как в консоле скомпилировать и запустить класс?

  174. Ситуация. Как скопировать объект? Сделать копию объекта

  175. Ситуация. Если создать 100 потоков программа будет выполняться быстрее? Поток идет в центробанк запрашивает валюту и заносит в таблицу. Миллион значений. Если создать 5 потоков и 100 потоков. Что быстрее выполнится?

  176. Ситуация. Создаем бины котрые реализовывают временный контейнер Файл. Файл, что то сохраняет и что то достает. Если закроем приложение то файл останется. Как уничтожить бин, для грамотного использования ресурсов.

  177. Ситуация. Представим что у нас есть Транзакционный метод. В нем вначале через репозиторий делаем findOne, потом изменяем ее через save и кидаем повторный запрос findOne. Сколько запросов к БД будет выполнено?

  178. Ситуация. Метод с Transactional и внутри этого метода еще метод с Transactional, выбрасывается ошибка из второго метода. Это правильная обработка метода? Ошибка SQL. Ошибка будет влиять на транзакцию? Как обрабатывать такие ситуации?

  179. Ситуация. Как создать несколько DataSource в спринг-приложении и управлять ими?

  180. Ситуация. Если у нас есть несколько DataSource, создаются в нашем приложении два бина одного и того же типа. Место для инжекта только одно. Как разрулить ситуацию?

  181. Ситуация. Делаешь рабочий проект. Как понять тебе нужна ORM или JDBC?

  182. Ситуация. Фуллстек. Все спроектировано. Заказчик говорит, что ответ приходит через 5 секунд. Нужен ответ за 3 секунды. Как оптимизировать до 3 секунд?

  183. Ситуация. У тебя есть бизнес процессы, есть микросервисы. Микросервис отправки сообщений и микросервис бизнесс логики. Как ты будешь их интегрировать? Какой протокол и какую технологию выберешь?

  184. Ситуация. Kafka. 1 продьюсер, 1 топик, 2 консьюмера. Продьюсер посылает ивент. Кто из консьюмеров получит ивент?

  185. Ситуация. Тебе запрещено работать с Kafka. Есть только REST. Микросервис который отвечает за работу оборудования. Он оставляет заявку сервису, который регистрирует и составляет расписание проверок. Как это реализовать по REST. Составление расписания раз в 8 часов

  186. Ситуация. Необходимо сохранить строку с паролем. Какой тип данных будешь использовать?

  187. Ситуация. Уровень изоляции Repeatable read. Две транзакции работают. Будет Lock на чтение, на запись или на то и на другое?

  188. Ситуация. Что произойдет, если в классе из не транзакционного метода вызываем его транзакционный метод?

  189. Ситуация. Как удалять быстро и много данных из БД? Удаление по дням. Как можно реализовать?

  190. Ситуация. Как ограничить размер выборки? Запрос должен вытащить n записей. Как реализовать?

  191. Ситация. Что делать если у нас 1000 listener в kafka?

  192. Ситуация. Есть рест контроллер содержит несколько ендпоинтов и в него внедряется сервис со скоупом prototype. Сколько раз создастся бин если мы вызываем его ендпоинты пять раз.

  193. Ситуация. Есть таблица с данными. 10 полей. Есть выбор сделать 10 индексов по одному полю или один индекс по десяти. Как лучше?

  194. Ситуация. Представь, что у нас много компаний сидят на одной БД и у нас в каждой таблице есть колонка с кодом компании. Любой WHERE начинается с наименования компании. Означает ли это что нужно повесить индекс на колонку с компаниями?

  195. Ситуация. Есть два апдейта. Есть пользователь и баланс на счете. Первый апдейт снимает с него 50 рублей. Второй апдейт снимает 50 рублей. Они выполняются одновременно или последовательно? Есть ли какие то механизмы управления?

  196. Ситуация. У нас есть очень длинная транзакция с большим количеством селектов. В конце один апдейт. Что сделать чтобы заблокировать данные на этапе когда я их селекчу.

  197. Ситуация. Есть Singletone, большой сервис и есть prototype бин и он маленький и ты его инжектишь. И ты обращаешься к prototype бин через Singletone. Ты каждый раз обращаешься к новому prototype?

  198. Ситуация. У нас есть бин со скоупом prototype. Мы его внедряем через Autowired в синглтон бин. И синглтон вызываем 3 раза. Сколько будет экземпляров?

  199. Ситуация. Представим, что мы разработываем сервис. Задача сервиса связать два компонента. Один компонент работает полностью синхронно, он шлет нам http запрос по рест на который должен получить ответ. Второй сервис с которого надо получить данные, синхронно работать не умеет. Работает только асинхронно. Есть метод запуска сбора информации. Есть метод который чекает готов результат или нет. И метод отправки готовой информации. Опиши алгоритм работы, чтобы связать два сервиса

  200. Ситуация. Есть топик. 2 партиции. Отправляем одно сообщение. Есть два потребителя. Есть два варианта. Первый, у них одна консьюмер группа. Второй, у них разные консьюмер группы. В каком случае оба микросервиса прочитают одно и тоже сообщение.

  201. Ситуация. Что будет если создать сервис и заинжектить туда прототайп, через конструктор. Как он будет себя вести? Как прототайп или синглтон?

  202. Ситуация. Что будет если мы делаем селект в одну таблицу, но у таблицы есть много ссылок на другие таблицы. Один ко многим. Что делать, чтобы объединить таблицы и был только одни запрос

  203. Ситуация. Могут быть объекты которые равны по equals но не равны по hashCode?

  204. Ситуация. Если в интервейсе есть один дефолтный метод, то его можно использовать как функциональный интерфейс?

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

  206. Ситуация. Что будет если консьюмеров будет больше чем партиций?

  207. Ситуация. Что будет если партиций будет больше чем консьюмеров?

  208. Ситуация. В первом сервисе произошло событие, закоммитили в БД, нужно отправить сообщение в кафку. Кафка реализует мост at least once т.е. может много сообщений в кафку. Если транзакция закоммителась мы должны гарантированно другому сервису сообщать, что событие произошло. Какие паттерны реализовать?

  209. Ситуация. Есть таблица с данными. Кредитные заявки. Есть некий кредитный статус. 3 штуки. New, in progres, close. Нам нужно написать миграцию, которая будет доставать заявку по статусу и их мигрировать. Миграция подразумевает изменение статусов. Какие проблемы могут появиться и как их решать? Рассматриваем один поток. Данных очень много и нельзя все вытаскивать скопом.

  210. Ситуация. ЦПУ улетел вверх. Твои действия.

  211. Ситуация. Твой запрос перестал работать через некоторое время. Твои действия?

  212. Ситуация. Представь, что ты проектируешь таблицу. Как ты в самом начале накидываешь индексы?

  213. Ситуация. У нас есть Сервис. Он работает в продакшен. У нас есть большая БД на 100 миллионов строк. Мы добавляем в нее новый индекс. Написали миграцию и у нас деплой не работает в ожидании индексации. Какие есть варианты решения проблемы?

  214. Ситуация. Планирование архитектуры между несколькими сервисами. (нужно смотреть фотографию) К. к. бы ты создал Контракт взаимодействия между сервисом egrn и внутренними клиентами. И между egrn и внешним сервисом Росреестр.

  215. Ситуация. В рамках двух сессий, сделаем выборку по id одного и того же элемента, а потом сравню ссылки, что получим?

  216. Ситуация. Как с точки зрения Hibernate необходимо реализовать наследование

  217. Ситуация. Если создаем в бине обращение к ресурсу. Нужно корректно закрыть ресурс. Как это сделать?

  218. Ситуация. Внедрение гарантий доставки. Если мы добавляем запись в БД, то как проверять, что случилось с клиентом? Клиент тоже должен взаимодействовать с БД?

  219. Ситуация. Ревью кода. Обычное ревью ООП кода. Классы: Люди, Города, Компании.

  220. Ситуация. Приходил запрос от саппорта. Клиент жалуется, что у него тормозит конкретная страница. Как будешь начинать копать задачу и куда будешь двигаться.