Супер видео, очень познавательно) Я, конечно, не много тестовых делал, но конкретно это, очевидно, на мидловскую позицию. Тем более как сказали в ролике: они даже не попросили переделать, а сразу отказали. На джунов обычно что-то типа: напишите круд для склада носков или напишите модуль фильтрации для такой-то сущности по таким-то критериям.
@j_denis10 ай бұрын
Очень полезный разбор. Петр, спасибо 👍
@artemief9 ай бұрын
Спасибо, позновательно !💪👍
@smehoboy23103 ай бұрын
На самом деле контроллер не оборачивается по дефолту в транзакцию , если не поставить явно @Transactional , но когда её поставить то будет выборка по умолчанию Lazy Также многое зависит от версии JPA и Hibernate, но Spring Data это обвертка на Hibernate это тоже на до учитывать Подход с сборкой объекта в памяти плохое решение потому что данных в базе может слишком много и она знает как это сделать эффективнее чтобы не собирать все А вытаскивая все данные из памяти вы тем самы нагружаете базу Вообще в идиале в задаче на производительность не нужно было использовать JPA А если условие с JPA то тогда Join Fetch или EntityGraph Joint Fetch должен делать один запрос , если это не так значит не правильная конфигурации, особенно если указываются ленивые коллекции в Entity Кроме того Hibernate использует различные оптимизации под капотом при агрегации в частности это связано с кешем первого уровня и временными таблицами из api базы
@job4j10 ай бұрын
Тестовое Java Junior Rest API Hibernate n +1 Курс по Java - job4j.ru/ Пробные собеседования в IT - checkdev.ru/
@ПавелЕфремов-м2д10 ай бұрын
Мне кажется на рынке работодатель просит Мидлов на позицию Джунов....
@geraldik10 ай бұрын
В поиске высококвалифицированных низкооплачиваемых кадров))
@ДаниилЪ-б2з10 ай бұрын
Вам не кажется.
@unicoxr5tj4178 ай бұрын
тебе не кажется
@BigAliFamily8 ай бұрын
Вам совсем не кажется. Так и есть
@Сергей-и8ж7в7 ай бұрын
не на позицию, а за зарплату джуна) так и есть) но согласитесь, было бы глупо с таким конкурсом на одну джуновскую вакансию не резануть зарплатную вилку по этой вакансии)
@SuperNunrg10 ай бұрын
для oracle есть ограничения на кол-во парметров в IN что-то вроде 1000. И запрос может упасть при пейдж сайз > 1000. Лучше наверное использовать join fetch и забирать данные одним запросом. Хотя опять же все зависит от реальных требований. Согласен, что по этому тестовому, можно было хотя бы поговорить с человеком про N+1 знает или нет. Тем более это на джуна, больше похоже на какую-то формальность со стороны компании которой люди не нужны, но нужно внутри отчитаться за процесс найма.
@вапвапвапвапва-ж1и3 ай бұрын
Уволили? С чего бы?
@user-thienalo8 ай бұрын
Честно говоря 2 раз пересматриваю видео и всё ещё не могу понять как была решена проблема n+1 в вашем коде, объясните пожалуйста...
@job4j8 ай бұрын
Мы получаем список id и уже по ним получаем сразу список объектов. то есть select from user; select from address where id in (id из первого запроса). То есть у нас 10 пользователей. Нам нужно для каждого пользователя получить его адрес. Это было 1 + 10 запросов. А так получается 1 + 1 запрос.
@iisrail7 ай бұрын
Извините осталось не понятно, а почему проблему не решать с помощью fetch join
@job4j7 ай бұрын
Если отношения one-to-many то join fetch будет делать еще один запрос на каждый элемент select. Это в логе можно увидеть. Попробуйте.
@nizat_rumАй бұрын
Ссылку бы на git этого решения...
@job4jАй бұрын
Не надо плодить эти решения. Напиши свое.
@Ерболат-н3к7 ай бұрын
Здравствуйте, может я невнимательно слушал, но тема комментариев к задачам показалась нераскрытой во второй части видео
@shjwfanshjwfan8 ай бұрын
на мой взгляд утверждение о том, что дизайн закладывается framework-ом - не правильное, framework это всё лишь инструмент (адаптер если угодно, для того чтобы работать с HTTP, с БД и т.д.), который строиться вокруг бизнес логики у которой может быть какой угодно дизайн
@job4j8 ай бұрын
Фреймворки - он и переводится как рамка, то есть приложение нужно вписать в эту рамку. А вот библиотека, как раз нацелена, на то чтобы решить узкую задачу, типа работать с HTTP, базами данных и тд. Можно сделать свой каркас только из библиотек и не использовать фреймворки.
@tesgreat89589 ай бұрын
не хреновое тестовое )) такие таски и за зарплату не все вытаскивают.
@unicoxr5tj4178 ай бұрын
вы нам не подходите
@Сергей-и8ж7в7 ай бұрын
@@unicoxr5tj417 😅
@АлександрШ-й5ж4 ай бұрын
@@unicoxr5tj417
@Пумпурумм3 ай бұрын
Очень даже понятно все с чистотой кода, здесь таблицу не указал, там колонку не указал, сям метод через одно место назвал - всё это влияет
@____897710 ай бұрын
Здравствуйте, в 32 года стать java программистом реально? Около 10 лет назад очень сильно изучал Java, многое забыл, но принципы ООП понимаю.
@job4j10 ай бұрын
У нас ученик устроился в конце 2023 года в 55 лет. Так что в 32 года можно все.