ru
Feedback
Чашечка Java

Чашечка Java

Открыть в Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

Больше
8 568
Подписчики
Нет данных24 часа
-67 дней
-3030 день
Архив постов
Опыт Сдачи: 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 | Другие наши каналы

JavaDoc: добро или необходимое зло? Привет! Меня зовут Андрей Костров, я старший разработчик в X5 Tech. При создании проекта А мы вложили много сил в JavaDoc. Многим казалось это излишним. Затем проект А заморозили и начали новый – проект Б. При этом переиспользовали много кода из проекта А, вместе с JavaDoc. Рассказ о том, принёс ли JavaDoc пользу (спойлер: да). А также немного слов о том, где усилия по JavaDoc всё-таки были избыточны. Читать: https://habr.com/ru/companies/X5Tech/articles/752338/?utm_campaign=752338 @a_cup_of_java | Другие наши каналы

Как 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 | Другие наши каналы

Одна из возможных версий переезда с MySQL на PostgreSQL В этой статье я расскажу, какие подводные камни ждали команду разработки бэкенда служебных мобильных приложений одного банка, решившей мигрировать с MySQL на PostgreSQL. Читать: https://habr.com/ru/articles/742552/?utm_campaign=742552 @a_cup_of_java | Другие наши каналы

Разница между загрузкой и инициализацией классов в Java на любопытном примере Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце). Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;) Читать: https://habr.com/ru/articles/740156/?utm_campaign=740156 @a_cup_of_java | Другие наши каналы

Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры Привет, Хабр! В наше время при постоянном росте объемов данных и необходимостью более быстрой и надежной обработки информации, мы сталкиваемся с требованием к эффективному обмену и синхронизации данных между различными системами. Отслеживание и обработка данных в реальном времени стало жизненно необходимым для современных приложений. В этой статье мы рассмотрим, как Kafka Connect – мощный инструмент из экосистемы Apache Kafka – приходит на помощь при решении сложной задачи синхронизации данных между базами данных. Мы рассмотрим, как используя Kafka Connect, мы можем эффективно следить за изменениями в одной базе данных, обрабатывать их в нашем Java приложении и мгновенно записывать их в другую базу данных, обеспечивая надежность и безопасность данных. Построим гибкую и масштабируемую архитектуру, которая позволит нам забыть о проблемах связанных с несогласованными данными и наслаждаться мгновенным доступом к актуальной информации для наших бизнес-процессов. Читать: https://habr.com/ru/articles/751256/?utm_campaign=751256 @a_cup_of_java | Другие наши каналы

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 | Другие наши каналы

Магия 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 | Другие наши каналы

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo. Статья родилась как некий ответ на вопросы, которые мне часто задавали люди, находящиеся в таком же положении, как и был когда‑то я, когда времени на обучение почти нет и хочется войти в IT кем‑то выше, чем Junior разработчик. Давай-ка разберёмся с этим Читать: https://habr.com/ru/articles/750584/?utm_campaign=750584 @a_cup_of_java | Другие наши каналы

Сертификат Java: за и против Сертификация Java является одной из наиболее значимых и признанных в отрасли программирования сертификаций, которая позволяет программистам повышать свой профессиональный уровень и получать более высокую заработную плату. Мы обсудим преимущества и недостатки Java-сертификации и поможем вам определиться, стоит ли тратить время и деньги на подготовку для сдачи экзамена. Этой публикацией мы продолжаем серию постов про сертификацию для Java‑разработчиков. Про подготовку к экзамену рассказали здесь и здесь. А тут текст про саму сертификацию. Читать: https://habr.com/ru/companies/ibs/articles/750544/?utm_campaign=750544 @a_cup_of_java | Другие наши каналы

Приглашаем на Ozon Tech Intro meetup: как работают системы поиска, рекомендаций и рекламы UPD: Добавили записи докладов и слайды Всем привет! Меня зовут Алексей, я руководитель отдела по продукту и технологиям «Рекомендации и персонализация». Мы уделяем много времени проектированию архитектуры, улучшению скорости и оптимизации алгоритмов: • Ищем пути продукта и UX. • Ускоряем рантайм поиска. • Используем ML для рекламной платформы. • Обучаем модели для наилучшего результата рекомендаций. И со всем этим ещё и закапываемся в аналитику и проводим множество A/B-экспериментов. Наша команда решает задачи, в которых используются интересные структуры данных и алгоритмы. Читать: https://habr.com/ru/companies/ozontech/articles/750196/?utm_campaign=750196 @a_cup_of_java | Другие наши каналы

Интеграция 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 | Другие наши каналы

Инструментация байт-кода Java В рамках текущей статьи будет рассказано о способах инструментации байт-кода java или другим языком, внесения изменений в компилированный файлы java .class. Здесь будут приведены примеры работы с фреймворками Javaassist и ASM и базовое описание байт-кода. Читать: https://habr.com/ru/articles/750028/?utm_campaign=750028 @a_cup_of_java | Другие наши каналы

Изучаю мок-сервера и пишу свой Однажды передо мной возник некий «чёрный ящик» — Шина, которая отвечает за преобразование данных из внешнего формата во внутренний. Какие внутри происходят преобразования, какие процессы, как идут запросы, потому что они очень большие, — непонятно. Логи есть, но они ограничены, к тому же часто запросы не логируются, потому что некоторые данные пользователей нельзя показывать. В попытках решить проблему и возник мок-сервер, как решение задачи понять, как работает «ящик», на каких принципах, и понять, правильно ли он работает. План статьи: — Проблематика черного ящика и почему его вообще нужно вскрывать. — Варианты решения проблемы. — Подробно про мок-сервер, как один из вариантов решения проблемы: зачем нужен, в чём польза и как выбрать между готовыми и самописными решениям. — Как написать свой мок-сервер. — Посмотрим как он работает на реальной задаче. — Закрепляем материал в блоке «Польза мок-сервера». Читать: https://habr.com/ru/companies/alfa/articles/749890/?utm_campaign=749890 @a_cup_of_java | Другие наши каналы

Эффективное и комплексное устранение утечек памяти в Android Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor. Читать дальше Читать: https://habr.com/ru/articles/749568/?utm_campaign=749568 @a_cup_of_java | Другие наши каналы

Особенности разработки автотестов различными инструментами, а также статистика по использованию Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте. Читать: https://habr.com/ru/articles/749322/?utm_campaign=749322 @a_cup_of_java | Другие наши каналы

Добавляем поддержку пользовательского языка в 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 | Другие наши каналы

Работа с асинхронными операциями с помощью 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 | Другие наши каналы

Как на самом деле работает 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 | Другие наши каналы

SpringBoot и вебсокеты: едем в кластер Всем привет! В этой статье я бы хотел затронуть тему горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений - наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании. Stateless-сервисам все равно на какой из множества инстансов попал очередной запрос, или кто именно вычитал сообщение из очереди. Но когда на серверной стороне возникает понятие клиентской сессии, все запросы, связанные с этим клиентом, должен обрабатывать один и тот же инстанс. Либо должна быть возможность передать эту сессию на другой инстанс. Сложность реализации этого требования варьируется от "добавить одну строчку в конфиг балансировщика" до "написать подсистему мониторинга топологии сервиса и роутинга запросов, сложность которой может превышать сложность основного приложения". К счастью, для решения стандартных задач, как правило, существуют стандартные инструменты. Давайте посмотрим, что за инструменты используются при масштабировании вебсокетных приложений, написанных на SpringBoot. Читать: https://habr.com/ru/articles/743252/?utm_campaign=743252 @a_cup_of_java | Другие наши каналы