JMH — это фреймворк для точного микробенчмаркинга в Java
Он предназначен для создания тестов производительности, которые помогают анализировать, как различные изменения в коде влияют на его эффективность.
▪️ измерение времени выполнения на уровне микроопераций;
▪️ поддержка сложных случаев оптимизации JVM;
▪️ вывод подробной статистики;
▪️ возможность настройки параметров теста;
▪️ точные результаты без влияния JVM-оптимизаций.
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3❤1👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22❤5👍3🥱1💯1
Testcontainers — это Java-библиотека, которая позволяет запускать Docker-контейнеры прямо из тестов.
Забудьте про моки базы данных, embedded PostgreSQL и H2 "вместо настоящей БД" — тестируйте на реальных зависимостях.
Библиотека предоставляет лёгкий API для управления жизненным циклом контейнеров: автоматический запуск перед тестом, проброс портов, ожидание готовности сервиса и гарантированная очистка после завершения.
Больше не нужно поднимать локальный PostgreSQL, настраивать Kafka кластер или держать Redis на машине разработчика — всё запускается изолированно в Docker и удаляется после тестов.
🔹 Ключевые моменты
▪️ Поддержка 50+ готовых модулей: PostgreSQL, MySQL, MongoDB, Redis, Kafka, Elasticsearch, Localstack и др.
▪️ Можно использовать любой Docker-образ через GenericContainer.
▪️ Автоматическая очистка — контейнеры удаляются после тестов.
▪️ Реальная изоляция — каждый тест может иметь свежее окружение.
▪️ Интеграция с JUnit 5, Spring Boot Test, Spock.
🔹 Под капотом
Testcontainers общается с Docker через docker-java клиент. При запуске теста библиотека:
1. Создаёт контейнер с нужным образом.
2. Ждёт готовности (health check или проверка порта).
3. Пробрасывает рандомный порт на localhost.
4. Передаёт connection URL в тест.
5. После теста останавливает и удаляет контейнер.
Есть механизм Ryuk (контейнер-уборщик) — он следит, что все тестовые контейнеры будут убиты, даже если JVM упала.
🔹 Подводные камни
— Нужен Docker
— Медленнее unit-тестов
— Потребление ресурсов
— Проблемы с сетью на CI
— Не забывайте фиксировать версии образов
— Интеграционные тесты с БД (JPA, JDBC, jOOQ);
— Тестирование Kafka consumers/producers;
— Проверка работы с Redis, Elasticsearch;
— E2E тесты с реальным окружением;
— Локальная разработка (docker-compose замена);
— Тестирование миграций БД (Flyway, Liquibase);
— Проверка совместимости с разными версиями зависимостей.
❌ Не подходит:
— Unit-тесты (слишком тяжело);
— Когда Docker недоступен;
— Performance-тесты (overhead на контейнеры);
— Простые CRUD операции (можно обойтись H2);
— CI с ограниченными ресурсами.
🔧 Бонус-трюк: используйте @ServiceConnection в Spring Boot 3.1+ — он автоматически сконфигурирует DataSource из TestContainer без ручного прописывания URL.
#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 AI сейчас на пике — и математика снова в центре внимания.
Одна из топовых экспертов, кто сегодня участвует на AIJ, преподаёт у нас.
Мария Тихонова — PhD по Computer Science, руководитель направления в SberAI и доцент ВШЭ. Она работает с LLM каждый день и объясняет математику так, как она реально применяется в AI.
🔥 Экспресс-курс «Математика для DS» — 8 недель, чтобы закрыть пробелы и уверенно проходить собесы.
🎁 До 30 ноября:
→ скидка 40%
→ курс «Школьная математика» в подарок при оплате
→ бесплатный тест на знание основ математики
👉 Записаться на курс
«На конференции AIJ только и разговоров, что о AI и математике. Ведь в основе генеративных моделей Gen AI лежит фундаментальная математика.»
Одна из топовых экспертов, кто сегодня участвует на AIJ, преподаёт у нас.
Мария Тихонова — PhD по Computer Science, руководитель направления в SberAI и доцент ВШЭ. Она работает с LLM каждый день и объясняет математику так, как она реально применяется в AI.
🔥 Экспресс-курс «Математика для DS» — 8 недель, чтобы закрыть пробелы и уверенно проходить собесы.
🎁 До 30 ноября:
→ скидка 40%
→ курс «Школьная математика» в подарок при оплате
→ бесплатный тест на знание основ математики
👉 Записаться на курс
👏2👾2😁1
Помните, как это было? Кофе, зачетка и возможность просто учиться без спринтов и задач
29 ноября в 16:00 будет Back to Uni — встреча-ностальгия в кампусе Центрального университета для ИТ-сообщества.
Что вас ждет:
— Пары от преподавателей ЦУ — применять знания не обязательно, будет просто интересно.
— Возможность узнать, как и зачем ИТ-специалисту преподавать в вузе, даже если нет опыта или страшно начать.
— Студенческие клубы, разговоры по душам в коридорах и та самая атмосфера, где можно просто вдохновляться.
Пары будут вести руководитель отдела прикладного ML в AI-центре Т-Банка Андрей Мельников, руководитель аналитики международного Яндекс Поиска Роман Васильев, к.м.н., руководитель направления исследований «Мышление и AI» в лаборатории нейронаук и поведения человека Сбера Яна Венерина и другие эксперты.
Это бесплатно. Приходите с однокурсниками — ностальгировать вместе.
Регистрируйтесь по ссылке тут!
29 ноября в 16:00 будет Back to Uni — встреча-ностальгия в кампусе Центрального университета для ИТ-сообщества.
Что вас ждет:
— Пары от преподавателей ЦУ — применять знания не обязательно, будет просто интересно.
— Возможность узнать, как и зачем ИТ-специалисту преподавать в вузе, даже если нет опыта или страшно начать.
— Студенческие клубы, разговоры по душам в коридорах и та самая атмосфера, где можно просто вдохновляться.
Пары будут вести руководитель отдела прикладного ML в AI-центре Т-Банка Андрей Мельников, руководитель аналитики международного Яндекс Поиска Роман Васильев, к.м.н., руководитель направления исследований «Мышление и AI» в лаборатории нейронаук и поведения человека Сбера Яна Венерина и другие эксперты.
Это бесплатно. Приходите с однокурсниками — ностальгировать вместе.
Регистрируйтесь по ссылке тут!
🎧 Что послушать — #подкаст Javaswag #82
🔹 Ведущий: Дмитрий Волыхин
🔹 Гость: Владимир Ситников
🔹 Продолжительность: 2 часа 6 минут
Владимир рассказывает о перфоманс-инжиниринге, роли нагрузочного тестирования, создании собственного профайлера, работе с Java Flight Recorder и Async Profiler, а также делится опытом управления PR в Open Source проектах и участия в конференциях.
🔹 Ключевые темы выпуска
02:31 — Перфоманс-инжиниринг
07:40 — Роль нагрузочного тестирования
29:46 — Кэширование запросов в Oracle и Postgres
35:42 — Платная поддержка Spring
38:17 — Создание собственного профайлера
56:13 — Оптимизация записи метрик
58:18 — Java Flight Recorder и Async Profiler
01:38:00 — Управление PR и их обсуждение
01:45:02 — Доклады и конференции
🔗 Слушать выпуск
🐸 Библиотека джависта
#DevLife
🔹 Ведущий: Дмитрий Волыхин
🔹 Гость: Владимир Ситников
🔹 Продолжительность: 2 часа 6 минут
Владимир рассказывает о перфоманс-инжиниринге, роли нагрузочного тестирования, создании собственного профайлера, работе с Java Flight Recorder и Async Profiler, а также делится опытом управления PR в Open Source проектах и участия в конференциях.
🔹 Ключевые темы выпуска
02:31 — Перфоманс-инжиниринг
07:40 — Роль нагрузочного тестирования
29:46 — Кэширование запросов в Oracle и Postgres
35:42 — Платная поддержка Spring
38:17 — Создание собственного профайлера
56:13 — Оптимизация записи метрик
58:18 — Java Flight Recorder и Async Profiler
01:38:00 — Управление PR и их обсуждение
01:45:02 — Доклады и конференции
#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏1
🎉 Большая распродажа Proglib Academy — минус 40% на всё!
📚 Выбирай свой курс:
▫️ «Экспресс-курс по математике для DS» — получи фундамент для построения успешной карьеры в Data Science
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «Специалист по ИИ» или «AI-агенты», или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
▫️ «Архитектуры и шаблоны проектирования» — чтобы писать гибкий, масштабируемый код как мидл+ разработчик.
▫️ «Основы IT для непрограммистов» — для тех, кто хочет понимать, как устроены технологии, не будучи разработчиком.
🎁 Бонусы ноября:
▫️ Розыгрыш MacBook Pro 14 — купи любой курс и пройди 2 недели обучения до 30 ноября.
▫️ Бесплатный тест по математике — за 5 минут покажет, какие темы стоит подтянуть перед DS.
👉 Выбрать курс со скидкой
📚 Выбирай свой курс:
▫️ «Экспресс-курс по математике для DS» — получи фундамент для построения успешной карьеры в Data Science
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «Специалист по ИИ» или «AI-агенты», или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
▫️ «Архитектуры и шаблоны проектирования» — чтобы писать гибкий, масштабируемый код как мидл+ разработчик.
▫️ «Основы IT для непрограммистов» — для тех, кто хочет понимать, как устроены технологии, не будучи разработчиком.
🎁 Бонусы ноября:
▫️ Розыгрыш MacBook Pro 14 — купи любой курс и пройди 2 недели обучения до 30 ноября.
▫️ Бесплатный тест по математике — за 5 минут покажет, какие темы стоит подтянуть перед DS.
👉 Выбрать курс со скидкой
Вместо того чтобы копировать чужие манифесты с GitHub, вы настраиваете полноценный production-ready деплоймент через промпт.
Оптимизированный Dockerfile с multi-stage сборкой, Deployment с resource limits и health probes, Service Discovery через Kubernetes DNS, Ingress с TLS терминацией, автоскейлинг через HPA, NetworkPolicy для изоляции, RBAC для безопасности, и observability через Prometheus/Grafana.
📝 Промпт:
Generate a production-ready Spring Boot 3 application deployment to Kubernetes with enterprise-grade configuration:
— Create optimized multi-stage Dockerfile: Eclipse Temurin JDK 21, layered JAR, non-root user, distroless runtime image, minimal attack surface.
— Configure Kubernetes Deployment: resource requests/limits (CPU/memory), pod anti-affinity, PodDisruptionBudget, rolling update strategy with maxSurge/maxUnavailable, replica count.
— Implement health probes: liveness (/health/liveness), readiness (/health/readiness), startup probe for slow apps, custom health indicators, initial delays and timeouts.
— Set up configuration management: ConfigMaps for application.yml, Secrets for credentials, environment-specific overlays, volume mounts, Spring Cloud Kubernetes Config integration.
— Configure Service and Ingress: ClusterIP Service, NGINX Ingress with path/host routing, TLS termination via cert-manager, rate limiting, CORS policies.
— Implement RBAC: ServiceAccount, Role with least-privilege, RoleBinding, pod security context (runAsNonRoot, readOnlyRootFilesystem).
— Set up autoscaling: HorizontalPodAutoscaler based on CPU/memory/custom metrics, VerticalPodAutoscaler, scaling thresholds.
— Add NetworkPolicy: ingress/egress rules, namespace isolation, pod selector-based restrictions, deny-all default.
— Configure observability: Prometheus ServiceMonitor, Grafana dashboards, Spring Boot Actuator metrics, distributed tracing with Jaeger/Tempo, Loki for logs.
— Implement graceful shutdown: SIGTERM handling, preStop hooks, connection draining, termination grace period (30s+).
— Add secrets management: External Secrets Operator, HashiCorp Vault, AWS/GCP Secrets Manager CSI drivers.
— Create Helm chart: values.yaml with environment configs, templates for all resources, chart dependencies, deployment notes.
— Add Kustomize setup: base manifests, environment-specific overlays, ConfigMap generators.
— Configure init containers: database migrations (Flyway), wait-for-dependencies, secret fetching.
— Implement GitOps: ArgoCD Application manifest, sync policies, health checks, automated rollback.
Deliverables:
— Dockerfile with multi-stage build
— kubernetes/*.yaml (deployment, service, ingress, configmap, secret, hpa, networkpolicy)
— helm/ chart with templates and values
— kustomize/ with base and overlays
— prometheus-servicemonitor.yaml
— grafana-dashboard.json
— README with deployment guide and troubleshooting
— настроить service mesh (Istio) с mTLS;
— добавить canary deployments с Argo Rollouts;
— реализовать policy enforcement через Kyverno;
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2👏1🌚1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26💯3👍1👾1
☕️ Java — это не только про фабрики бинов
Принято считать, что джавист — это суровый энтерпрайз-боец. Но на деле хороший бэкендер — это гибкий специалист, который может масштабироваться в тимлида или архитектора. Одно из главных условий такого роста — постоянный приток новой информации и анализ чужого опыта.
Вместо, того чтобы искать релевантный контент по всему тг, загляните в папку, где собраны несколько авторских каналов. Можно узнать много полезностей не только про Java, но и про актуальные инструменты и смежные технологии. Пригодится для вашего профессионального роста.
Принято считать, что джавист — это суровый энтерпрайз-боец. Но на деле хороший бэкендер — это гибкий специалист, который может масштабироваться в тимлида или архитектора. Одно из главных условий такого роста — постоянный приток новой информации и анализ чужого опыта.
Вместо, того чтобы искать релевантный контент по всему тг, загляните в папку, где собраны несколько авторских каналов. Можно узнать много полезностей не только про Java, но и про актуальные инструменты и смежные технологии. Пригодится для вашего профессионального роста.
❤2👍1🔥1