Чашечка Java
Открыть в Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Больше8 439
Подписчики
-724 часа
-227 дней
-6430 день
Архив постов
8 439
Изучаю мок-сервера и пишу свой
Однажды передо мной возник некий «чёрный ящик» — Шина, которая отвечает за преобразование данных из внешнего формата во внутренний. Какие внутри происходят преобразования, какие процессы, как идут запросы, потому что они очень большие, — непонятно. Логи есть, но они ограничены, к тому же часто запросы не логируются, потому что некоторые данные пользователей нельзя показывать. В попытках решить проблему и возник мок-сервер, как решение задачи понять, как работает «ящик», на каких принципах, и понять, правильно ли он работает.
План статьи:
— Проблематика черного ящика и почему его вообще нужно вскрывать.
— Варианты решения проблемы.
— Подробно про мок-сервер, как один из вариантов решения проблемы: зачем нужен, в чём польза и как выбрать между готовыми и самописными решениям.
— Как написать свой мок-сервер.
— Посмотрим как он работает на реальной задаче.
— Закрепляем материал в блоке «Польза мок-сервера».
Читать: https://habr.com/ru/companies/alfa/articles/749890/?utm_campaign=749890
@a_cup_of_java | Другие наши каналы
8 439
Эффективное и комплексное устранение утечек памяти в Android
Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor.
Читать дальше
Читать: https://habr.com/ru/articles/749568/?utm_campaign=749568
@a_cup_of_java | Другие наши каналы
8 439
Особенности разработки автотестов различными инструментами, а также статистика по использованию
Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.
Читать: https://habr.com/ru/articles/749322/?utm_campaign=749322
@a_cup_of_java | Другие наши каналы
8 439
Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR
В этой статье я не буду описывать как создать плагин для IntelliJ с поддержкой %lang_name% с нуля. Кроме официальной документации и туториала от JetBrains в сети есть множество статей и примеров. На Хабре тоже есть пара весьма подробных статей от @pyltsinm. Фокус будет на разработке плагина с использованием ANTLR и моём опыте в этом нелёгком деле.
Примером в этой статье будет WebCalm - плагин для IntelliJ с поддержкой JavaScript и CSS, который я сделал с помощью ANTLR.
Читать: https://habr.com/ru/articles/748622/?utm_campaign=748622
@a_cup_of_java | Другие наши каналы
8 439
Работа с асинхронными операциями с помощью Kotlin Coroutines
Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines.
Сегодня я хочу углубиться в Kotlin Coroutines и разобрать их основные компоненты. Мы рассмотрим Kotlin Coroutines, предполагая, что у вас уже есть базовое понимание языка Kotlin и некоторый опыт разработки Android-приложений. Мы изучим основные концепции Kotlin Coroutines, способы работы с асинхронными операциями, управление потоком выполнения, обработку ошибок и исключений, а также многое другое.
Моя цель — помочь вам овладеть Kotlin Coroutines и научиться использовать их для упрощения и оптимизации вашего кода, обеспечения более гладкого пользовательского опыта и более эффективного управления асинхронными операциями. Приятного прочтения, мы начинаем!
Читать: https://habr.com/ru/articles/747858/?utm_campaign=747858
@a_cup_of_java | Другие наши каналы
8 439
Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка
Так ли на самом деле работает процесс загрузки классов, как его описывает Wikipedia и Baeldung? ClassNotFoundException — это откуда и чье? Какие виды загрузчиков классов актуальны в Java 20?
Объясняем подпроцесс загрузки, из системы Java ClassLoader, на приятных Excalidraw диаграммах, со ссылками на оригинальные источники.
Читать: https://habr.com/ru/articles/748758/?utm_campaign=748758
@a_cup_of_java | Другие наши каналы
8 439
SpringBoot и вебсокеты: едем в кластер
Всем привет! В этой статье я бы хотел затронуть тему горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений - наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании.
Stateless-сервисам все равно на какой из множества инстансов попал очередной запрос, или кто именно вычитал сообщение из очереди. Но когда на серверной стороне возникает понятие клиентской сессии, все запросы, связанные с этим клиентом, должен обрабатывать один и тот же инстанс. Либо должна быть возможность передать эту сессию на другой инстанс. Сложность реализации этого требования варьируется от "добавить одну строчку в конфиг балансировщика" до "написать подсистему мониторинга топологии сервиса и роутинга запросов, сложность которой может превышать сложность основного приложения". К счастью, для решения стандартных задач, как правило, существуют стандартные инструменты. Давайте посмотрим, что за инструменты используются при масштабировании вебсокетных приложений, написанных на SpringBoot.
Читать: https://habr.com/ru/articles/743252/?utm_campaign=743252
@a_cup_of_java | Другие наши каналы
8 439
Строим свой SSO. Часть 3: Redis, Swagger, Vue.js
Всем привет, мы продолжаем строить собственный SSO Server. Сегодня мы разберем подключение Redis и Swagger к нашему проекту. А также построим собственную, красивую форму аутнетификации, используя VueJS.
Читать: https://habr.com/ru/articles/748584/?utm_campaign=748584
@a_cup_of_java | Другие наши каналы
8 439
Работа с единицами системы СИ на Java
Библиотека по работе с единица системы СИ KotUniL, разработанная изначально на Kotlin, недавно сделана мультиплатформенной. В частности, она доступна теперь и на Java и JavaScript.
Читать: https://habr.com/ru/articles/748248/?utm_campaign=748248
@a_cup_of_java | Другие наши каналы
8 439
Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?
В июле в офисе РСХБ-Интех (технологической дочки Россельхозбанка) состоялся бесплатный митап для Java-разработчиков — RSHB Backend Dev Meetup. Обсудили Kotlin, Go, маппинг и разные аспекты бэкэнд-разработки. В числе докладчиков выступал Иван Кочергин, руководитель центра собственной разработки РСХБ-Интех. Иван более 10 лет занимается разработкой на Java, последние три года — на Kotlin. В своем докладе он сравнил, на чем лучше писать микросервисы в банке: Java, Kotlin или Go. Делимся расшифровкой доклада. Запись всего митапа можно посмотреть на Rutube.
Читать: https://habr.com/ru/companies/rshb/articles/747898/?utm_campaign=747898
@a_cup_of_java | Другие наши каналы
8 439
Whirl Platform — разработка длиной в 10 лет
Поведаю историю развития одного проекта длительностью в более чем 10 лет. На основе проекта, речь о котором пойдет ниже, случилось мое становление как разработчика/архитектора.
История более биографическая, чем техническая, с вкраплением мыслей о разработке в целом и небольшим обзором проекта который развивает наша команда. Если вы ждете техно-жесткача с фреймворками, конфигами и кусками кода, то дальше читать не надо - такого не будет. Продолжив вы узнаете про чужой опыт развития долгоживущего продукта, узнаете о еще одном отечественном open source проекте и просто увидите картинки с UI конструктором приложений.
Читать: https://habr.com/ru/articles/747876/?utm_campaign=747876
@a_cup_of_java | Другие наши каналы
8 439
Функциональное тестирование в SpringBoot
Всем привет, в прошлый раз мы говорили про юнит тесты с MockMVC, сегодня мы напишем функциональные тесты для того же самого кода.
Начнем. Из пререквизитов у нас есть код приложения
BookController.java.
Читать: https://habr.com/ru/companies/otus/articles/747852/?utm_campaign=747852
@a_cup_of_java | Другие наши каналы8 439
Модернизация приложений и обеспечение надёжности сайтов (SRE)
Часто приходится говорить с клиентами и партнёрами о целостной модернизации приложений. В контексте модернизации приложений наиболее востребованы такие аспекты как обеспечение надёжности приложений, упрощение проектирования и как можно более безотказная эксплуатация. Поэтому среди руководящих представителей инженерного звена всё популярнее становится практика обеспечения надёжности (SRE), де-факто превратившаяся в эксплуатационный стандарт для крупных корпораций. В этом посте я хотел бы изложить простую точку зрения на то, как сочетать SRE и модернизацию enterprise-приложений. Расскажу о том, как коррелируют две эти практики.
Читать: https://habr.com/ru/companies/piter/articles/747850/?utm_campaign=747850
@a_cup_of_java | Другие наши каналы
8 439
Потоковая обработка данных с помощью Kafka Streams: архитектура и ключевые концепции
При реализации потоковой обработки и анализа данных может возникнуть необходимость агрегирования записей для объединения нескольких независимых поток данных или обогащения какой-либо модели данных. Для этой цели может использоваться Kafka Streams, которая позволяет выполнять обработку данных в режиме реального времени.
В этой статье мы рассмотрим основные компоненты Kafka Streams и теоретические аспекты их использования. Мы будем использовать последние версии технологий, доступных на сегодня: Kafka 3.4.0 и Java 17 в качестве языка программированию. Для снижения входного порога мы будем использовать только нативные возможности Kafka и Kafka Streams, и не будем рассматривать решения с использованием различных фреймворков вроде Spring.
Читать: https://habr.com/ru/articles/747658/?utm_campaign=747658
@a_cup_of_java | Другие наши каналы
8 439
Прожарка java.lang.String
Давайте абьюзить баг в
java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Вкуснотища. .
Читать: https://habr.com/ru/companies/bar/articles/747528/?utm_campaign=747528
@a_cup_of_java | Другие наши каналы8 439
Разбираемся в REST assured как новичок и не только
Привет, меня зовут Александр Беляков, я инженер по тестированию Альфа-Банка. В 2021 году пришёл в IT из медицины и четыре месяца стажировался в Альфа-банке. Хотел бы рассказать о внедрении автотестов REST API с JSON-schema на проекте, на котором я стажировался с нуля и без опыта: с чего начать, как подготовиться, что необходимо знать и как быть с ошибками. Статья будет полезна начинающим тестировщикам, как я, которые только хотят начать работать в тестировании. Но и начинающим лидам я скромно рекомендую уделить статье время. У вас уже достаточно опыта и вы всё знаете, но, возможно, не помните, каково это ничего не знать.
Читать: https://habr.com/ru/companies/alfa/articles/745854/?utm_campaign=745854
@a_cup_of_java | Другие наши каналы
8 439
Собеседование на Java разработчика. Разбор 1606 вопросов и ответов. Часть 3 (с 270 по 370 вопрос)
Всем привет! Меня зовут Владимир Баганов. Я продолжаю серию статей с простым разбором вопросов на собеседованиях на Java разработчика. Под капотом 370 разобранных вопросов из 1606 вопросов.
Читать: https://habr.com/ru/articles/747190/?utm_campaign=747190
@a_cup_of_java | Другие наши каналы
8 439
Строим свой SSO. Часть 2: PostgreSQL и ролевая модель
Всем привет, и мы продолжаем нашу серию статей по созданию собственного SSO. В предыдущей статье мы создали замечательную основу приложения и проработали множество нюансов связанных как с
Spring Authorization Server, так и с Spring Security, Spring OAuth2 Client. Подключили "Social login" через Google, Github и Yandex. Теперь настало время превращения этого SSO в реальный проект.
Читать: https://habr.com/ru/articles/746698/?utm_campaign=746698
@a_cup_of_java | Другие наши каналы8 439
Осенние конференции JUG Ru Group: Москва, Питер, онлайн
той весной мы провели конференции с продолжительной офлайн-частью, но не забывая про онлайн-участников. Получилось удачно: хватало и тех, кто общался вживую на площадке, и тех, кто подключался издалека.
Так что продолжим это в нашем большом осеннем сезоне: проведём целых 10 конференций, и на этот раз не только в Москве. Все подробности — под катом.
Читать: https://habr.com/ru/companies/jugru/articles/746654/?utm_campaign=746654
@a_cup_of_java | Другие наши каналы
8 439
Тестирование Spring Boot через MockMVC
Автор статьи: Рустем Галиев
Сегодня мы посмотрим на то, как тестировать Spring Boot через MockMVC. MockMvc – это тестовый фреймворк на стороне сервера, который позволяет проверять большинство функциональных возможностей приложения Spring MVC с помощью облегченных и целевых тестов.
Читать: https://habr.com/ru/companies/otus/articles/746414/?utm_campaign=746414
@a_cup_of_java | Другие наши каналы
