Please open Telegram to view this post
VIEW IN TELEGRAM
😁23❤1👍1💯1
JMeter — это инструмент для нагрузочного тестирования, который позволяет имитировать большое количество пользователей и запросов для оценки производительности веб-приложений и серверов.
Он идеально подходит для проверки стабильности приложения под нагрузкой, анализа времени отклика и поведения системы в условиях высоких нагрузок. JMeter можно использовать как для тестирования REST API, так и для сложных сценариев с использованием UI.
Преимущества JMeter:
— Поддержка различных типов тестирования: HTTP, FTP, баз данных и WebSocket.
— Гибкость при настройке нагрузки (параметры виртуальных пользователей, сценарии).
— Интеграция с CI/CD (Jenkins, GitLab CI).
— Расширенные отчёты с графиками и статистикой.
— Плагинная система для расширения функционала.
— Возможность интеграции с другими инструментами для мониторинга и анализа (например, Grafana).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2👍2
Виртуальные потоки вызывают много разногласий в кругах джавистов. Разобраться что к чему поможет Владимир Красильщик, pragmatic Java Developer, 01.tech. 30 августа он выступит на JVM Day в штаб-квартире Т-Банка. Расскажет про инженерный подход, основанный на измерениях и про реализации на платформенных и виртуальных потоках с ReentrantLock, через synchronized-секцию и на акторной модели, реализованной на vert.x
▪️На мероприятии также покажут демоверсии продуктов Т-Банка и других компаний, написанных на Java и Scala.
▪️Половина собранных средств Т-Банк планирует направить региональным вузам, которые готовят начинающих ИТ-специалистов. На сайте феста речь про КФУ (ИТИС) в Казани, УрФУ в Екатеринбурге и факультет вычислительной техники РГРТУ в Рязани. Так организаторы хотят поддержать развитие ИТ не только в столице, но и в других городах страны.
Для прохода на JVM Day необходимо заранее зарегистрироваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
Нужно отслеживать, кто что сделал в приложении: создал пользователя, обновил заказ или удалил файл? Реализуйте модуль аудита, который не просто логирует в консоль, а сохраняет структурированные события в базу или брокер. AI поможет с шаблоном, который можно встроить в любой микросервис.
📝 Промпт:
Generate a reusable audit logging module for a Spring Boot 3 application.
— Use Spring AOP to intercept service-layer methods annotated with @Auditable.
— Capture method name, parameters, execution time, and authenticated user details.
— Log audit events asynchronously to Kafka with a custom AuditEvent structure.
— Use JSON for message serialization and include correlation IDs in headers.
— Include fallback to local file logging in case of Kafka failure.
— Add integration with Spring Security to extract user identity from the context.
— Write unit and integration tests using JUnit 5 and Testcontainers.
— Добавьте
Implement audit event persistence to PostgreSQL using Spring Data JPA
, чтобы хранить критические события даже при сбоях брокера.— Добавьте
Include context metadata (request IP, user-agent) using ServletRequest attributes
, чтобы повысить трассируемость действий пользователя.— Добавьте
Add audit dashboard using Spring Boot Admin and Grafana
, чтобы визуализировать действия и аномалии в реальном времени.— Добавьте
Integrate OpenTelemetry spans around auditing logic
, чтобы отслеживать поток аудита между микросервисами на уровне трассировки.Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2❤1
🎧 Что послушать — #подкаст
🔹 Javaswag #77
Дата выпуска: 21 мая 2025
Ведущий: Дмитрий Волыхин
Гость: Андрей Бреслав, создатель Kotlin
Продолжительность: примерно 1 час 53 минуты
В выпуске обсуждают историю создания Kotlin, его эволюцию и особенности, экосистему и проблемы, мультиплатформенный подход, влияние Java, ИИ и инновации — всё честно, без прикрас.
🔹 Ключевые темы выпуска
00:00 — История создания Kotlin
10:11 — Разработка языка
14:40 — Этапы развития языка
19:16 — Влияние Java
23:44 — Неоднозначность грамматики
30:35 — Дженерики
35:57 — Успех Kotlin
41:27 — Проблемы экосистемы
46:30 — Мультиплатформа
54:05 — Выгорание
01:01:03 — Работа с языками программирования
01:10:30 — AI и его влияние
01:18:53 — Язык программирования следующего поколения
01:20:26 — Kotlin и Java: сравнение
01:28:45 — Swing и мультиплатформа
01:31:55 — Swift и Objective‑C
01:34:41 — Непопулярное мнение
01:39:30 — Будущее AI
01:42:52 — Инновации
01:45:09 — Проблемы амбициозных идей
01:46:28 — Инновации в корпорациях и стартапах
01:50:21 — Продуктивность
🔗 Слушать выпуск
🐸 Библиотека джависта #буст
🔹 Javaswag #77
Дата выпуска: 21 мая 2025
Ведущий: Дмитрий Волыхин
Гость: Андрей Бреслав, создатель Kotlin
Продолжительность: примерно 1 час 53 минуты
В выпуске обсуждают историю создания Kotlin, его эволюцию и особенности, экосистему и проблемы, мультиплатформенный подход, влияние Java, ИИ и инновации — всё честно, без прикрас.
🔹 Ключевые темы выпуска
00:00 — История создания Kotlin
10:11 — Разработка языка
14:40 — Этапы развития языка
19:16 — Влияние Java
23:44 — Неоднозначность грамматики
30:35 — Дженерики
35:57 — Успех Kotlin
41:27 — Проблемы экосистемы
46:30 — Мультиплатформа
54:05 — Выгорание
01:01:03 — Работа с языками программирования
01:10:30 — AI и его влияние
01:18:53 — Язык программирования следующего поколения
01:20:26 — Kotlin и Java: сравнение
01:28:45 — Swing и мультиплатформа
01:31:55 — Swift и Objective‑C
01:34:41 — Непопулярное мнение
01:39:30 — Будущее AI
01:42:52 — Инновации
01:45:09 — Проблемы амбициозных идей
01:46:28 — Инновации в корпорациях и стартапах
01:50:21 — Продуктивность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29❤5👍5🔥2🥱1
🧠 Как выжать максимум из резюме на HeadHunter
Хорошее резюме — это только начало. Даже если вы профи, в поиске работы многое решает видимость анкеты в выдаче. А вот тут начинается борьба за внимание рекрутера.
🚧 Проблема: сотни схожих резюме. Ваше может просто затеряться.
🎯 Что помогает реально продвинуть резюме вверх:
— Автоподнятие и ручные апдейты
— Правильное имя файла резюме
— Ключевые слова, которых ищут HR
— Механика «откликов + запросы»
— И даже… использование разных браузеров (да-да)
🔗 Все 9 приёмов с примерами — в статье.
🐸 Библиотека джависта #буст
Хорошее резюме — это только начало. Даже если вы профи, в поиске работы многое решает видимость анкеты в выдаче. А вот тут начинается борьба за внимание рекрутера.
🚧 Проблема: сотни схожих резюме. Ваше может просто затеряться.
🎯 Что помогает реально продвинуть резюме вверх:
— Автоподнятие и ручные апдейты
— Правильное имя файла резюме
— Ключевые слова, которых ищут HR
— Механика «откликов + запросы»
— И даже… использование разных браузеров (да-да)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👏1🤔1
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
🔹Benchmarking and profiling Java with JMH
Статья объясняет, как JMH помогает измерять производительность кода, выявлять узкие места и оптимизировать приложения, предоставляя практические примеры и советы по его применению.
🔹Kotlin 2.2.0 Released
Вышел релиз Kotlin 2.2.0, содержащий исправления багов и значимые изменения. Подробнее в статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом запуска приложения?
Anonymous Quiz
9%
TransactionRequiredException
10%
BeanCreationException
47%
Пользователь будет создан, но метод выполнится без транзакции
3%
Ошибка компиляции
31%
Пользователь будет создан, транзакция успешно откроется и закроется
👍4🔥2❤1👏1
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
Java-разработчик (Логистическая платформа) — 300 000 — 490 000 ₽ — гибрид (Санкт-Петербург, Москва)
Junior Java разработчик — до 100 000 ₽ — гибрид (Москва)
Java-разработчик — до 600 000₽ — удалёнка
Middle Java Developer — до 270 000 ₽ — удалёнка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
Принципе подстановки Лискова нередко трактуют слишком формально или упрощенно. Простой ответ: LSP требует, чтобы объекты подклассов могли заменять объекты базового класса без изменения поведения программы.
Однако, давайте разберем это более подробно.
🔹 Что на самом деле означает LSP?
В классическом виде (по Барбаре Лисков):
Объекты программы должны быть заменяемы экземплярами их подтипов без изменения правильности работы программы.
Это значит, что любой класс-наследник должен вести себя так же, как и его родитель, не нарушая логики работы программы. Программа должна продолжать работать корректно, если один объект заменяется другим, даже если их реализации отличаются.
🔹 Часто встречаемые ошибки трактования LSP
1. Подмена функционала
Проблемы могут возникнуть, если подкласс значительно меняет поведение метода родительского класса. Например, если метод в подклассе требует дополнительных условий или приводит к ошибкам, это нарушает принцип.
class Bird {
void fly() { ... }
}
class Chicken extends Bird {
@Override
void fly() {
throw new UnsupportedOperationException("Chicken can't fly");
}
}
Этот пример нарушает LSP, потому что подкласс не может выполнять все действия родителя.
2. Нарушение инвариантов
Если подкласс добавляет новые ограничения или меняет условия, которые предполагались в родительском классе, это может привести к неожиданным результатам. Например, если родительский класс предполагает, что его методы могут работать в определённых диапазонах значений, а в подклассе эти значения не допустимы, это также нарушает принцип.
class Rectangle {
int width, height;
void setWidth(int width) { this.width = width; }
void setHeight(int height) { this.height = height; }
}
class Square extends Rectangle {
@Override
void setWidth(int width) {
this.width = this.height = width;
}
@Override
void setHeight(int height) {
this.height = this.width = height;
}
}
В этом примере подкласс Square изменяет логику работы с размерами, нарушая ожидаемое поведение родительского класса.
🔹 Что на практике важно понимать о LSP
— Соблюдение контракта родительского класса
Подклассы должны соблюдать контракт родительского класса, а не изменять его. Это означает, что если родительский класс предполагает выполнение определённых операций, подкласс не должен их нарушать.
— Логика не должны быть нарушена, лишь расширена
Подклассы должны только дополнять, а не изменять поведение родительского класса. Это должно обеспечивать предсказуемость программы.
— Наследование — это не просто копирование, а расширение возможностей
Правильное наследование позволяет создавать более специфичные классы без нарушения логики родительского класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥3
Мощное завершение лета — конференция JVM Day 30 августа.
Приглашают опытных разработчиков — прокачать навыки и завести полезные знакомства. Часть стоимости билетов пойдет на поддержку региональных вузов.
Основная программа состоит из трех секций: Java, Scala и Backend. Днем участников ждут доклады спикеров из Т-Банка, Яндекса, 2ГИС, Squad, 01. tech, а вечером — афтепати.
Купить билеты до 25 июля по старой цене можно тут.
До встречи в штаб-квартире Т-Банка.
Приглашают опытных разработчиков — прокачать навыки и завести полезные знакомства. Часть стоимости билетов пойдет на поддержку региональных вузов.
Основная программа состоит из трех секций: Java, Scala и Backend. Днем участников ждут доклады спикеров из Т-Банка, Яндекса, 2ГИС, Squad, 01. tech, а вечером — афтепати.
Купить билеты до 25 июля по старой цене можно тут.
До встречи в штаб-квартире Т-Банка.