Чашечка Java
رفتن به کانال در Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
نمایش بیشتر8 568
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
-3030 روز
آرشیو پست ها
8 570
Опыт Сдачи: Oracle Certified Professional: Java SE 11 Developer 1Z0-819
Всем Привет. Публикация для тех кто планирует сдавать OCP от Oracle. Подобных постов великое множество, как и материалов, но я решил написать пост о своем опыте сдачи этой сертификации.
Сдавал я сертификацию на Java SE 11 чуть более года назад. Тогда была уже доступен экзамен на Java SE 17, но насколько я помню отредактированных книг и мок тестов еще не было, поэтому я решил сдать именно на 11-ую Java.
Вообще насколько мне известно до сих пор доступен экзамен и на Java SE 8, но он по-прежнему состоит из OCA + OCP, хотя его значительно упростили с годами уменьшив количество вопросов.
Читать: https://habr.com/ru/articles/752350/?utm_campaign=752350
@a_cup_of_java | Другие наши каналы
8 570
JavaDoc: добро или необходимое зло?
Привет! Меня зовут Андрей Костров, я старший разработчик в X5 Tech.
При создании проекта А мы вложили много сил в JavaDoc. Многим казалось это излишним. Затем проект А заморозили и начали новый – проект Б. При этом переиспользовали много кода из проекта А, вместе с JavaDoc. Рассказ о том, принёс ли JavaDoc пользу (спойлер: да). А также немного слов о том, где усилия по JavaDoc всё-таки были избыточны.
Читать: https://habr.com/ru/companies/X5Tech/articles/752338/?utm_campaign=752338
@a_cup_of_java | Другие наши каналы
8 570
Как VMware создала проблему, а мы ее решили
Недавно в нашу компанию «Инфосистемы Джет» пришел заказчик с проблемой долгой реализации создаваемых портов на NSX-T (до 2 минут до момента запуска трафика). Основная боль заключалась в том, что новые поды K8s не всегда укладывались в timeout Health Check'a и процесс начинался опять.
Исходные данные у нас были такие. NSX использовался для построения микросегментированной сети в кластерах Kybernetes + Kyverno. Взаимодействие K8s и NSX было реализовано при помощи плагина VMware NCP. Несмотря на большое количество объектов, в интерфейсе все метрики по утилизации были в «зеленых» значениях, но ощущалось сильное замедление работы UI.
Читать: https://habr.com/ru/companies/jetinfosystems/articles/752234/?utm_campaign=752234
@a_cup_of_java | Другие наши каналы
8 570
Одна из возможных версий переезда с MySQL на PostgreSQL
В этой статье я расскажу, какие подводные камни ждали команду разработки бэкенда служебных мобильных приложений одного банка, решившей мигрировать с MySQL на PostgreSQL.
Читать: https://habr.com/ru/articles/742552/?utm_campaign=742552
@a_cup_of_java | Другие наши каналы
8 570
Разница между загрузкой и инициализацией классов в Java на любопытном примере
Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).
Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)
Читать: https://habr.com/ru/articles/740156/?utm_campaign=740156
@a_cup_of_java | Другие наши каналы
8 570
Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры
Привет, Хабр! В наше время при постоянном росте объемов данных и необходимостью более быстрой и надежной обработки информации, мы сталкиваемся с требованием к эффективному обмену и синхронизации данных между различными системами. Отслеживание и обработка данных в реальном времени стало жизненно необходимым для современных приложений.
В этой статье мы рассмотрим, как Kafka Connect – мощный инструмент из экосистемы Apache Kafka – приходит на помощь при решении сложной задачи синхронизации данных между базами данных. Мы рассмотрим, как используя Kafka Connect, мы можем эффективно следить за изменениями в одной базе данных, обрабатывать их в нашем Java приложении и мгновенно записывать их в другую базу данных, обеспечивая надежность и безопасность данных.
Построим гибкую и масштабируемую архитектуру, которая позволит нам забыть о проблемах связанных с несогласованными данными и наслаждаться мгновенным доступом к актуальной информации для наших бизнес-процессов.
Читать: https://habr.com/ru/articles/751256/?utm_campaign=751256
@a_cup_of_java | Другие наши каналы
8 570
IntelliJ IDEA 2023.2. Language Server Protocol, AI Assistant, IntelliJ Profiler в редакторе, GitLab merge requests, ftw
Только что вышла IntelliJ IDEA 2023.2. В этом релизе в IDE появилась куча интересных фичей и важных улучшений.
Вы можете скачать последнюю сборку с официального сайта, или из бесплатного приложения Toolbox, или из snap-пакетов для Ubuntu.
Этот релиз IntelliJ IDEA 2023.2 представляет вам AI-ассистента, вооруженного набором инструментов машинного обучения. IntelliJ Profiler показывает подсказки в редакторе, делая профилирование более интуитивным и иформативным. Еще, в этом релизе появилась интеграция с GitLab.
В том посте мы пробежимся по всем основным фичам IntelliJ IDEA 2023.2. В отличие от официального анонса, вся европейская политкорректность выкинута на свалку, автор перевода не видит никакой ценности в соблюдении повесточки.
Кроме того, в этот четверг в Питере будет встреча Javawatch, посвященная Java 21. Я прочитаю мини-доклад минут на 30 о новых фичах, и потом мы сможем все вместе собраться и за кружкой пива это обсудить. Анонс события в телеге, обсуждение в чате. Я бывший PMM в JetBrains Big Data и тимлид в Remote Development/Projector, а сейчас работаю над российским дистрибутивом Java - Axiom JDK.
Волшебно. .
Читать: https://habr.com/ru/companies/bar/articles/751248/?utm_campaign=751248
@a_cup_of_java | Другие наши каналы
8 570
Магия Spring Framework своими руками
Spring Framework позволяет сфокусироваться на бизнес-логике, а вся настройка инфраструктуры выполняется автоматически благодаря постобработке бинов. Зачастую для реализации дополнительной функциональности применяется Spring AOP - аспектно-ориентированное программирование.
Spring AOP бин, который накручивает дополнительную функциональность другим Spring бинам, помечается аннотацией
@Aspect, но как потом этот бин используется для добавления дополнительной функциональности в поток исполнения?
В статье будет рассмотрен механизм проксирования объектов и его применение в Spring Framework.
Читать: https://habr.com/ru/articles/750894/?utm_campaign=750894
@a_cup_of_java | Другие наши каналы8 570
«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior
Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.
Статья родилась как некий ответ на вопросы, которые мне часто задавали люди, находящиеся в таком же положении, как и был когда‑то я, когда времени на обучение почти нет и хочется войти в IT кем‑то выше, чем Junior разработчик.
Давай-ка разберёмся с этим
Читать: https://habr.com/ru/articles/750584/?utm_campaign=750584
@a_cup_of_java | Другие наши каналы
8 570
Сертификат Java: за и против
Сертификация Java является одной из наиболее значимых и признанных в отрасли программирования сертификаций, которая позволяет программистам повышать свой профессиональный уровень и получать более высокую заработную плату. Мы обсудим преимущества и недостатки Java-сертификации и поможем вам определиться, стоит ли тратить время и деньги на подготовку для сдачи экзамена.
Этой публикацией мы продолжаем серию постов про сертификацию для Java‑разработчиков. Про подготовку к экзамену рассказали здесь и здесь. А тут текст про саму сертификацию.
Читать: https://habr.com/ru/companies/ibs/articles/750544/?utm_campaign=750544
@a_cup_of_java | Другие наши каналы
8 570
Приглашаем на Ozon Tech Intro meetup: как работают системы поиска, рекомендаций и рекламы
UPD: Добавили записи докладов и слайды
Всем привет!
Меня зовут Алексей, я руководитель отдела по продукту и технологиям «Рекомендации и персонализация».
Мы уделяем много времени проектированию архитектуры, улучшению скорости и оптимизации алгоритмов:
• Ищем пути продукта и UX.
• Ускоряем рантайм поиска.
• Используем ML для рекламной платформы.
• Обучаем модели для наилучшего результата рекомендаций.
И со всем этим ещё и закапываемся в аналитику и проводим множество A/B-экспериментов.
Наша команда решает задачи, в которых используются интересные структуры данных и алгоритмы.
Читать: https://habr.com/ru/companies/ozontech/articles/750196/?utm_campaign=750196
@a_cup_of_java | Другие наши каналы
8 570
Интеграция Jmix с bpmn-js для эффективного моделирования бизнес-процессов при разработке приложений
Jmix — это платформа с открытым исходным кодом для повышения эффективности разработки корпоративного ПО. Java-разработчики со всего мира используют ее для создания приложений, ориентированных на работу с данными, корпоративным контентом и бизнес-процессами. Jmix особенно эффективен, если у проекта есть строгие ограничения по бюджету и срокам. По сути, Jmix позволяет Java-разработчику стать fullstack-программистом и в результате своей работы получить полноценное веб-приложение на основе Spring Boot. Платформа привлекает тем, что не требует затрат на лицензирование конечных пользователей, а для разработки и backend, и frontend используются один язык: Java или Kotlin. В основе платформы лежат широко распространенные технологии и IDE, дружественная разработчику. В этой статье расскажем, с чего начиналась поддержка моделирования бизнес-процессов в Jmix, как мы встроили в платформу фреймворк bpmn-js, и какие плюсы от этого получили пользователи.
Первые шаги в направлении BPMN
В случае приложений для управления транзакциями, документами или другими корпоративным данными часто требуется отделить бизнес-логику от кода. Это можно сделать с помощью визуального конструктора, в котором аналитики и разработчики моделируют бизнес-процессы в соответствии с нотацией BPMN. К этой идее мы пришли в 2017 году, после большого количества запросов со стороны сообщества разработчиков Jmix. Поначалу для создания бизнес-процессов мы использовали собственный инструмент на основе движка Activiti. Он был частью CUBA Platform, прошлого поколения платформы Jmix.
Читать: https://habr.com/ru/companies/haulmont/articles/749558/?utm_campaign=749558
@a_cup_of_java | Другие наши каналы
8 570
Инструментация байт-кода Java
В рамках текущей статьи будет рассказано о способах инструментации байт-кода java или другим языком, внесения изменений в компилированный файлы java .class. Здесь будут приведены примеры работы с фреймворками Javaassist и ASM и базовое описание байт-кода.
Читать: https://habr.com/ru/articles/750028/?utm_campaign=750028
@a_cup_of_java | Другие наши каналы
8 570
Изучаю мок-сервера и пишу свой
Однажды передо мной возник некий «чёрный ящик» — Шина, которая отвечает за преобразование данных из внешнего формата во внутренний. Какие внутри происходят преобразования, какие процессы, как идут запросы, потому что они очень большие, — непонятно. Логи есть, но они ограничены, к тому же часто запросы не логируются, потому что некоторые данные пользователей нельзя показывать. В попытках решить проблему и возник мок-сервер, как решение задачи понять, как работает «ящик», на каких принципах, и понять, правильно ли он работает.
План статьи:
— Проблематика черного ящика и почему его вообще нужно вскрывать.
— Варианты решения проблемы.
— Подробно про мок-сервер, как один из вариантов решения проблемы: зачем нужен, в чём польза и как выбрать между готовыми и самописными решениям.
— Как написать свой мок-сервер.
— Посмотрим как он работает на реальной задаче.
— Закрепляем материал в блоке «Польза мок-сервера».
Читать: https://habr.com/ru/companies/alfa/articles/749890/?utm_campaign=749890
@a_cup_of_java | Другие наши каналы
8 570
Эффективное и комплексное устранение утечек памяти в Android
Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor.
Читать дальше
Читать: https://habr.com/ru/articles/749568/?utm_campaign=749568
@a_cup_of_java | Другие наши каналы
8 570
Особенности разработки автотестов различными инструментами, а также статистика по использованию
Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.
Читать: https://habr.com/ru/articles/749322/?utm_campaign=749322
@a_cup_of_java | Другие наши каналы
8 570
Добавляем поддержку пользовательского языка в 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 570
Работа с асинхронными операциями с помощью 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 570
Как на самом деле работает 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 570
SpringBoot и вебсокеты: едем в кластер
Всем привет! В этой статье я бы хотел затронуть тему горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений - наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании.
Stateless-сервисам все равно на какой из множества инстансов попал очередной запрос, или кто именно вычитал сообщение из очереди. Но когда на серверной стороне возникает понятие клиентской сессии, все запросы, связанные с этим клиентом, должен обрабатывать один и тот же инстанс. Либо должна быть возможность передать эту сессию на другой инстанс. Сложность реализации этого требования варьируется от "добавить одну строчку в конфиг балансировщика" до "написать подсистему мониторинга топологии сервиса и роутинга запросов, сложность которой может превышать сложность основного приложения". К счастью, для решения стандартных задач, как правило, существуют стандартные инструменты. Давайте посмотрим, что за инструменты используются при масштабировании вебсокетных приложений, написанных на SpringBoot.
Читать: https://habr.com/ru/articles/743252/?utm_campaign=743252
@a_cup_of_java | Другие наши каналы
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
