Лучшие практики для Java-приложений в Kubernetes
В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.
Однако я рассматриваю все правила в рамках характеристик Java, а также показываю решения и инструменты, доступные для приложений на базе JVM.
Некоторые из этих рекомендаций по Kubernetes навязаны дизайном при использовании самых популярных Java-фреймворков, таких, как Spring Boot или Quarkus. Я покажу вам, как эффективно использовать их для упрощения жизни разработчиков.
Читать статью
В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.
Однако я рассматриваю все правила в рамках характеристик Java, а также показываю решения и инструменты, доступные для приложений на базе JVM.
Некоторые из этих рекомендаций по Kubernetes навязаны дизайном при использовании самых популярных Java-фреймворков, таких, как Spring Boot или Quarkus. Я покажу вам, как эффективно использовать их для упрощения жизни разработчиков.
Читать статью
Teletype
Лучшие практики для Java-приложений в Kubernetes
В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы...
🔥12👍5❤1
Предметно-ориентированное проектирование в Enterprise Java (2020) PDF
В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
👍11❤5🔥2☃1
Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются?
Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:
• Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов его конструктора без параметров.
• Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletConfig для этого сервлета и внедряет его через
• Обработка запросов — после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новый поток и вызывает метод service() путем передачи ссылки на объекты ответа и запроса.
• Удаление - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова
Таким образом, сервлет создаётся при первом обращении к нему и живёт на протяжении всего времени работы приложения (в отличии от объектов классов, которые уничтожаются сборщиком мусора после того, как они уже не используются) и весь жизненный цикл сервлета можно описать как последовательность вызова методов:
•
•
•
Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:
• Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов его конструктора без параметров.
• Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletConfig для этого сервлета и внедряет его через
init()
метод. Это и есть место где сервлет класс преобразуется из обычного класса в сервлет.• Обработка запросов — после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новый поток и вызывает метод service() путем передачи ссылки на объекты ответа и запроса.
• Удаление - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова
destroy()
метода.Таким образом, сервлет создаётся при первом обращении к нему и живёт на протяжении всего времени работы приложения (в отличии от объектов классов, которые уничтожаются сборщиком мусора после того, как они уже не используются) и весь жизненный цикл сервлета можно описать как последовательность вызова методов:
•
public void init(ServletConfig config)
– используется контейнером для инициализации сервлета. Вызывается один раз за время жизни сервлета.•
public void service(ServletRequest request, ServletResponse response)
– вызывается для каждого запроса. Метод не может быть вызван раньше выполнения init()
метода.•
public void destroy()
– вызывается для уничтожения сервлета (один раз за время жизни сервлета).👍17❤3🔥2
🔥 Переходи на новый уровень в Java и разнообразь свою работу!
Пройди тест по Java и проверь как хорошо ты знаешь язык.
Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь масстер-класс от преподавателя
👉 ПРОЙТИ ТЕСТИРОВАНИЕ
Пройди тест по Java и проверь как хорошо ты знаешь язык.
Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь масстер-класс от преподавателя
👉 ПРОЙТИ ТЕСТИРОВАНИЕ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍6❤3🔥2
JAVA FROM EPAM (2020)
Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и ХМL. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и ХМL. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
👍15😁3🔥2
В каком случае требуется переопределять метод service()?
Метод
Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода
Метод
service()
переопределяется, когда необходимо, чтобы сервлет обрабатывал все запросы (и GET
, и POST
) в одном методе.Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода
service()
, который в зависимости от поступившего запроса вызывает или метод doGet()
или метод doPost()
.👍9🔥2
Ответьте на 10 вопросов
🟢 Пройти тестирование
— «ksqlDB - анализируем потоки на SQL»
— «Kafka Streams»
— «Место Kafka в событийно-ориентированных системах»
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
SOLID в деталях: Принцип единственной ответственности
В серии роликов "SOLID в деталях" я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
В первом ролике речь пойдёт о принципе единственной ответственности (Single Responsibility Principle; SRP), его трактовках и их практическом применении.
В серии роликов "SOLID в деталях" я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
В первом ролике речь пойдёт о принципе единственной ответственности (Single Responsibility Principle; SRP), его трактовках и их практическом применении.
👍26🔥3
Cyberduck — это бесплатный FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure и OneDrive и клиент передачи файлов OpenStack Swift для Mac и Windows.
Language: Java
💥Stars: 2601
📝Forks: 264
https://github.com/iterate-ch/cyberduck
Language: Java
💥Stars: 2601
📝Forks: 264
https://github.com/iterate-ch/cyberduck
GitHub
GitHub - iterate-ch/cyberduck: Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and…
Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows. - iterate-ch/cyberduck
👍7🔥3❤2
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
👍9❤2🔥2☃1
SOLID в деталях: Принцип открытости/закрытости
В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Второй ролик посвящён принципу открытости/закрытости.
В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Второй ролик посвящён принципу открытости/закрытости.
YouTube
SOLID в деталях: Принцип открытости/закрытости
В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Второй ролик посвящён принципу открытости/закрытости.
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:…
Второй ролик посвящён принципу открытости/закрытости.
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:…
👍14🔥4❤2
В чем разница между методами GET и POST?
•
• Передача данных методом
•
•
GET
передает данные серверу используя URL
, тогда как POST
передает данные, используя тело HTTP
запроса. Длина URL
ограничена 1024
символами, это и будет верхним ограничением для данных, которые можно отослать через GET
. POST
может отправлять гораздо большие объемы данных. Лимит устанавливается web-server
и составляет обычно около 2 Mb
.• Передача данных методом
POST
более безопасна, чем методом GET
, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте
пользователя, в отличии от URL
, который виден почти всегда. Иногда это преимущество превращается в недостаток - вы не сможете послать данные за кого-то другого.•
GET
метод является неизменяемым, тогда как POST
— изменяемый.👍37🔥6❤2
Алгоритмы (2023) PDF
В этом руководстве содержатся основные сведения об алгоритмах: анализируются различные типы алгоритмов, рассматриваются мето-ды их построения (рекурсия, динамическое программирование и др.), приводятся практические примеры. В конце каждой главы приводятся упражнения, направленные на закрепление пройденного.Для изучения материала требуется знание основ дискретной математики и методов доказательств, а также представление об основных вычислительных задачах и алгоритмах. Желателен практический опыт работы с языком программирования, поддерживающим косвенную адресацию и рекурсию.Издание адресовано студентам и преподавателям технических вузов, а также тем, кто хочет изучить основы алгоритмизации.
В этом руководстве содержатся основные сведения об алгоритмах: анализируются различные типы алгоритмов, рассматриваются мето-ды их построения (рекурсия, динамическое программирование и др.), приводятся практические примеры. В конце каждой главы приводятся упражнения, направленные на закрепление пройденного.Для изучения материала требуется знание основ дискретной математики и методов доказательств, а также представление об основных вычислительных задачах и алгоритмах. Желателен практический опыт работы с языком программирования, поддерживающим косвенную адресацию и рекурсию.Издание адресовано студентам и преподавателям технических вузов, а также тем, кто хочет изучить основы алгоритмизации.
👍18🔥6❤2
Что такое cookies?
• аутентификации пользователя;
• хранения персональных предпочтений и настроек пользователя;
• отслеживания состояния сеанса доступа пользователя;
• ведения разнообразной статистики.
Сookies («куки»)
— небольшой фрагмент данных, отправленный web-сервером
и хранимый на устройстве пользователя. Всякий раз при попытке открыть страницу сайта, web-клиент
пересылает соответствующие этому сайту cookies web-серверу
в составе HTTP-запроса
. Применяется для сохранения данных на стороне пользователя и на практике обычно используется для:• аутентификации пользователя;
• хранения персональных предпочтений и настроек пользователя;
• отслеживания состояния сеанса доступа пользователя;
• ведения разнообразной статистики.
👍47🔥4❤2
Проверка кода – важная часть функционала разработчика, этот процесс помогает выявить ошибки, пропуски, уязвимости и стилистические недочеты.
Хотите научиться правильно проводить ревью, чтобы повысить качество своих конечных результатов?
Приходите на бесплатный открытый урок «Code-review онлайн» от OTUS.
✅ Преподаватель курса «С# Developer Professional» Антон Герасименко, .net developer + lead с опытом в разработке более 10 лет:
— проведет code-review нескольких учебных проектов;
— расскажет о сode-review в целом: стоит ли его проводить, кому и когда он полезен.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤1☃1
Что такое «сессия»?
Сессия
- это сеанс связи между клиентом и сервером, устанавливаемый на определенное время. Сеанс устанавливается непосредственно между клиентом
и веб-сервером
в момент получения первого запроса к веб-приложению
. Каждый клиент устанавливает с сервером свой собственный сеанс, который сохраняется до окончания работы с приложением.👍25🔥4☃2
Принцип подстановки Барбары Лисков - SOLID в деталях
Третий ролик серии «SOLID в деталях» посвящён принципу подстановки Барбары Лисков (Liskov Substitution Principle; LSP).
В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Третий ролик серии «SOLID в деталях» посвящён принципу подстановки Барбары Лисков (Liskov Substitution Principle; LSP).
В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
YouTube
Принцип подстановки Барбары Лисков - SOLID в деталях
Третий ролик серии «SOLID в деталях» посвящён принципу подстановки Барбары Лисков (Liskov Substitution Principle; LSP).
В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.…
В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.…
👍14🔥3
Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.
Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют
Простой ключ
состоит из одного атрибута (поля). Составной - из двух и более.Потенциальный ключ
- простой или составной ключ, который уникально идентифицирует каждую запись набора данных. При этом потенциальный ключ должен обладать критерием неизбыточности: при удалении любого из полей набор полей перестает уникально идентифицировать запись.Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют
альтернативными
.👍14🔥2❤1
За 6 месяцев обучения:
- Научишься создавать современные java-приложения
- Поймешь основы функционирования JVM (сборка мусора, byteCode)
- Освоишь приемы применения многопоточности
- Напишите выпускной проект на любую тему под наставничеством преподавателя
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2😁1
Догоняя уходящий поезд хайпа по релизу 21 версии платформы Java, автор рассказывает о том, что нового и интересного на его взгляд появилось в языке программирования и на платформе Java.
В этом ролике он не преследует целью рассказать в подробностях вообще обо всех изменениях, остановится только на наиболее значимых и важных для большинства разработчиков с его точки зрения.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Что нового в JDK 21
Догоняя уходящий поезд хайпа по релизу 21 версии платформы Java, рассказываю о том, что нового и интересного на мой взгляд появилось в языке программирования и на платформе Java.
В этом ролике я не преследую целью рассказать в подробностях вообще обо всех…
В этом ролике я не преследую целью рассказать в подробностях вообще обо всех…
👍23❤3🔥3