Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Как уведомить объект в сессии, что сессия недействительна или закончилась?
Чтобы быть уверенным в том, что объект будет оповещён о прекращении сессии, нужно реализовать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() используются при добавлении объекта в качестве атрибута к сессии и при уничтожении сессии соответственно.
Не хватает знаний? Обучающих курсов много, а ты один? Не знаешь, как найти работу без практических навыков?
У нас есть ответ: тренинг-центр EPAM!
Здесь есть возможность бесплатно и онлайн обучаться под наставничеством специалистов из production, а также пройти стажировку, попробовать себя в реальных проектах и получить работу в EPAM.
📈Программы построены так, чтобы развить твои навыки до уровня настоящего профи.
• Обучение для новичков без опыта.
• Менторинг для тех, кому нужно улучшить свои знания.
• Стажировки для всех специалистов от базового до продвинутого уровня.
📍Регистрация на обучение открыта в 5 городах России. Подробности смотри здесь:

Санкт-Петербург https://epa.ms/internships-java-3039-spb-nov21
Волгоград https://epa.ms/training-java-3122-vlg-kr-nov21
Краснодар https://epa.ms/training-java-3122-vlg-kr-nov21
Самара https://epa.ms/training-java-3039-smr-nov21
Ижевск https://epa.ms/training-java-2355-izh-nov-21

✔️Регистрируйся прямо сейчас!
В тренинг-центре EPAM мы обучаем тех, с кем в будущем будем работать в одной команде!
#вопросы_с_собеседований
Какие существуют виды тестовых объектов?
Актуальное событие для пермских Java-разработчиков: 23 ноября в Технопарке пройдет IT’s Tinkoff Java Meetup!

Вместе с экспертами Тинькофф обсудим обезболивающее из функционального мира для Java, а также читабельность тестов. И не забудьте приготовить свои вопросы для холиварной дискуссии — поговорим о роли тестировщика в команде, Test-driven development и почему это очень удобно.

Начало в 19:00 по местному времени, но можно прийти на полчаса пораньше на welcome-кофе, а после докладов — остаться на афтепати с напитками, из-за которых на афише значок 18+ ;)

Организаторы заботятся о здоровье участников, поэтому мероприятие — covid-free зона. Приходите сами и зовите коллег, не забудьте подготовить QR-код о вакцинации или отрицательный ПЦР-тест. Подробности и форма регистрации по ссылке: https://l.tinkoff.ru/its-tinkoff-java-meetup-perm
пустышка (dummy) - объект, который обычно передается в тестируемый класс в качестве параметра, но не имеет поведения: с ним ничего не происходит и никакие его методы не вызываются.

Примером dummy-объектов являются new object(), null, «Ignored String» и т.д.

фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.

Основные примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.

заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные поступающие из тестируемого объекта, возвращая заранее определённый результат.

Тестируемый объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.

шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.

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

фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
Что выведет программа?
Anonymous Quiz
54%
12
32%
11
13%
01
1%
10
Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus (2021)
Авторы: Ken Finnigan, Clement Escoffier
Количество страниц: 298

Реактивные системы и архитектура, управляемая событиями, становятся незаменимыми при разработке приложений, и компании это понимают. Реактивные системы гарантируют, что приложения будут отзывчивыми, отказоустойчивыми и гибкими независимо от того, какие сбои или ошибки могут произойти, в то время как архитектура, управляемая событиями, предлагает гибкий и компоновочный вариант для распределенных систем. Эта практическая книга помогает разработчикам Java объединить эти подходы с помощью Quarkus 2.x, среды Java, родной для Kubernetes.

Скачать книгу
🧑‍💻 Зарплаты в ИТ-сфере — одни из самых высоких по стране. Сравниться с айтишниками могут, к примеру, летчики и капитаны судов. Только представьте: Java-разработчики могут претендовать на зарплату от 160 до 400 тысяч рублей, а дата-аналитик получает не меньше 250 тысяч в месяц.

Сегодня, чтобы попасть в мир ИТ, уже не нужно учиться 5 лет в вузе - для старта достаточно получить дополнительное образование.

В проекте #цифровыепрофессии освоить новую специальность можно с финансовой поддержкой от государства на курсах таких известных брендов, как: Нетология, СберУниверситет, Университет Иннополис, Яндекс.Практикум, Академия АйТи, ИТМО, Ланит. Половину стоимости обучения компенсирует государство, а оставшиеся 50% оплачивает сам слушатель или его работодатель.
По итогам обучения будет выдан диплом о профессиональной переподготовке гособразца. Условия участия – гражданство РФ, возраст от 16 лет до пенсионного, наличие законченного среднего профессионального или высшего образования (любой специальности).
В этом году принять участие в проекте #цифровыепрофессии смогут только 25 тысяч человек. Количество учащихся на потоках ограничено. Нажимайте на кнопку «подать заявку»! https://clck.ru/YtMS5
#вопросы_с_собеседований
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?
☕️ Поддержка обмена данными. Контейнер сервлетов предоставляет легкий способ обмена данными между веб клиентом (браузером) и сервлетом. Благодаря контейнеру нет необходимости создавать слушателя сокета на сервере для отслеживания запросов от клиента, а так же разбирать запрос и генерировать ответ. Все эти важные и комплексные задачи решаются с помощью контейнера и разработчик может сосредоточиться на бизнес-логике приложения.
☕️ Управление жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.
☕️ Поддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.
☕️ Поддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.
☕️ Различные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.
#вопросы_с_собеседований
Как организовать подключение к базе данных, обеспечить журналирование в сервлете?
При работе с большим количеством подключений к базе данных рекомендуется инициализировать их в servlet context listener, а также установить в качестве атрибута контекста для возможности использования другими сервлетами.

Журналирование подключается к сервлету стандартным для логгера способом (например для log4j это может быть property-файл или XML-конфигурация) , а далее эта информация используется при настройке соответствующего context listener.
#вопросы_с_собеседований
Какие способы аутентификации доступны сервлету?
Спецификация сервлетов определяет четыре типа проверки подлинности:
HTTP Basic Authentication - BASIC. При доступе к закрытым ресурсам появится окно, которое попросит ввести данные для аутентификации.
Form Based Login - FORM. Используется собственная html форма:
HTTP Digest Authentication - DIGEST. Цифровая аутентификация с шифрованием.
HTTPS Authentication - CLIENT-CERT. Аутентификация с помощью клиентского сертификата.

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/error.html</form-error-page>
</form-login-config>
</login-config>