Чашечка Java
Open in Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Show more8 559
Subscribers
-424 hours
-107 days
-1330 days
Posts Archive
8 559
Как задеплоить монолитный pet проект на Java с 0 и не сойти с ума… Часть 1
Перерыв в работе заставил меня задуматься над смыслом выражения "Сапожник без сапог". Будучи Java Backend Developer с 3-ех летним стажем я не имею на руках ни одного pet проекта. Конечно, на GitHub у меня есть какие-то мелкие проектики, но они не доведены до конца и кроме того как просто висеть на доске "почета" они больше ничего и не могут. С этой мыслёй я пошел в интернет гуглить "как мне задеплоить свое приложение?".
Скажу сразу, это статья содержит шаги по развертыванию Java приложения с помощью GitHub Actions на серверах AWS EC2 и это моя интрерпретация тех инструкций, которые я находил в интернете. Собственно это статья содержит для новичков, кто просто не делал никогда деплой своего приложения, но очень хочет в сжатые сроки похвастаться своим результатом.
Читать: https://habr.com/ru/articles/755110/?utm_campaign=755110
8 559
Авторизация в Spring Boot приложении с Spring Security 3.1.0 и PostgreSQL
Эта статья является первой, написанной мной. Буду очень рад, если она все же будет опубликована. На данный момент являюсь Junior Java разработчиком, поэтому в этой статье не будет сложной аналитики и глубокого погружения в тему, но я свой опыт изучения и реализации приложений с использованием Spring Security, возможно, кому-то это поможет справиться с теми трудностями, с которыми встретился я.
Недавно мне пришлось подключать и настраивать авторизацию через Spring Security версии 3.1.0. В процессе разработки и решения сложностей, которых было не мало, я заметил, что информации по версии 3.1.0 довольно мало, если не считать документацию.
Читать: https://habr.com/ru/articles/754916/?utm_campaign=754916
8 559
Интеграция 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
8 559
Инструментация байт-кода Java
В рамках текущей статьи будет рассказано о способах инструментации байт-кода java или другим языком, внесения изменений в компилированный файлы java .class. Здесь будут приведены примеры работы с фреймворками Javaassist и ASM и базовое описание байт-кода.
Читать: https://habr.com/ru/articles/750028/?utm_campaign=750028
8 559
Изучаю мок-сервера и пишу свой
Однажды передо мной возник некий «чёрный ящик» — Шина, которая отвечает за преобразование данных из внешнего формата во внутренний. Какие внутри происходят преобразования, какие процессы, как идут запросы, потому что они очень большие, — непонятно. Логи есть, но они ограничены, к тому же часто запросы не логируются, потому что некоторые данные пользователей нельзя показывать. В попытках решить проблему и возник мок-сервер, как решение задачи понять, как работает «ящик», на каких принципах, и понять, правильно ли он работает.
План статьи:
— Проблематика черного ящика и почему его вообще нужно вскрывать.
— Варианты решения проблемы.
— Подробно про мок-сервер, как один из вариантов решения проблемы: зачем нужен, в чём польза и как выбрать между готовыми и самописными решениям.
— Как написать свой мок-сервер.
— Посмотрим как он работает на реальной задаче.
— Закрепляем материал в блоке «Польза мок-сервера».
Читать: https://habr.com/ru/companies/alfa/articles/749890/?utm_campaign=749890
8 559
Эффективное и комплексное устранение утечек памяти в Android
Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor.
Читать дальше
Читать: https://habr.com/ru/articles/749568/?utm_campaign=749568
8 559
Особенности разработки автотестов различными инструментами, а также статистика по использованию
Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.
Читать: https://habr.com/ru/articles/749322/?utm_campaign=749322
8 559
Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR
В этой статье я не буду описывать как создать плагин для IntelliJ с поддержкой %lang_name% с нуля. Кроме официальной документации и туториала от JetBrains в сети есть множество статей и примеров. На Хабре тоже есть пара весьма подробных статей от @pyltsinm. Фокус будет на разработке плагина с использованием ANTLR и моём опыте в этом нелёгком деле.
Примером в этой статье будет WebCalm - плагин для IntelliJ с поддержкой JavaScript и CSS, который я сделал с помощью ANTLR.
Читать: https://habr.com/ru/articles/748622/?utm_campaign=748622
8 559
Работа с асинхронными операциями с помощью Kotlin Coroutines
Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines.
Сегодня я хочу углубиться в Kotlin Coroutines и разобрать их основные компоненты. Мы рассмотрим Kotlin Coroutines, предполагая, что у вас уже есть базовое понимание языка Kotlin и некоторый опыт разработки Android-приложений. Мы изучим основные концепции Kotlin Coroutines, способы работы с асинхронными операциями, управление потоком выполнения, обработку ошибок и исключений, а также многое другое.
Моя цель — помочь вам овладеть Kotlin Coroutines и научиться использовать их для упрощения и оптимизации вашего кода, обеспечения более гладкого пользовательского опыта и более эффективного управления асинхронными операциями. Приятного прочтения, мы начинаем!
Читать: https://habr.com/ru/articles/747858/?utm_campaign=747858
8 559
Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка
Так ли на самом деле работает процесс загрузки классов, как его описывает Wikipedia и Baeldung? ClassNotFoundException — это откуда и чье? Какие виды загрузчиков классов актуальны в Java 20?
Объясняем подпроцесс загрузки, из системы Java ClassLoader, на приятных Excalidraw диаграммах, со ссылками на оригинальные источники.
Читать: https://habr.com/ru/articles/748758/?utm_campaign=748758
8 559
SpringBoot и вебсокеты: едем в кластер
Всем привет! В этой статье я бы хотел затронуть тему горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений - наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании.
Stateless-сервисам все равно на какой из множества инстансов попал очередной запрос, или кто именно вычитал сообщение из очереди. Но когда на серверной стороне возникает понятие клиентской сессии, все запросы, связанные с этим клиентом, должен обрабатывать один и тот же инстанс. Либо должна быть возможность передать эту сессию на другой инстанс. Сложность реализации этого требования варьируется от "добавить одну строчку в конфиг балансировщика" до "написать подсистему мониторинга топологии сервиса и роутинга запросов, сложность которой может превышать сложность основного приложения". К счастью, для решения стандартных задач, как правило, существуют стандартные инструменты. Давайте посмотрим, что за инструменты используются при масштабировании вебсокетных приложений, написанных на SpringBoot.
Читать: https://habr.com/ru/articles/743252/?utm_campaign=743252
8 559
Строим свой SSO. Часть 3: Redis, Swagger, Vue.js
Всем привет, мы продолжаем строить собственный SSO Server. Сегодня мы разберем подключение Redis и Swagger к нашему проекту. А также построим собственную, красивую форму аутнетификации, используя VueJS.
Читать: https://habr.com/ru/articles/748584/?utm_campaign=748584
8 559
Docker больше не нужен
В этой статье мы не будем подробно разбирать базовые функции Podman и отличия этого проекта от Docker.
Такой информации хватает в интернете.
Вместо этого, мы на конкретном примере (простое Java приложение) разберем как можно заменить Docker на Podman в конвейере CI/CD,
и какие это может принести дивиденды.
Читать: https://habr.com/ru/articles/748328/?utm_campaign=748328
8 559
Работа с единицами системы СИ на Java
Библиотека по работе с единица системы СИ KotUniL, разработанная изначально на Kotlin, недавно сделана мультиплатформенной. В частности, она доступна теперь и на Java и JavaScript.
Читать: https://habr.com/ru/articles/748248/?utm_campaign=748248
8 559
Микросервисы в банке: на чем их лучше писать? 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
8 559
Топ-5 курсов для изучения стека MERN в 2023 году - (MongoDB, Express.js, React.js и Node.js) Лучшие из лотов
В последние годы популярность разработки стека MERN значительно возросла. Стек MERN является одним из двух популярных стеков JavaScript, наряду со стеком Стек MEANи используется для разработки одностраничных динамических веб-приложений.
АббревиатураMERN расшифровывается как MongoDB, Express.js, React.js и Node.js.
* MongoDB - популярная база данных NoSQL. Хранит данные в формате JSON.
* Express.js: Гибкий и минимальный веб-фреймворк для Node.js.
* React.js: Библиотека JavaScript, используемая для создания пользовательских интерфейсов.
* Node.js: Среда выполнения, используемая для выполнения JavaScript вне браузера.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/06/top-5-courses-to-learn-mern-stack-for-web-development.html
8 559
2 способа вывода пользовательского строкового значения Java Enum
Все мы знаем, насколько мощным является тип перечисления в Java, и одним из главных достоинств перечисления является то, что оно может реализовывать интерфейс, иметь переменную экземпляра, а также переопределять любой метод внутри экземпляра перечисления. В программах на Java нам часто приходится преобразовывать Enum к типу String, иногда просто для печати значений в файл журнала, а иногда для сохранения журнала в базе данных. По умолчанию при выводе константы перечисления печатается ее буквенное значение, например, если имя экземпляра перечисления RED, то будет выведено RED. Это же значение возвращается методом name() класса java.lang.Enum. Однако бывают ситуации, когда дляконстанты перечисления требуется задать собственное строковое значение.
Вопросы и задания для собеседования по Java
Read: http://www.java67.com/2014/12/2-ways-to-print-custom-string-value-of.html
8 559
Как сравнивать строковые объекты в Java [Примерное руководство]
String - это специальный класс в Java, так же как и сравнение String. Когда я говорю о сравнении строковых переменных, я имею в виду либо сравнение двух строковых объектов, чтобы проверить, одинаковы ли они, т.е. содержат ли они одинаковые символы, либо сравнение их в алфавитном порядке, чтобы проверить, какой из них стоит на первом или втором месте. В этой статье мы расскажем о правильном способе сравнения String-переменных, но что такое неправильный способ? Неправильный способ - это сравнение String с помощью оператора ==. Это одна из областей, в которой практически каждый Java-программист иногда допускал ошибки, сравнивая две String-переменные с помощью оператора ==.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2014/12/right-way-to-compare-string-in-java.html
8 559
Как преобразовать строку в дату в Java с помощью JodaTime Пример
В этом учебном пособии по Java мы научимся разбирать строку с датой с помощью библиотеки Joda-Time. Например, мы преобразуем строку с датой "04-12-2014" в объект java.util.Date, который представляет эту дату. До появления в Java 8 нового API даты и времени Joda была единственным надежным, безопасным и простым способом разобраться с тонкостями даты и времени в Java. Собственный интерфейс даты и времени в Java был не так уж и хорош, начиная с JDK 1.1, где java.util.Date стал мутабельным объектом, и до появления Calendar в Java 1.2. Это одна из наиболее критикуемых в сообществах особенностей Java, наряду с проверяемыми исключениями и клонированием объектов.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2015/04/how-to-parse-string-to-date-in-java.html
8 559
10 вещей, которые веб-разработчики должны узнать в 2023 году [UPDATED]
Здравствуйте, ребята, если вы хотите стать веб-разработчиком (как фронтенд-, так и фулл-стек-разработчиком) и задаетесь вопросом, какие навыки вам следует изучить, то вы пришли по адресу. В прошлом я уже рассказывал о бесплатных курсах по веб-разработке и" Полной дорожной карте веб-разработчика" (The Complete Web Developer RoadMap), которые давали подробный обзор навыков фронтенда и бэкенда, а сегодня я собираюсь перечислить самые необходимые навыки веб-разработки для программистов и разработчиков. Это абсолютно необходимые навыки для веб-разработчика, которые не только помогут вам найти работу фронтенд-разработчика, но и помогут вам стать разработчиком полного стека в долгосрочной перспективе.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/10/best-frontend-skills-web-developer.html
Available now! Telegram Research 2025 — the year's key insights 
