Инструмент недели: Kubetail
Разбирать логи в Kubernetes бывает непросто: приходится переключаться между подами, запускать
Kubetail open-source инструмент для просмотра логов Kubernetes в реальном времени. Он собирает логи из нескольких подов в одном интерфейсе, упрощая отладку приложений.
Что умеет:
• Показывать логи нескольких подов и контейнеров одновременно.
• Обновлять временную шкалу при появлении, остановке и замене подов.
• Фильтровать логи по временному диапазону, зоне доступности, архитектуре CPU и узлу.
• Переключаться между несколькими кластерами через десктопное приложение.
Полезный инструмент для тех, кто работает с Kubernetes и хочет тратить меньше времени на поиск ошибок в логах.
GitHub: https://github.com/kubetail-org/kubetail
👉 Java Portal
Разбирать логи в Kubernetes бывает непросто: приходится переключаться между подами, запускать
kubectl logs и искать причину ошибки среди множества реплик приложения.Kubetail open-source инструмент для просмотра логов Kubernetes в реальном времени. Он собирает логи из нескольких подов в одном интерфейсе, упрощая отладку приложений.
Что умеет:
• Показывать логи нескольких подов и контейнеров одновременно.
• Обновлять временную шкалу при появлении, остановке и замене подов.
• Фильтровать логи по временному диапазону, зоне доступности, архитектуре CPU и узлу.
• Переключаться между несколькими кластерами через десктопное приложение.
Полезный инструмент для тех, кто работает с Kubernetes и хочет тратить меньше времени на поиск ошибок в логах.
GitHub: https://github.com/kubetail-org/kubetail
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
💡 Размещай бизнес-логику в сервисе с
✅ Один метод сервиса может безопасно вызывать несколько репозиториев в рамках одной транзакции.
✅ Все операции с БД фиксируются вместе при успехе или вместе отменяются при ошибке.
✅ Контроллеры остаются простыми: проверяют входные данные и вызывают нужный сервис.
👉 Java Portal
@Transactional, а не в контроллере.✅ Один метод сервиса может безопасно вызывать несколько репозиториев в рамках одной транзакции.
✅ Все операции с БД фиксируются вместе при успехе или вместе отменяются при ошибке.
✅ Контроллеры остаются простыми: проверяют входные данные и вызывают нужный сервис.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Приглашаем на Java Jam — бесплатный митап ЮMoney для бэкенд-разработчиков 🔥
✅ 29 октября, четверг, 19:00 (мск) — приходите на митап в Санкт-Петербурге или смотрите трансляцию.
Спикеры из ЮMoney и Сбера выступят с докладами:
🟣 Один апгрейд — больше сотни сервисов: как мы обновляем Java-стек в компании
Обсудим, как обновить Gradle, Spring Boot и Java в 120+ компонентах, не останавливая разработку. Расскажем, как выстраивали процессы на протяжении этого времени: от порядка действий и массовых патчей до взаимодействия с командами и решения трудностей, с которыми столкнулись во время последнего обновления.
🟣 Как я автоматизировал свой проект — и всё сломал
Разберём, как выстроить автоматизацию в проекте с помощью ИИ и какие шишки можно набить на пути. Поговорим, как работает длинный контекст в моделях и как организовать работу с учётом этих особенностей.
🟣 Откатить нельзя оставить: мониторинг выкладки релиза на основе Sentry
Ошибки случаются. Узнаем, какие из них появляются или возникают чаще после последнего релиза — и достаточно ли этого, чтобы принять решение об откате.
Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Java Jam👈
Спикеры из ЮMoney и Сбера выступят с докладами:
Обсудим, как обновить Gradle, Spring Boot и Java в 120+ компонентах, не останавливая разработку. Расскажем, как выстраивали процессы на протяжении этого времени: от порядка действий и массовых патчей до взаимодействия с командами и решения трудностей, с которыми столкнулись во время последнего обновления.
Разберём, как выстроить автоматизацию в проекте с помощью ИИ и какие шишки можно набить на пути. Поговорим, как работает длинный контекст в моделях и как организовать работу с учётом этих особенностей.
Ошибки случаются. Узнаем, какие из них появляются или возникают чаще после последнего релиза — и достаточно ли этого, чтобы принять решение об откате.
Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Java Jam
Please open Telegram to view this post
VIEW IN TELEGRAM
В Java Generics не работают с примитивными типами
Обобщения (Generics) в Java работают с ссылочными типами, но не с примитивами.
Дело в том, что Java реализует Generics через type erasure (стирание типов), а
Поэтому Java использует классы-обёртки:
Автоупаковка (autoboxing) позволяет работать с ними почти так же, как с примитивами:
Java автоматически преобразует значения
Главное: Generics работают с объектами, а примитивы в Java объектами не являются.
👉 Java Portal
Обобщения (Generics) в Java работают с ссылочными типами, но не с примитивами.
List<Integer> nums = new ArrayList<>(); // ✅
List<int> nums = new ArrayList<>(); // ❌
Дело в том, что Java реализует Generics через type erasure (стирание типов), а
int, double и boolean — примитивные типы, а не ссылочные.Поэтому Java использует классы-обёртки:
int → Integerdouble → Doubleboolean → BooleanАвтоупаковка (autoboxing) позволяет работать с ними почти так же, как с примитивами:
List<Integer> nums = List.of(1, 2, 3);
Java автоматически преобразует значения
int в объекты Integer.Главное: Generics работают с объектами, а примитивы в Java объектами не являются.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Java Tip: используйте
✅ Безопаснее работа с
✅ Код понятнее и намерения разработчика очевиднее
✅ Меньше риска получить
👉 Java Portal
Optional, чтобы избежать лишних проверок на nullOptional<String> name = Optional.ofNullable(getName());
name.ifPresent(System.out::println);
Optional позволяет явно обозначить, что значение может отсутствовать, и безопасно обработать этот случай.✅ Безопаснее работа с
null✅ Код понятнее и намерения разработчика очевиднее
✅ Меньше риска получить
NullPointerExceptionPlease open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
❤1
💡 Spring Boot Tip: генерируйте Swagger-документацию автоматически с помощью springdoc-openapi
Добавьте
✅ Подключите starter-зависимость — библиотека сама просканирует эндпоинты.
✅ Откройте
✅ Экспортируйте спецификацию OpenAPI в JSON или YAML для клиентов и API-шлюзов.
👉 Java Portal
Добавьте
springdoc-openapi в проект, и библиотека автоматически создаст документацию API на основе ваших контроллеров.✅ Подключите starter-зависимость — библиотека сама просканирует эндпоинты.
✅ Откройте
/swagger-ui.html, чтобы получить интерактивный интерфейс для тестирования API.✅ Экспортируйте спецификацию OpenAPI в JSON или YAML для клиентов и API-шлюзов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4