Чашечка Java
الذهاب إلى القناة على Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
إظهار المزيد8 568
المشتركون
لا توجد بيانات24 ساعات
-67 أيام
-3030 أيام
أرشيف المشاركات
8 570
Строим свой 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 570
Работа с единицами системы СИ на Java
Библиотека по работе с единица системы СИ KotUniL, разработанная изначально на Kotlin, недавно сделана мультиплатформенной. В частности, она доступна теперь и на Java и JavaScript.
Читать: https://habr.com/ru/articles/748248/?utm_campaign=748248
@a_cup_of_java | Другие наши каналы
8 570
Микросервисы в банке: на чем их лучше писать? 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 570
Whirl Platform — разработка длиной в 10 лет
Поведаю историю развития одного проекта длительностью в более чем 10 лет. На основе проекта, речь о котором пойдет ниже, случилось мое становление как разработчика/архитектора.
История более биографическая, чем техническая, с вкраплением мыслей о разработке в целом и небольшим обзором проекта который развивает наша команда. Если вы ждете техно-жесткача с фреймворками, конфигами и кусками кода, то дальше читать не надо - такого не будет. Продолжив вы узнаете про чужой опыт развития долгоживущего продукта, узнаете о еще одном отечественном open source проекте и просто увидите картинки с UI конструктором приложений.
Читать: https://habr.com/ru/articles/747876/?utm_campaign=747876
@a_cup_of_java | Другие наши каналы
8 570
Функциональное тестирование в SpringBoot
Всем привет, в прошлый раз мы говорили про юнит тесты с MockMVC, сегодня мы напишем функциональные тесты для того же самого кода.
Начнем. Из пререквизитов у нас есть код приложения
BookController.java.
Читать: https://habr.com/ru/companies/otus/articles/747852/?utm_campaign=747852
@a_cup_of_java | Другие наши каналы8 570
Модернизация приложений и обеспечение надёжности сайтов (SRE)
Часто приходится говорить с клиентами и партнёрами о целостной модернизации приложений. В контексте модернизации приложений наиболее востребованы такие аспекты как обеспечение надёжности приложений, упрощение проектирования и как можно более безотказная эксплуатация. Поэтому среди руководящих представителей инженерного звена всё популярнее становится практика обеспечения надёжности (SRE), де-факто превратившаяся в эксплуатационный стандарт для крупных корпораций. В этом посте я хотел бы изложить простую точку зрения на то, как сочетать SRE и модернизацию enterprise-приложений. Расскажу о том, как коррелируют две эти практики.
Читать: https://habr.com/ru/companies/piter/articles/747850/?utm_campaign=747850
@a_cup_of_java | Другие наши каналы
8 570
Потоковая обработка данных с помощью 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 570
Прожарка 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 570
Разбираемся в REST assured как новичок и не только
Привет, меня зовут Александр Беляков, я инженер по тестированию Альфа-Банка. В 2021 году пришёл в IT из медицины и четыре месяца стажировался в Альфа-банке. Хотел бы рассказать о внедрении автотестов REST API с JSON-schema на проекте, на котором я стажировался с нуля и без опыта: с чего начать, как подготовиться, что необходимо знать и как быть с ошибками. Статья будет полезна начинающим тестировщикам, как я, которые только хотят начать работать в тестировании. Но и начинающим лидам я скромно рекомендую уделить статье время. У вас уже достаточно опыта и вы всё знаете, но, возможно, не помните, каково это ничего не знать.
Читать: https://habr.com/ru/companies/alfa/articles/745854/?utm_campaign=745854
@a_cup_of_java | Другие наши каналы
8 570
Собеседование на Java разработчика. Разбор 1606 вопросов и ответов. Часть 3 (с 270 по 370 вопрос)
Всем привет! Меня зовут Владимир Баганов. Я продолжаю серию статей с простым разбором вопросов на собеседованиях на Java разработчика. Под капотом 370 разобранных вопросов из 1606 вопросов.
Читать: https://habr.com/ru/articles/747190/?utm_campaign=747190
@a_cup_of_java | Другие наши каналы
8 570
Строим свой 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 570
Осенние конференции JUG Ru Group: Москва, Питер, онлайн
той весной мы провели конференции с продолжительной офлайн-частью, но не забывая про онлайн-участников. Получилось удачно: хватало и тех, кто общался вживую на площадке, и тех, кто подключался издалека.
Так что продолжим это в нашем большом осеннем сезоне: проведём целых 10 конференций, и на этот раз не только в Москве. Все подробности — под катом.
Читать: https://habr.com/ru/companies/jugru/articles/746654/?utm_campaign=746654
@a_cup_of_java | Другие наши каналы
8 570
Тестирование Spring Boot через MockMVC
Автор статьи: Рустем Галиев
Сегодня мы посмотрим на то, как тестировать Spring Boot через MockMVC. MockMvc – это тестовый фреймворк на стороне сервера, который позволяет проверять большинство функциональных возможностей приложения Spring MVC с помощью облегченных и целевых тестов.
Читать: https://habr.com/ru/companies/otus/articles/746414/?utm_campaign=746414
@a_cup_of_java | Другие наши каналы
8 570
Не все патчи одинаково полезны
Эта заметка продолжает разбор улучшений производительности, которые могли бы стать явью, если бы не разные "но". Предыдущая часть о
StringBuilder-е находится здесь.
Здесь мы рассмотрим несколько "улучшений", отклонённых из-за непонимания тонкостей спецификации языка, неочевидных угловых случаев и других причин. Поехали!
Читать: https://habr.com/ru/articles/433174/?utm_campaign=433174
@a_cup_of_java | Другие наши каналы8 570
Telegraff: Kotlin DSL для Telegram
На Хабре тысячи статей про то, как сделать Телеграм-бота под разные языки программирования и платформы. Тема далеко не новая.
Но Telegraff – лучший фреймворк для реализации Телеграм ботов и я это под катом докажу.
А ну-ка
Читать: https://habr.com/ru/articles/445072/?utm_campaign=445072
@a_cup_of_java | Другие наши каналы
8 570
Синхронизация клиентских запросов в Spring
Сегодня предлагаю Вам разобрать одну практическую задачу о гонке клиентских запросов, с которой я столкнулся в МаксимаТелеком при разработке back-end для нашего мобильного приложения MT_FREE.
При старте клиентское приложение асинхронно отправляет «пачку» запросов к API. Приложение имеет идентификатор clientId, на основании которого можно различить запросы одного клиента от другого. На каждый запрос на сервере выполняется код вида:
// получаем из репозитория данные клиента
Client client = clientRepository.findByClientId(clientId);
// если клиент не создан ранее
if(client == null){
client = clientRepository.save(new Client(clientId));
}
// далее обрабатываем запрос
где сущность Client имеет поле clientId, которое должно являться уникальным и имеет для этого в базе unique constraint. Так как в Spring каждый запрос будет выполнять данный код в отдельном потоке, даже если это запросы от одного и того же клиентского приложения, будет возникать ошибка вида:
integrity constraint violation: unique constraint or index violation; UK_BFJDOY2DPUSSYLQ7G1S3S1TN8 table: CLIENT
Ошибка возникает по очевидной причине: 2 или более потоков с одним clientId получают сущность client == null и начинают ее создавать, после чего при коммите получают ошибку.
Задача:
Необходимо синхронизировать запросы от одного clientId так, чтобы только первый запрос выполнил создание сущности Client, а остальные блокировались бы на момент создания и получали бы уже созданный им объект.
Читать: https://habr.com/ru/companies/maximatelecom/articles/434714/?utm_campaign=434714
@a_cup_of_java | Другие наши каналы8 570
Лучше день потерять
В инвестировании есть понятие «Плохо сейчас — хорошо потом». Инвестор регулярно отщипывает 10, 20% или даже 30% своего заработка на будущее. Эти деньги он инвестирует в облигации, акции, ОФЗ, ETF — кто во что горазд. Сейчас, в моменте, инвестор отбирает у себя свой заработок, лишает себя каких-то благ, чтобы в будущем, на горизонте в 10-20 лет, получить пользу от инвестиций. Прибыль в будущем покроет сегодняшние лишения. Примерно такую же стратегию исповедует Алексей Охрименко (obenjiro), но применительно к разработке — лучше день потерять, а потом за 5 минут полететь.
Источник
На Frontend Conf 2018 Алексей рассказал, как потеряв кучу времени сейчас, в конечном счете его сэкономить потом. Этот доклад не о чувстве скуки и не о том, как бороться с монотонными и рутинными задачами, а о том как потратить время по максимуму — сколько есть, все потратить, и посмотреть, что из этого получится. В расшифровке доклада опыт написания инструментов для отладки, тестирования, оптимизации, скафолдинга и валидации под разные проекты. Бонусом Алексей расскажет о ряде уже существующих инструментов и о пользе, которую они приносят. Давайте выяснять, надо ли вообще на это тратить время.
О докладчике: Алексей Охрименко — разработчик в Avito Frontend Architecture, где немного улучшает жизнь миллионов людей. Ведет подкаст «5 min Angular», а в свободное ото сна и подкаста время организует Angular Meetup вместе с ребятами из Тинькофф, и выступает с огромным количеством разных и спорных докладов.
Читать: https://habr.com/ru/companies/oleg-bunin/articles/433328/?utm_campaign=433328
@a_cup_of_java | Другие наши каналы
8 570
Практические задачи по Java — для курсов и прочих занятий
Практические задачи по Java — для курсов и прочих занятий
Несколько вводных слов
Последние несколько лет я читаю курс по программированию на Java. Со временем он менялся — то добавлялись, то выкидывались разные части, менялась последовательность тем, менялся подход к построению плана самих занятий, и так далее. То есть, курс совершенствовался. Одной из основных проблем, возникших при подготовке курса — это задачи. О них и пойдёт речь.
Дело в том, что каждое моё занятие состоит из двух частей. На первой я выступаю в роли лектора — рассказываю с примерами кода о какой-то новой теме (классы, наследование, дженерики и так далее). Вторая часть — практическая. Очевидно, что нет смысла просто рассуждать о программировании, надо программировать. Приоритет на занятиях — решение задач, то есть программирование чего-то как-то. Программирование на занятиях отличается от программирования дома, так как на занятиях можно задать вопрос, показать код, получить быструю оценку кода, комментарии по улучшению, исправлению написанного. Очень легко было найти задачи для самых первых занятий. Задачи на циклы, условные операторы, и ООП (к примеру, написать класс «Собака» или класс «Вектор»). Сервисы вроде leetcode позволяют даже проверить правильность решения таких задач сразу, онлайн. Но какие задачи дать студентам на занятии, которое было посвящено коллекциям? Потокам? А аннотациям? За несколько лет я придумал, или переработал несколько таких задач, и эта статья, по сути, является сборником этих задач (к некоторым задачам прилагается решение).
Читать: https://habr.com/ru/articles/440436/?utm_campaign=440436
@a_cup_of_java | Другие наши каналы
8 570
Мины под производительностью ждут своего часа
В этой статье я расскажу о минах, заложенных под производительность, а также об их обнаружении (желательно ещё до взрыва) и обезвреживании.
Картинка для привлечения внимания
Читать: https://habr.com/ru/articles/443206/?utm_campaign=443206
@a_cup_of_java | Другие наши каналы
8 570
Spring Data JPA: доводим напильником
Приветствую, это вторая заметка о Spring Data JPA. Первая часть была целиком посвящена подводным граблям, а также советам бывалых. В этой части мы поговорим о том, как заточить фреймворк под свои нужды. Все описанные примеры доступны здесь.
Читать: https://habr.com/ru/articles/444240/?utm_campaign=444240
@a_cup_of_java | Другие наши каналы
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
