Java News @java_newss Channel on Telegram

Java News

@java_newss


Все новости связанные с Java!

По всем вопросам: @NadikaKir

Мы на бирже: https://telega.in/c/java_newss

Java News (Russian)

Java News - самый актуальный и информативный канал, посвященный всем новостям, связанным с языком программирования Java! Если вы хотите быть в курсе всех последних событий в мире Java, то этот канал именно для вас. Здесь вы найдете свежие новости о разработке языка Java, обновлениях в Java SE, Java EE, Android и многом другом.

Канал @java_newss призван объединить всех ценителей Java, чтобы делиться важной информацией, обсуждать последние тренды и находить ответы на вопросы. Если у вас есть какие-либо вопросы или предложения, всегда можно обратиться к администратору канала @NadikaKir.

Присоединяйтесь к нашему каналу Java News и оставайтесь в курсе всех событий в мире программирования на Java! Мы также представлены на бирже https://telega.in/c/java_newss, где вы можете найти еще больше интересного контента и общения с единомышленниками. Не упустите возможность быть в центре событий и расширить свои знания в области Java!

Java News

14 Jan, 13:48


Шаблон проектирования: Chain of Responsibility

Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.

Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.

Читать статью

Java News

14 Jan, 10:03


Приглашаем вас на открытый вебинар: «Реализация простого HTTP-сервера на Java Core»

Дата: 16 января в 20:00 мск
Спикер: Александр Фисунов

🧩Программа урока:
- Введение в HTTP и его роль в веб-приложениях.
- Создание простого HTTP-сервера с использованием Java Core.
- Разбор ключевых компонентов стандартной Java библиотеки для работы с HTTP.

📚Урок будет полезен тем, кто хочет:
- Узнать, как работают Java веб-приложения изнутри.
- Разобраться в принципах работы HTTP-протокола.
- Получить практический опыт в реализации базового HTTP-сервера.

🔥В результате урока вы:
- Узнаете, как использовать базовые возможности Java для создания HTTP-сервера.
- Поймете, как работают application server'ы и контейнеры сервлетов.
- Сможете применить полученные знания для работы с Java веб-приложениями.

Участники всех открытых уроков получат скидку🎁 на большое обучение

👉Регистрируйтесь на открытый вебинар по ссылке: https://vk.cc/cHhexH

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

14 Jan, 08:32


Сопоставление с шаблоном в Java — 5 примеров для занятых разработчиков

Будучи занятым разработчиком, трудно следить за новыми возможностями и глубоко понимать, где и как их можно использовать.

В этой статье блога я расскажу о 5 местах, где вы можете использовать сопоставление с шаблоном в Java, не погружаясь в тонкие детали. Когда вы решите, что готовы к дальнейшему изучению, посмотрите ссылки, включенные в эту статью.

Читать статью

Java News

13 Jan, 15:13


Отладка API Java Message Service с использованием Lightrun

API Java Message Service (JMS) был разработан Sun Microsystems во времена Java EE. Он предоставляет простые абстракции для обмена сообщениями, в том числе производителя сообщений (Message Producer), потребителя сообщений (Message Consumer) и т.д.

Читать статью

Java News

11 Jan, 18:25


Создаем байт-код для JVM без компилятора

Виртуальная машина Java использует концепцию промежуточного байт-кода для обеспечения переносимости между операционными системами и аппаратными платформами. Использование байт-кода позволяет отделить компилятор от среды выполнения и выполнять компиляцию с разных языков программирования для исполнения на JVM. В этой статье мы разберемся с внутренней организацией class-файлов и байт-кода в них и научимся работать с фреймворком ASM для исследования и программной генерации байт-кода для динамического определения новых классов или их компиляции из других языков программирования.

Читать статью

Java News

11 Jan, 07:59


Разбираем float на части

Всем привет, многие, наверное, знают про структуру чисел с плавающей запятой, но мне захотелось вдохнуть немного жизни в эти формулы. В этой статье я разберу на части число, наглядно показав что и откуда берется. Код будет на Java.

Читать статью

Java News

10 Jan, 07:18


Путешествие к центру Spring Security

Я вас категорически приветствую! В этой статье я хотел бы поглубже разобрать такую штуку как Spring Security, а в частности Security фильтры, как они работают в целом и как объединяются в цепочку ApplicationFilterChain.

Скажу сразу, эта статья является скорее финальной точкой моего ночного дебагинга кишочков Spring Security, а также одной из основных целей этой статьи является закрепление знаний, которые я получил. Но это не отменяет тот факт, что статья кому-то (и я уверен что многим) будет полезна. Поехали.

Читать статью

Java News

09 Jan, 18:25


Опыт отладки хитрой утечки прямой памяти

Pinterest поддерживает формирование отчётов по метрикам рекламных объявлений внешних рекламодателей и расчёт рекламных бюджетов в реальном времени. Всё это основано на потоковых конвейерах обработки данных, созданных с помощью на Apache Flink. Доступность заданий (job) Flink для пользователей находится на уровне 99-го перцентиля. Но время от времени некоторые задачи (task) «валятся» под ударами неприятных ошибок, вызванных утечками прямой памяти (Out-Of-Memory, OOM), возникающими сразу в нескольких операторах.

Читать статью

Java News

09 Jan, 06:53


Memory Fences и volatile в Java: низкоуровневые гарантии порядка памяти

Сегодня рассмотрим интересную тему для тех, кто сталкивается с многопоточностью в Java – это управление порядком памяти. Базовых инструментов синхронизации, например как synchronized или блокировки, порой недостаточно. Именно здесь могут помочь низкоуровневые механизмы, такие как Memory Fences и ключевое слово volatile.

Эти инструменты позволяют контролировать порядок выполнения операций с памятью. В этой статье мы рассмотрим, как volatile влияет на поведение программы, что такое Memory Fences, и как они могут помочь в сложных ситуациях с потоками.


Читать статью

Java News

07 Jan, 20:45


Управление Arduino с помощью Java и Spring

Вы
когда-нибудь хотели управлять платой Arduino с помощью Raspberry Pi или компьютера, используя только язык Java, а не язык Arduino?

В этой статье я покажу, как я создал веб-приложение для управления Arduino с помощью Raspberry PI с использованием Spring.

Читать статью

Java News

07 Jan, 08:17


Поднимаем кластер PostgreSQL в Docker и Testcontainers

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать статью

Java News

06 Jan, 13:35


Различия между Spring Boot и Spring Cloud Framework

Spring Boot и Spring Cloud — две популярные платформы, используемые для создания масштабируемых и высокопроизводительных приложений. Цель этой статьи — помочь разработчикам понять различия между ними и принять обоснованное решение, какую платформу использовать для своего следующего проекта.

Читать статью

Java News

05 Jan, 11:50


Как в IntelliJ IDEA написать и собрать в исполняемый .exe файл приложение на JavaFX

При кажущейся простоте создания приложения на JavaFX (особенно с помощью JavaFX Scene Builder 2.0 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.

Надеюсь, что моя статья поможет кому-нибудь избежать ошибок, найти ответы на вопросы или просто сразу пойти правильным путем (например, создавать обычный maven-проект на Java-8, вручную прописывая в pom.xml зависимости и способ сборки, и всегда указывать на латинице имена учетных записей, директорий в своей операционной системе).

Читать статью

Java News

05 Jan, 07:06


JavaDoc: добро или необходимое зло?

Привет! Меня зовут Андрей Костров, я старший разработчик в X5 Tech.
При создании проекта А мы вложили много сил в JavaDoc. Многим казалось это излишним. Затем проект А заморозили и начали новый – проект Б. При этом переиспользовали много кода из проекта А, вместе с JavaDoc. Рассказ о том, принёс ли JavaDoc пользу (спойлер: да). А также немного слов о том, где усилия по JavaDoc всё-таки были избыточны.

Читать статью

Java News

03 Jan, 07:37


Лучшие практики для Java-приложений в Kubernetes

В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.

Однако я рассматриваю все правила в рамках характеристик Java, а также показываю решения и инструменты, доступные для приложений на базе JVM.

Некоторые из этих рекомендаций по Kubernetes навязаны дизайном при использовании самых популярных Java-фреймворков, таких, как Spring Boot или Quarkus. Я покажу вам, как эффективно использовать их для упрощения жизни разработчиков.

Читать статью

Java News

02 Jan, 20:59


Полезные и неизвестные библиотеки Java

Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java.

Сегодня мы сосредоточимся на библиотеках Java. Обычно мы используем в своих проектах несколько внешних библиотек — даже если не включаем их напрямую. Например, Spring Boot поставляется с определенным набором зависимостей, включенным стартерами. Если мы включаем, например, spring-boot-starter-test, то одновременно мы включаем такие библиотеки, как mockito, junit-jupiter или hamcrest. Конечно, это известные библиотеки для сообщества.

Читать статью

Java News

01 Jan, 18:25


Spring Data JPA: проекции в запросах

Вероятно, первое, что приходит вам на ум, когда вы реализуете запрос с помощью Spring Data JPA — это проекции. Это связано с тем фактом, что проекции определяют атрибуты сущности и столбцы базы данных, возвращаемые вашим запросом. А возможность выбирать нужные столбцы очень важна для вашей бизнес-логики. Также это имеет решающее значение для производительности вашего приложения и поддерживаемости вашего кода. Вы можете (и должны) выбрать такую проекцию, которая минимизирует накладные расходы и предоставляет данные в наиболее удобной для использования форме.

Читать статью

Java News

01 Jan, 09:55


Производительность различных типов индексов в БД

Знаете ли вы, что композитные (многоколоночные) индексы работают в 10 раз быстрее чем комбинированные индексы? 😳

А знаете ли вы, почему при этом в Postgres выигрыш больше, чем в MySQL?

Если ваши ответы отрицательные, то предложенная сегодня восполнит эти пробелы.

Приятного чтения!

Читать статью

Java News

31 Dec, 13:07


9 ложных или устаревших представлений о Java

С момента первого выпуска Java в 1995 году многое изменилось как в программном, так и в аппаратном обеспечении. А переход на шестимесячный цикл релизов способствовал стремительной эволюции языка и инструментов Java.

В этой статье рассматриваются ложные и устаревшие представления о Java.

Читать статью

Java News

31 Dec, 05:49


Spring-потрошитель: жизненный цикл Spring Framework

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

Но насколько хорошо вы знакомы с жизненным циклом фреймворка? Наверняка вы сталкивались с проблемами поднятия контекста и освобождением ресурсов при его остановке, когда проект разрастается. Сегодня я попытаюсь наглядно показать вам это.

Читать статью

Java News

30 Dec, 20:22


Шпаргалка по структурам данных в Java

К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу поделиться с вами своей шпаргалкой, которую использую перед собеседованиями для повторения структур данных в Java.

Читать статью

Java News

29 Dec, 10:02


Лучшие практики написания кода в Spring Boot

Spring Boot — это широко используемый и очень популярный высокопроизводительный фреймворк корпоративного уровня. Практики и советы, приведенные в этой статье, помогут улучшить приложение Spring Boot и сделать его более эффективным.

Читать статью

Java News

28 Dec, 06:30


Один день из жизни JVM-инженера

Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина.
Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные.
Чем он вообще занимается? Почему JVM-инженеры всё так медленно делают? На каком языке стоит писать рантайм, а на каком компилятор? Как «папка бога» в Windows привела к неожиданным последствиям? Может ли «обычный джавист» стать JVM-инженером?

Читать статью

Java News

27 Dec, 10:30


Изолированные классы в Java

Изолированные (запечатанные) классы появились в Java 15 как средство ограничения иерархии наследования класса или интерфейса.

Предложенная сегодня статья имеет практический характер и содержит достаточно много кода, чтобы раскрыть тему изолированных классов.

Хорошей практики! 😃

Читать статью

Java News

27 Dec, 06:40


Красивый код с Java Optional и Either

Многие из Java разработчиков, особенно начинающие, упускают из вида возможности функционального программирования. 😒

Предложенная сегодня статья научит вас последовательному соединению экземпляров Optional и Either для написания лаконичного и красивого кода.

Хорошей практики!

Читать статью

Java News

26 Dec, 06:21


Работа с null ссылками: Kotlin vs. Java

Предложенная сегодня статья напомнит про "ошибку на миллион долларов", а также сравнит между собой языки программирования Java и Kotlin с точки зрения их работы с null ссылками. 😃

Приятного чтения!

Читать статью

Java News

25 Dec, 15:45


Руководство по обработке исключений в Java Stream

Друзья, вашему вниманию предлагается небольшое руководство по обработке исключений в Java Stream, из которого вы узнаете: 😃
✔️ Как обрабатывать проверяемые исключения, выбрасываемые методами из промежуточных операций в стримах
✔️ Как использовать блок try-catch в лямбда-выражениях
✔️ Как безопасно извлекать метод.

Также, даны рекомендации использовать Optional вместо выбрасывания значения null из извлекаемой функции.

Хорошей практики!

Читать статью

Java News

25 Dec, 12:20


Приглашаем вас на открытый вебинар: «Основы многопоточности в Java»

Дата: 25 декабря в 20:00 мск
Спикер: Борис Кириллов

📚Программа урока:
- Введение в многопоточность: что это и зачем это нужно.
- Изучение базовых классов для работы с потоками.
- Разбор типовых проблем многопоточности и подходов к их решению.

🔥Урок будет полезен тем, кто хочет:
- Разобраться в основах многопоточности в Java.
- Понять, как писать многопоточные программы.
- Узнать, какие классы используются для работы с потоками в Java.

🚀В результате урока вы:
- Поймете подходы к многопоточности в Java.
- Изучите базовые классы и синтаксис многопоточной обработки.
- Сможете применять полученные знания для создания более эффективных Java-приложений.

Участники всех открытых уроков получат скидку🎁 на большое обучение

👉Регистрируйтесь на открытый вебинар по ссылке: https://vk.cc/cGsKep

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

25 Dec, 11:08


Prostore — простой Event sourcing + CQRS фреймворк

На данный момент на рынке мало Event sourcing + CQRS фреймворков. А те, что есть, непопулярны и имеют слабую поддержку, поэтому многие создают свои in-house решения. В этой статье расскажу о выполненном командой «Programming Store» проекте Prostore, который может послужить примером при создании вашего собственного решения.

Читать статью

Java News

25 Dec, 07:20


Графический интерфейс для bash, делаем работу в командной строке удобнее

Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи. После этого интерфейс командной строки выглядит как-то бедно. Конечно, он очень хорошо продуман, сделан настолько удобным, насколько это возможно в текстовом UI, но в графическом UI возможностей намного больше. Представляю вам плагин для JetBrains IDE, позволяющий работать в командной строке cо всеми удобствами IDE.

Читать статью

Java News

24 Dec, 10:15


Реализации Microkernel архитектуры с помощью Java OSGI

Я хотел бы поделиться опытом реализации микроядерной архитектуры (microkernel) на Java с помощью OSGI (Open Service Gateway Initiative). Этот подход является промежуточным вариантом между микро-сервисной и монолитной архитектурой. С одной стороны присутствует разделение между компонентами на уровне VM с другой - межкомпонентное взаимодействие происходит без участия сети, что ускоряет запросы.

Читать статью

Java News

24 Dec, 06:58


Абстрактные классы и интерфейсы в Java

В каких случаях стоит использовать абстрактный класс, а в каких — интерфейс? Давайте разбираться, в чем между ними разница.

Читать статью

Java News

23 Dec, 07:06


Новое событие в JFR для диагностики использования устаревшего (deprecated) кода

В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется. Обычно о конкретных сроках удаления анонс делается заранее и в теории можно успеть подготовиться, но на практике не все так просто.

В больших проектах найти куски устаревшего кода в куче зависимостей задача не тривиальная и требующая хорошей автоматизации. В этой ситуации к нам приходит на помощь новый тип события в JFR. Он был добавлен в JDK 22.

Давайте посмотрим на простом примере как это работает.


Читать статью

Java News

22 Dec, 08:31


JPA Entity. Загрузи меня не полностью

JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей.
Подготовили статью, в которой рассмотрели имеющиеся в Spring Data JPA инструменты для частичной загрузки сущностей, а также разобрали их особенности и corner-кейсы.


Читать статью

Java News

21 Dec, 11:40


Семь принципов хорошей разработки

Принципы разработки программного обеспечения играют решающую роль при создании высококачественных, удобных в сопровождении и эффективных программных систем. К этим принципам относятся: DRY. KISS, YAGNI, SLAP, SOLID. О них и пойдет речь в данной статье.

Читать статью

Java News

20 Dec, 11:49


Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение

"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента, почему новый функционал нужно поместить в ту или иную автоматизированную систему.

Проблема была в том, что никто не понимал как правильно делить системы на части и по каким признакам включать в них новые модули. У собеседников не было никакой единой простой методики.

Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.

Читать статью

Java News

20 Dec, 07:19


Может ли Java-приложение использовать больше памяти, чем размер кучи

Возможно, вы замечали, что Java-приложение может превышать лимит памяти, указанный в параметре -Xmx (максимальный размер кучи). Дело в том, что JVM помимо кучи использует и другие области памяти.

Читать статью

Java News

19 Dec, 13:46


RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь.

Читать статью

Java News

18 Dec, 13:06


Как ускорить прогон тестов в многомодульном проекте Maven

Большое количество модулей Maven замедляет сборку проекта и время прогона тестов. Для того, чтобы сохранить многомодульную структуру проекта и быстро прогонять тесты, мы в Wrike написали новый инструмент — Maven Modules Merger, который сократил время некоторых сборок с 50 до 12 минут. В статье подробно расскажу о том, с какими проблемами нам помог справиться Maven Modules Merger и поделюсь подробностями его создания.

Читать статью

Java News

17 Dec, 14:01


IT здорового человека.

Илья Мирин, инженер, CEO, CTO, DS и цифровой художник с 19 летним опытом работы в индустрии IT помогает *прокачать soft skills*

В том числе ты узнаешь:
- Как получить *job offer выше рынка?
- Как рассказать про свой опыт работы, чтобы *люди на собесе не уснули?
- Почему продуктовые *задачи всегда приносят в последний момент?
- Как быть, если *коллеги тебя не слушают?
- Как работая на удалёнке *быть в курсе всех важных событий и быть в "тусовке"
- Есть ли благодетели айтишника кроме *"удачи", "трудолюбия" и "нужных контактов"*, чтобы целенаправленно двигаться к цели

Илья знает про жизнь внутри IT все, он сам не сошел от этого с ума, и тебе поможет.

Подписывайся на https://t.me/healthyit

Java News

27 Nov, 13:30


⁉️ Ваши микросервисы тормозят? База данных перегружена? Решение есть — кэширование!

На открытом уроке «Кэширование в микросервисной архитектуре» мы разберём, как ускорить системы, сократить время отклика и снизить нагрузку. Вы узнаете про паттерны кэширования, типы кэшей и популярные инструменты вроде Redis и Memcached.

Представьте микросервисы, которые работают молниеносно, а база данных больше не задыхается от запросов. Ваша архитектура станет не только производительной, но и устойчивой.

🔥 Спикер Сергей Прощаев — ведущий инженер-Java-разработчик в одной из крупнейших нефтяных компаний России.

🔴 Регистрируйтесь на вебинар 11 декабря в 20:00 мск! Урок пройдёт перед стартом курса «Microservice Architecture». Только участники получат скидку на обучение: https://vk.cc/cFmQ7u

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

27 Nov, 12:30


Аннотации и рефлексия в Java

Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения.

Читать статью

Java News

27 Nov, 08:02


5 декабря пройдет онлайн-митап для java-разработчиков от Naumen. Спикеры поделятся опытом в промышленной java-разработке, реальными кейсами и полезными рекомендациями.

В программе три доклада:
🔸 Как приручить JSON — Максим Осипов, руководитель группы разработки Naumen SMP
🔸 Прагматика микросервисов: строим большую систему с помощью пачки монолитов — Дмитрий Черкасов, DevRel Jmix
🔸 Бэкэнд изображений в ОК — Руслан Измайлов, ведущий java-разработчик в ОК, VK

Старт митапа 5 декабря в 16:00 мск | 18:00 екб.

Участие как всегда бесплатное, нужна только регистрация.

→ Зарегистрироваться на митап.

Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
erid: 2VtzqxZ8sZ1

Java News

27 Nov, 06:08


Не используйте в своем коде паттерн Singleton

Паттерн Singleton популярен среди новичков из-за простоты реализации и возможности глобальной обработки состояний. Но стоит ли его использовать? Из статьи вы узнаете про недостатки Singleton, а также про альтернативу, способную его заменить.

Читать статью

Java News

26 Nov, 09:31


Отложенные вычисления с помощью паттернов

Присоединяйтесь к нашему открытому уроку и погрузитесь в концепцию отложенных вычислений на основе паттернов Мост, Интерпретатор, Итератор.

Ждем вас на открытом вебинаре 28 ноября в 20:00 мск.

🚀На вебинаре вы узнаете:

1. Как и когда применять шаблоны отложенных вычислений для оптимизации производительности.

2. Практические кейсы.

🎯 Вебинар будет полезен:

• Разработчикам и инженерам, стремящимся улучшить производительность в приложениях.

• Архитекторам ПО, проектирующим масштабируемые и отказоустойчивые системы.

• Тимлидам и техническим руководителям, которые хотят повысить производительность и устойчивость решений своей команды.

В результате вебинара:

• Вы научитесь применять шаблоны Мост, Интерпретатор, Итератор.

Встречаемся в преддверии старта курса «Архитектура и шаблоны проектирования». Все участники получат спец. цену на курс.

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cFjUf6

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Java News

26 Nov, 08:27


Как узнать, допускает ли изменения коллекция в Java?

Пишу эту статью, чтобы помочь Java-разработчикам понять, почему необходимо различать интерфейсы изменяемых (mutable) и неизменяемых (immutable) коллекций. Java — на редкость эффективный язык программирования с почти 30-летней историей. Java Collections Framework (JCF) — одна из наиболее активно используемых частей стандартной библиотеки Java — сыграл важную роль в успешном развитии языка. Сегодня Java продолжает совершенствоваться в соответствии с новыми требованиями, оставаясь в ряду лучших языков программирования. Однако, как и во многих других начинаниях, прошлые успехи не являются гарантией будущих достижений.

Читать статью

Java News

26 Nov, 05:11


Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования

Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в связи с этим возникает необходимость оптимизировать этот процесс. В этой статье рассказывается про плагин Sprinter для IntelliJ IDEA, который может помочь значительно сократить время на локальный запуск тестов.

Читать статью

Java News

24 Nov, 07:40


Конфигурирование пула соедининений JDBC в Hibernate

Возможно, вы не знаете, но Hibernate поддерживает пул соединений JDBC. 😳

Предложенная сегодня статья расскажет о том, как сконфигурировать пул соединений JDBC в Hibernate-приложении, а также в нативном Hibernate-приложении.

Приятного чтения!

Читать статью

Java News

23 Nov, 11:20


⚡️Всероссийский Хакатон ФИЦ 2024

🚀Попробуйте себя в одном из предложенных кейсов:
1. Система контроля и управления доступом:
- Разработка системы контроля и управления доступом в реальном времени. Система будет включать API для управления сотрудниками, точками доступа и интеграцию с системой видеонаблюдения.

2. Parallax-scroll лендинг для сайта Insidium:
- Разработка одностраничного приложения (SPA) с административной панелью, позволяющей редактировать контент лендинг-страницы.

3. Цифровой сервис для ведения реестра зеленых насаждений города Москвы:
- Разработать сервис по работе с панорамами города Москва c возможностью разметки и подключению существующих open-source моделей для решения задач.

4. Цифровой помощник юриста:
- Разработка веб-сервиса для автоматической генерации различных типовых юридических документов на основе данных, введенных пользователем, с возможностью последующей правки сгенерированного документа.

И другие 19 кейсов смотрите на сайте: https://фиц2024.рф/hackathon

Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.

🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря

Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon

Java News

23 Nov, 09:01


Особое мнение: смотрим на нагрузочные тесты как на функциональные

Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте в статье.

Читать статью

Java News

21 Nov, 07:13


OOM: direct memory при работе с сетью TCP/IP через NIO в Java

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них 18 пишу на Java.

Сегодня я расскажу об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.

Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory".

Читать статью

Java News

20 Nov, 10:00


Начните свою карьеру Java-разработчика с Hexlet!

Хотите стать профессионалом в Java? Пройдите обучение и за 10 месяцев освоите все ключевые навыки, от основ до продвинутого уровня.

🎁 🎃 Бонусы к Черной пятнице! Вас ждет специальное предложение - скидка до 81 000 ₽. на обучение и второй курс в подарок!

Вас ждут сотни практических упражнений, реальные проекты для портфолио и поддержка опытных менторов. Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring.

А во время обучения вы также поучаствуете в Карьерном треке!

Пройдите 5 бесплатных уроков и откройте для себя увлекательный процесс обучения. Поймите, насколько интересен и перспективен этот путь, и получите уникальную возможность продолжить обучение на полном курсе со скидкой!

Java News

20 Nov, 08:54


23 шаблона проектирования для 99% разработчиков на Java

В этом исчерпывающем руководстве мы изучим все важные шаблоны ООП для написания кода.

Шаблоны проектирования — это испытанный способ решения проблемы в заданном контексте. Они скорее открыты, нежели придуманы, что очевидно и из применения слова «шаблон». Используя шаблон проектирования, вы получаете знания всех сообществ для безопасного решения этой проблемы.

Иногда требуется небольшая доработка, и при корректном применении шаблонов идеальное решение находится. Объектно-ориентированная разработка часто сопряжена с многочисленными задачами, например созданием объектов, структурированием кода, реализацией поведений на основе различных контекстов.

Читать статью

Java News

19 Nov, 09:00


Умножаем любовь к математике, чтобы разделить ее с вами

ИТ-специалисты, слышали, скоро День математика?

1 декабря пройдут главные онлайн-события мероприятия: доклады от профессоров математики из МФТИ, ВШЭ и ЦУ и математический диктант. Хорошая возможность пообщаться с единомышленниками и просто классно провести время.

А пока ждете праздника, банк подготовил активности на весь месяц. Будут лекции и многое другое. Выбирайте на сайте, что нравится больше. И регистрируйтесь, чтобы ничего не пропустить

Java News

08 Nov, 10:28


Как создать потокобезопасный счетчик в Java

Из данной статьи вы узнаете, как на примере простого счетчика писать потокобезопасные программы. В начале автор рассказывает, почему обычный счетчик небезопасен для нескольких потоков. Затем применяет разные техники, повышая его потокобезопасность: synchronization, locks, Unsafe, VarHandle и AtomicInteger.

Читать статью

Java News

07 Nov, 08:00


Podlodka Java Crew снова в деле!

Уже 18 ноября стартует неделя "Асинхронной архитектуры" для всех, кто работает с высоконагруженными системами и задачами реального времени.

В каждой сессии – только практические подходы, с возможностью применять прямо в текущих проектах. Сессии проходят утром и вечером, так что точно найдется время подключиться.

- На круглом столе Митя Александров и Александр Нозик обсудят, что эффективнее в Java — виртуальные потоки, реактивность или корутины 💬

- В сессии Евгения Молокова обсудим, в каких случаях Kafka Streams может уступать Apache Flink и как Flink решает задачи потоковой обработки данных🚀

- Денис Винокуров и Дмитрий Разуваев объяснят, почему асинхронность Kafka не всегда соответствует ожиданиям и как это фиксировать 💻

- Сергей Петрелевич проведет воркшоп по WebFlux для асинхронных систем, где разберет реальные кейсы 🛠️

Никакой теории, только конкретные подходы для использования!

Скорее забирай early-bird билеты — https://podlodka.io/javacrew.

Java News

03 Nov, 09:08


Подключение к GigaChat API на Java: пошаговое руководство

В этой статье я расскажу о том, как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов, чтобы получать ответы от GigaChat в своем приложении.

Читать статью

Java News

30 Oct, 12:01


Amplicode учит вашу IDE говорить на языке Spring Boot! 

Amplicode – многофункциональный плагин для IntelliJ IDEA Community и Ultimate, упрощает и ускоряет работу с технологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct и т.д.

Основные возможности

Навигация по проекту согласно архитектуре Spring приложения  
Создание объектов сразу в терминах фреймворка вместо Java классов: контроллеры, репозитории, сервисы, сущности, события, DTO, мапперы и т.д.
Палитра и инспектор, позволяющие видеть опции, доступные разработчику в текущем контексте
Умные инжекции, подсказки и исправление ошибок

Это малая часть того, на что способен Amplicode. В настоящий момент возможности доступны абсолютно бесплатно!

Сделано с любовью к разработчикам командой, создавшей суперпопулярный плагин JPA Buddy ❤️

Попробовать Amplicode

Посмотрите как Amplicode помогает разрабатывать на Spring Boot в IntelliJ IDEA! 

#реклама
О рекламодателе

Java News

30 Oct, 06:35


Делаем свою простейшую систему сборки для Java

Довелось мне обучать одного знакомого, желающего войти в ИТ (привет, Саша!). Человек он упорный, прошел разные курсы, стажировки, упорно продолжает идти вперед и уже вполне тянет на уровень джуна и решает прикладные задачи. Но иногда внезапно задает такие вопросы, из которых я понимаю, что у него огромные дыры в базовых знаниях и представлениях. На курсах этому, видимо, не учат.

Один из последних вопросов был про устройство сборки, непонимание того как исходный код собирается в исполняемый и запускается. Начинающим обычно говорят в духе «вот создаешь Gradle‑проект, в IDE жмешь кнопочку запуска и все работает». Но как только возникает необходимость что‑то в этом простом процессе усложнить, или понять — начинаются проблемы.

Gradle/Maven при этом представляются таким черным ящиком, в котором есть кнопка сборки и запуска, а внутри — магия, превращающая исходный код в запущенную программу.

В этой статье я пробегусь по основам того, как в Java работает компиляция, а также покажу, как по шагам прийти от компиляции отдельных файлов вручную к идее необходимости системы сборки, и как написать свою простенькую систему. Ведь лучший способ понять, как что‑то устроено внутри — сделать это самому.

Читать статью

Java News

28 Oct, 13:02


🎯 Весь фокус на API — решай реальные задачи и побеждай с Платформой API ВТБ!

Когда: 21 октября — 23 ноября 2024 
Формат: гибридный (онлайн и офлайн) 
Призовой фонд: 2 млн рублей

🔥 Хакатон подойдёт для тебя, если ты:

– Студент или выпускник технического вуза; 
– Backend / Frontend-разработчик;
– Аналитик;
– Архитектор;
– Специалист в области ИБ;
– DevRel.

❗️Выбери свой трек:

• Open API. Создание приложений на основе Open Banking API;
• gRPC. Реализация микросервиса, имплементирующего стандарты СТО БР ФАПИ.СЕК с реализацией на протоколе gRPC;
• Единая платформа аутентификации API. Создание новых подходов к мультифакторной аутентификации.

Прими участие в составе команды или индивидуально. Если нет команды — поможем её собрать!

▶️ Регистрация уже открыта! Подай заявку до 5 ноября, 23:59 МСК по ссылке.

Java News

28 Oct, 08:19


О SOLID с примерами их использования в JDK

В данной статье Eric J. Bruno коротко рассказывает о принципах SOLID, приводя подходящие примеры их применения из JDK.

Понимание SOLID — обязанность любого Java-разработчика, т.к. их правильное использование способствует написанию понятного и поддерживаемого кода.

Читать статью

Java News

23 Oct, 09:31


⁉️Хотите повысить свою квалификацию в Java-разработке?

👩‍💻 Инвестируйте в успех своей карьеры прямо сейчас! На курсе «Java Developer. Professional» вы получите:

✔️ знание актуального стека технологий;
✔️ 96 часов практической работы с детальным разбором технологий изнутри;
✔️ понимание основ функционирования JVM (сборка мусора, byteCode);
✔️ освоение приемов применения многопоточности;
✔️ практику решения сложных задач с подробным код-ревью от экспертных Java-разработчиков;
✔️ расширение возможностей использования языка Java;
- умение использовать современные фреймворки: Spring WebFlux, Kafka, реактивный Postgres, Kubernetes.

Вы получите инструменты и знания, которые помогут вам писать код быстрее и чище. Все практические навыки вы сможете незамедлительно применять в своей работе.

Готовы прокачать свою востребованность?

➡️ Пройдите короткий тест прямо сейчас, чтобы получить специальную цену на обучение: https://vk.cc/cD6yon

🎁 А еще приятный бонус: до конца октября действует скидка 10% на обучение.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

22 Oct, 14:02


Перестаём бояться генерировать байт-код

Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.

Но с чего начать погружение в байт-кодную магию? В сети есть некоторое количество туториалов по этому вопросу. Как мне кажется, они либо показывают слишком простые случаи, от которых непонятно, как перейти к чему-то более интересному, либо очень основательные и требуют вникать в теорию, собирать целиком картину в голове по кусочкам. Я хотел бы попробовать внести свой вклад в эту тему — надеюсь, у меня получится показать, как можно побороть первый страх и написать что-то похожее на реалистичный сценарий без особого вникания в теорию на первом этапе.

Читать статью

Java News

16 Oct, 09:20


Хотите научиться разрабатывать парсеры pdf-файлов и создавать полезные приложения?

Приглашаем на открытый урок «Разработка парсера pdf-файла».

🗓 24 октября в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»

На вебинаре разберем:

- как разработать парсер для выписки ВТБ банка в формате pdf;
- весь путь от идеи до практического применения;
- ответы на все возникающие вопросы.

⬇️ В результате урока вы получите практически полезное приложение с подробностями реализации.

Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.

Все участники вебинара получат специальную цену на обучение!

🔗 Ссылка на регистрацию: https://vk.cc/cCEZuK

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

16 Oct, 06:16


Все о JavaFX в одном месте

Новый сайт, посвященный всему, что связано с JavaFX: новости, библиотеки, инструменты, видеоуроки, книги и многое другое. Если вы изучаете JavaFX, то вам определенно стоит посетить этот сайт.

Перейти на сайт

Java News

09 Oct, 09:20


👩‍💻 «Знакомство со Spring Cloud».

Приглашаем на открытый урок, где мы разберем:

✔️ что такое Spring Cloud и для чего он нужен;
✔️ из каких основных компонентов состоит Spring Cloud;
✔️ как использовать ключевые функции Spring Cloud для разработки.

🗓 10 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»

🔗 Ссылка на регистрацию : https://vk.cc/cCcvW5

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

09 Oct, 07:57


Заменят ли потоки данных циклы в Java?

Выпуск версии Java 8 стал знаменательным событием в истории Java. В нем были представлены потоки данных (англ. Streams) и лямбда-выражения, которые сейчас широко применяются. Если вы не знакомы с потоками данных или никогда не слышали о них, то ничего страшного. В большинстве случаев можно обойтись без них, задействуя циклы.

И зачем тогда, спрашивается, нужны потоки данных? Есть ли у них преимущества перед циклами? Могут ли они их заменить? В статье мы изучим соответствующий код, сравним производительность и посмотрим, смогут ли потоки данных стать полноценной заменой циклов.

Читать статью

Java News

08 Oct, 14:46


Тестовое собеседование на Middle Java-разработчика в среду

Заходи завтра, 9 октября в 19:00 по мск на открытое онлайн-собеседование от ШОРТКАТ, чтобы узнать:

Чего ждут от кандидатов на Middle позиции в Java-разработке

Какие вопросы задают на интервью и зачем

Как подготовиться к собесу,
чтобы получить оффер
Интервью проведёт Роман Половинцев, ex. TeamLead в Сбере.

Чтобы записаться на эфир, переходи в бот → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvVAs2r

Java News

07 Oct, 18:27


Java на стероидах, или опыт работы с Jmix

Как после привычного Spring за месяц сделать сайт с платформой быстрой разработки Jmix. Коротко о технологии, особенностях, возникающих в процессе вопросах и ответах на них.

Читать статью

Java News

03 Oct, 09:20


👩‍💻 Открытый урок «Знакомство со Spring Cloud».

Как эффективно использовать самый популярный фреймворк в Java-мире для профессиональной разработки приложений?

📆 Узнайте на открытом вебинаре 10 октября в 20:00 мск.

Где мы разберем:

- что такое Spring Cloud и для чего он нужен;
- из каких основных компонентов состоит Spring Cloud;
- как использовать ключевые функции Spring Cloud для разработки.

Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.

Встречаемся в преддверии старта курса «Java Developer. Professional». Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cBPMpB

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Java News

03 Oct, 06:56


Продвинутый GraphQL со Spring Boot

В этой статье вы узнаете, как использовать Spring for GraphQL в своем приложении Spring Boot.

Spring for GraphQL — относительно новый проект. Версия 1.0 была выпущена несколько месяцев назад. До этого релиза нам приходилось подключать сторонние библиотеки, чтобы упростить реализацию GraphQL в приложении Spring Boot.

Читать статью

Java News

02 Oct, 15:05


Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥

Мы научим вас создавать и тренировать нейронные сети, и вы сможете:

1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате

На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:

🧬 Прогноз стоимости золота
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео

Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта

🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду

Java News

02 Oct, 13:35


Шаблон проектирования: Chain of Responsibility

Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.

Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.

Читать статью

Java News

02 Oct, 09:31


Хотите узнать, чем Clojure выделяется среди других бэкендовых языков и что он может вам предложить?

Ждем вас на открытом вебинаре 3 октября в 20:00 мск, где мы разберем:
- с какими задачами сталкиваются разработчики Clojure;
- основные особенности и преимущества Clojure по сравнению с другими языками;
- какие возможности и перспективы предлагает Clojure для разработчиков.

Встречаемся в преддверии старта курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cBLRvv

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Java News

02 Oct, 07:08


Сопоставление с шаблоном в Java — 5 примеров для занятых разработчиков

Будучи занятым разработчиком, трудно следить за новыми возможностями и глубоко понимать, где и как их можно использовать.

В этой статье блога я расскажу о 5 местах, где вы можете использовать сопоставление с шаблоном в Java, не погружаясь в тонкие детали. Когда вы решите, что готовы к дальнейшему изучению, посмотрите ссылки, включенные в эту статью.

Читать статью

Java News

28 Sep, 09:01


Разработчик Java, ты тут? 😎

Хочешь построить карьеру в IT? Для Java-разработчиков запускаем бесплатный онлайн-интенсив в Открытых школах Т1. Прокачай скилы и, если повезет, попади в штат Холдинга Т1 — крупнейшей ИТ-компании по выручке в России  по версии RAEX и CNews Analytics 2023.

Зачем участвовать? 

🔵 Бесплатное обучение в гибком формате: по вечерам, онлайн, из любого города РФ.
🔵 Уникальный рыночный опыт. Проекты Т1 ежегодно побеждают в ИТ-конкурсах: Global CIO, Национальной банковской премии и др. Тебя обучит и поддержит команда профессионалов. 
🔵 Возможность влиять на развитие ключевых отраслей экономики: в портфеле Т1 800+ высокотехнологичных проектов и 70+ продуктов и услуг на современном техстеке для крупнейших компаний и госсектора. 
🔵 Карьерный рост и поддержка. Уникальный карьерный фаст-трек для выпускников Открытых школ помогает молодым специалистам прокачаться до уровня мидла в Т1 за 1,5 года.

Успей подать заявку до 11 октября! 

Реклама. ООО "Т1". ИНН 7720484492.

Java News

26 Sep, 09:50


🏓 Знакомимся с Java на примере пинг-понга

Хотите узнать, как создавать программы на Java, даже если никогда не программировали?

Ждем вас на открытом вебинаре 26 сентября в 20:00 мск,

где мы разберем:

➡️ что такое программирование и язык Java;
➡️ как создать игру пинг-понг с нуля на Java;
➡️ как работать с двумерной графикой в Java.

Урок полезен для тех, кто хочет начать изучать Java с нуля и увидеть на практике, как создаются приложения.

🎙 Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cBpjQG

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Java News

26 Sep, 06:45


Отладка API Java Message Service с использованием Lightrun

API Java Message Service (JMS) был разработан Sun Microsystems во времена Java EE. Он предоставляет простые абстракции для обмена сообщениями, в том числе производителя сообщений (Message Producer), потребителя сообщений (Message Consumer) и т.д.

Читать статью