пустышка (dummy) - объект, который обычно передается в тестируемый класс в качестве параметра, но не имеет поведения: с ним ничего не происходит и никакие его методы не вызываются.
Примером dummy-объектов являются new object(), null, «Ignored String» и т.д.
фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.
Основные примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.
заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные поступающие из тестируемого объекта, возвращая заранее определённый результат.
Тестируемый объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.
шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.
Если существует необходимость проверки, что определённый метод тестируемого класса вызывался ровно 1 раз, то шпион - именно то, что нам нужно.
фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
Примером dummy-объектов являются new object(), null, «Ignored String» и т.д.
фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.
Основные примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.
заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные поступающие из тестируемого объекта, возвращая заранее определённый результат.
Тестируемый объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.
шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.
Если существует необходимость проверки, что определённый метод тестируемого класса вызывался ровно 1 раз, то шпион - именно то, что нам нужно.
фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus (2021)
Авторы: Ken Finnigan, Clement Escoffier
Количество страниц: 298
Реактивные системы и архитектура, управляемая событиями, становятся незаменимыми при разработке приложений, и компании это понимают. Реактивные системы гарантируют, что приложения будут отзывчивыми, отказоустойчивыми и гибкими независимо от того, какие сбои или ошибки могут произойти, в то время как архитектура, управляемая событиями, предлагает гибкий и компоновочный вариант для распределенных систем. Эта практическая книга помогает разработчикам Java объединить эти подходы с помощью Quarkus 2.x, среды Java, родной для Kubernetes.
Скачать книгу
Авторы: Ken Finnigan, Clement Escoffier
Количество страниц: 298
Реактивные системы и архитектура, управляемая событиями, становятся незаменимыми при разработке приложений, и компании это понимают. Реактивные системы гарантируют, что приложения будут отзывчивыми, отказоустойчивыми и гибкими независимо от того, какие сбои или ошибки могут произойти, в то время как архитектура, управляемая событиями, предлагает гибкий и компоновочный вариант для распределенных систем. Эта практическая книга помогает разработчикам Java объединить эти подходы с помощью Quarkus 2.x, среды Java, родной для Kubernetes.
Скачать книгу
Telegram
Книги для программистов (reserved)
Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus (2021)
Авторы: Ken Finnigan, Clement Escoffier
Авторы: Ken Finnigan, Clement Escoffier
🧑💻 Зарплаты в ИТ-сфере — одни из самых высоких по стране. Сравниться с айтишниками могут, к примеру, летчики и капитаны судов. Только представьте: Java-разработчики могут претендовать на зарплату от 160 до 400 тысяч рублей, а дата-аналитик получает не меньше 250 тысяч в месяц.
Сегодня, чтобы попасть в мир ИТ, уже не нужно учиться 5 лет в вузе - для старта достаточно получить дополнительное образование.
В проекте #цифровыепрофессии освоить новую специальность можно с финансовой поддержкой от государства на курсах таких известных брендов, как: Нетология, СберУниверситет, Университет Иннополис, Яндекс.Практикум, Академия АйТи, ИТМО, Ланит. Половину стоимости обучения компенсирует государство, а оставшиеся 50% оплачивает сам слушатель или его работодатель.
По итогам обучения будет выдан диплом о профессиональной переподготовке гособразца. Условия участия – гражданство РФ, возраст от 16 лет до пенсионного, наличие законченного среднего профессионального или высшего образования (любой специальности).
В этом году принять участие в проекте #цифровыепрофессии смогут только 25 тысяч человек. Количество учащихся на потоках ограничено. Нажимайте на кнопку «подать заявку»! https://clck.ru/YtMS5
Сегодня, чтобы попасть в мир ИТ, уже не нужно учиться 5 лет в вузе - для старта достаточно получить дополнительное образование.
В проекте #цифровыепрофессии освоить новую специальность можно с финансовой поддержкой от государства на курсах таких известных брендов, как: Нетология, СберУниверситет, Университет Иннополис, Яндекс.Практикум, Академия АйТи, ИТМО, Ланит. Половину стоимости обучения компенсирует государство, а оставшиеся 50% оплачивает сам слушатель или его работодатель.
По итогам обучения будет выдан диплом о профессиональной переподготовке гособразца. Условия участия – гражданство РФ, возраст от 16 лет до пенсионного, наличие законченного среднего профессионального или высшего образования (любой специальности).
В этом году принять участие в проекте #цифровыепрофессии смогут только 25 тысяч человек. Количество учащихся на потоках ограничено. Нажимайте на кнопку «подать заявку»! https://clck.ru/YtMS5
#вопросы_с_собеседований
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?
☕️ Поддержка обмена данными. Контейнер сервлетов предоставляет легкий способ обмена данными между веб клиентом (браузером) и сервлетом. Благодаря контейнеру нет необходимости создавать слушателя сокета на сервере для отслеживания запросов от клиента, а так же разбирать запрос и генерировать ответ. Все эти важные и комплексные задачи решаются с помощью контейнера и разработчик может сосредоточиться на бизнес-логике приложения.
☕️ Управление жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.
☕️ Поддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.
☕️ Поддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.
☕️ Различные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.
☕️ Управление жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.
☕️ Поддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.
☕️ Поддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.
☕️ Различные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.
Что выведет программа?
Anonymous Quiz
11%
0 0
13%
0 1
14%
1 1
15%
1 2
19%
Compiler Error
9%
Runtime Error
19%
Ничего из этого
#вопросы_с_собеседований
Как организовать подключение к базе данных, обеспечить журналирование в сервлете?
Как организовать подключение к базе данных, обеспечить журналирование в сервлете?
При работе с большим количеством подключений к базе данных рекомендуется инициализировать их в
Журналирование подключается к сервлету стандартным для логгера способом (например для
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>
🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 5)
Читайте новый выпуск еженедельной подборки интересных алгоритмических и логических задач, которые не дадут вам заскучать.
https://proglib.io/sh/3cAQYlGkOo
Читайте новый выпуск еженедельной подборки интересных алгоритмических и логических задач, которые не дадут вам заскучать.
https://proglib.io/sh/3cAQYlGkOo
Все о Java в одном месте👍
Привет!
Меня зовут Денис - я являюсь автором YouTube канала dmdev и java-разработчиком в Google по совместительству.
Можно читать множество книг, а можно подписаться на 1 канал и уже приступить к программированию.
Экономя время и тратя эффективно свои ресурсы.
На канале видео содержат как теорию, так и практику в формате live coding продолжительностью 10-15 минут.
Чему ты научишься?
● Java Core
● SQL
● JDBC
● HTTP. Servlets
● Maven
● JUnit 5
● Groovy
● Gradle
● Hibernate
● Spring - в разработке
После этих курсов обычно устраиваются разработчиком и/или повышают свой уровень до middle/senior🤫
↓
YouTube dmdev
При оформлении спонсорства на канале:
🎁 доступ в закрытый телеграм чат, где я и другие участники помогают с различными вопросами
🎁 купон от IntelliJ IDEA Ultimate на 6 месяцев бесплатного пользования
Также присоединяйся в Instagram
Пиши "java" в direct - и я вышлю тебе java roadmap 🎁
↓
Instagram dmdev
Привет!
Меня зовут Денис - я являюсь автором YouTube канала dmdev и java-разработчиком в Google по совместительству.
Можно читать множество книг, а можно подписаться на 1 канал и уже приступить к программированию.
Экономя время и тратя эффективно свои ресурсы.
На канале видео содержат как теорию, так и практику в формате live coding продолжительностью 10-15 минут.
Чему ты научишься?
● Java Core
● SQL
● JDBC
● HTTP. Servlets
● Maven
● JUnit 5
● Groovy
● Gradle
● Hibernate
● Spring - в разработке
После этих курсов обычно устраиваются разработчиком и/или повышают свой уровень до middle/senior🤫
↓
YouTube dmdev
При оформлении спонсорства на канале:
🎁 доступ в закрытый телеграм чат, где я и другие участники помогают с различными вопросами
🎁 купон от IntelliJ IDEA Ultimate на 6 месяцев бесплатного пользования
Также присоединяйся в Instagram
Пиши "java" в direct - и я вышлю тебе java roadmap 🎁
↓
Instagram dmdev
#вопросы_с_собеседований
Опишите, как обрабатываются JSP страницы, начиная от запроса к серверу, заканчивая ответом пользователю.
Опишите, как обрабатываются JSP страницы, начиная от запроса к серверу, заканчивая ответом пользователю.
Когда пользователь переходит по ссылке на страницу
page.jsp
, он отправляет http-запрос
на сервер GET /page.jsp
. Затем, на основе этого запроса и текста самой страницы, сервер генерирует java-класс
, компилирует его и выполняет полученный сервлет, формирующий ответ пользователю в виде представления этой страницы, который сервер и перенаправляет обратно пользователю.#вопросы_с_собеседований
Расскажите об этапах (фазах) жизненного цикла JSP.
Расскажите об этапах (фазах) жизненного цикла JSP.