В ClickHouse джоины всегда считались слабым местом. Но система развивается, производительность и функциональность джоинов совершенствуется.
На вебинаре «Надо ли бояться джоинов в современном ClickHouse?» вы узнате:
- Как работают разные типы джоинов в ClickHouse: INNER, LEFT, RIGHT, CROSS
- Какие подходы к организации таблиц для выполнения джоинов – оптимальны
- Как использовать функциональность JOIN и ARRAY JOIN для сложных аналитических запросов
- Как настроить параметры ClickHouse для повышения производительности джоинов
Cпикер: Алексей Железной: старший инженер данных и руководитель курса «ClickHouse для инженеров и архитекторов БД».
Будет интересно: руководителям проектов, аналитикам данных, разработчикам и архитекторам баз данных, инженерам по обработке данных.
Бонус для участников! Скидка 5% на любой курс OTUS и гайд «Как не положить ClickHouse: примеры из практики»
10 декабря, 18:30 МСК, Бесплатно
Записаться на событие - https://otus.pw/VQuN/?erid=LjN8KLors
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
На вебинаре «Надо ли бояться джоинов в современном ClickHouse?» вы узнате:
- Как работают разные типы джоинов в ClickHouse: INNER, LEFT, RIGHT, CROSS
- Какие подходы к организации таблиц для выполнения джоинов – оптимальны
- Как использовать функциональность JOIN и ARRAY JOIN для сложных аналитических запросов
- Как настроить параметры ClickHouse для повышения производительности джоинов
Cпикер: Алексей Железной: старший инженер данных и руководитель курса «ClickHouse для инженеров и архитекторов БД».
Будет интересно: руководителям проектов, аналитикам данных, разработчикам и архитекторам баз данных, инженерам по обработке данных.
Бонус для участников! Скидка 5% на любой курс OTUS и гайд «Как не положить ClickHouse: примеры из практики»
10 декабря, 18:30 МСК, Бесплатно
Записаться на событие - https://otus.pw/VQuN/?erid=LjN8KLors
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤2👍2🔥2🎉1
Новости_Java_#4_Java_24_стабилизировалась,_Stable_Values,_Serialization.webm
580.2 MB
Новости Java #4 от miniJUG. Java 24 стабилизировалась, Stable Values, Serialization 2.0.
Java 24 перешла в первую фазу Rampdown. Это значит, что список фич стабилизировался, и в Java 24 уже не попадут никакие новые JEP'ы.
Появился новый черновик JEP: Stable Values (Preview).
Brian Goetz и Viktor Klang рассказали про новую сериализацию в Java (Marshalling).
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Java 24 перешла в первую фазу Rampdown. Это значит, что список фич стабилизировался, и в Java 24 уже не попадут никакие новые JEP'ы.
Появился новый черновик JEP: Stable Values (Preview).
Brian Goetz и Viktor Klang рассказали про новую сериализацию в Java (Marshalling).
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🎉3🔥2
Создание микросервиса
Присоединяйтесь к нашему открытому уроку и погрузитесь в основы разработки микросервисов
🚀На вебинаре вы узнаете:
1. Основные принципы проектирования микросервисов: разделение на небольшие независимые компоненты, которые взаимодействуют через API.
2. Способы интеграции микросервисов с помощью REST API, gRPC или очередей сообщений (RabbitMQ, Apache Kafka).
3. Подходы к тестированию, отладке и мониторингу микросервисов для обеспечения их корректной работы в продакшене.
Практика: Расскажем, как проектировать микросервисную архитектуру, выбирать технологии и инструменты для её реализации.
👉 Регистрация и подробности о курсе «Архитектура и шаблоны проектирования» https://vk.cc/cFPHSA
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Присоединяйтесь к нашему открытому уроку и погрузитесь в основы разработки микросервисов
🚀На вебинаре вы узнаете:
1. Основные принципы проектирования микросервисов: разделение на небольшие независимые компоненты, которые взаимодействуют через API.
2. Способы интеграции микросервисов с помощью REST API, gRPC или очередей сообщений (RabbitMQ, Apache Kafka).
3. Подходы к тестированию, отладке и мониторингу микросервисов для обеспечения их корректной работы в продакшене.
Практика: Расскажем, как проектировать микросервисную архитектуру, выбирать технологии и инструменты для её реализации.
👉 Регистрация и подробности о курсе «Архитектура и шаблоны проектирования» https://vk.cc/cFPHSA
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤3👍3🔥2
Как используется класс Future?
Класс Future является частью пакета java.util.concurrent, и он используется для представления результата асинхронной операции или задачи, которая выполняется в фоновом потоке. Future позволяет вам управлять и получать результаты выполнения задачи в будущем, даже если она еще не завершилась.
@javalib #java
Класс Future является частью пакета java.util.concurrent, и он используется для представления результата асинхронной операции или задачи, которая выполняется в фоновом потоке. Future позволяет вам управлять и получать результаты выполнения задачи в будущем, даже если она еще не завершилась.
@javalib #java
👍14🔥3❤2
Forwarded from Java Guru 🤓
Что выведет следующий код?
Anonymous Quiz
20%
15
13%
15.0
5%
RuntimeException
58%
Ошибка компиляции
4%
15 или 15.0 в случайном порядке
👍16🎉5🔥4
Приглашаем на бесплатный вебинар!
🗓 18 декабря в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.
На занятии мы с нуля создадим интерактивную новогоднюю открытку с помощью Java и фреймворка LibGDX.
Вы сможете предложить свои идеи, и мы реализуем их в реальном времени — вы увидите, как рождается код.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
🔗 Ссылка на регистрацию: https://vk.cc/cFS6dN
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
Java varargs
Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.
Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.
@javalib #java
Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.
Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.
@javalib #java
👍16🔥7
Forwarded from Java Guru 🤓
Какая строка инициализации приведёт к ошибке?
Anonymous Quiz
45%
1
4%
2
5%
3
29%
4
17%
Ошибки не будет
❤6👍3🔥3😁3
Класс java.lang
Класс java.lang — это базовый пакет, который автоматически импортируется в любую программу на Java.
Содержит фундаментальные классы, как Object, String, Integer и т. д., определяет общие классы-исключения, такие как NullPointerException, ArithmeticException, класс Math с математическими функциями, System для взаимодействия с системой.
Также включает класс Thread для многопоточного программирования, интерфейсы Cloneable, Runnable, Comparable, определяет класс Class, представляющий классы времени выполнения.
@javalib #java
Класс java.lang — это базовый пакет, который автоматически импортируется в любую программу на Java.
Содержит фундаментальные классы, как Object, String, Integer и т. д., определяет общие классы-исключения, такие как NullPointerException, ArithmeticException, класс Math с математическими функциями, System для взаимодействия с системой.
Также включает класс Thread для многопоточного программирования, интерфейсы Cloneable, Runnable, Comparable, определяет класс Class, представляющий классы времени выполнения.
@javalib #java
👍19🔥8❤3😁2
Forwarded from Java Guru 🤓
Где ошибка в коде?
Anonymous Quiz
3%
Вывод элементов в цикле приводит к ConcurrentModificationException
16%
Неправильное объявление массива
2%
Переменная arr должна быть статической
7%
Неверный синтаксис цикла for
72%
Оператор <= приводит к ArrayIndexOutOfBoundsException
❤14👍8
Media is too big
VIEW IN TELEGRAM
Основы маппинга Entity в DTO в Spring: Простое введение!
Узнайте, как правильно маппить Entity в DTO в Spring и защитить свое приложение от утечек данных!
В этом видео мы разбираем основы маппинга в Spring: как преобразовывать Entity в DTO для повышения безопасности и производительности приложения. Мы не будем углубляться в сложные сценарии, такие как связи One-to-Many или Many-to-One — эти темы мы оставим для следующих видео. Если вы только начинаете, это видео станет отличным стартом для освоения базовых принципов!👨💻
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Узнайте, как правильно маппить Entity в DTO в Spring и защитить свое приложение от утечек данных!
В этом видео мы разбираем основы маппинга в Spring: как преобразовывать Entity в DTO для повышения безопасности и производительности приложения. Мы не будем углубляться в сложные сценарии, такие как связи One-to-Many или Many-to-One — эти темы мы оставим для следующих видео. Если вы только начинаете, это видео станет отличным стартом для освоения базовых принципов!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥2😁2
Отложенная инициализация
Отложенная инициализация — это паттерн проектирования, который позволяет отложить создание объекта до момента его реального использования. Он полезен, когда создание объекта требует значительных ресурсов или происходит в условиях, когда объект может не понадобиться.
В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).
Отложенная инициализация — это паттерн проектирования, который позволяет отложить создание объекта до момента его реального использования. Он полезен, когда создание объекта требует значительных ресурсов или происходит в условиях, когда объект может не понадобиться.
В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).
👍7❤4🔥3
Forwarded from Java Guru 🤓
👍9🔥3
FileChannel
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
@javalib #java
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
@javalib #java
❤9👍6🔥6
Паттерн Цепочка обязанностей (Chain of Responsibility)
Chain of Responsibility — это поведенческий паттерн, который позволяет передавать запросы по цепочке обработчиков, пока один из них не обработает запрос. Каждый обработчик в цепочке решает, может ли он обработать запрос или передать его следующему по цепочке.
Использование:
🔹 Когда нужно избежать жесткой привязки отправителя запроса к получателю.
🔹 Когда запрос должен быть обработан несколькими объектами, но заранее неизвестно, кто именно обработает запрос.
🔹 Когда необходимо гибко настраивать систему, добавляя или убирая обработчиков.
Преимущества:
1️⃣ Ослабляет связанность между объектами, отправляющими запросы, и объектами, обрабатывающими их.
2️⃣ Позволяет динамически добавлять новые обработчики в цепочку.
3️⃣ Способствует соблюдению принципа единственной ответственности, позволяя каждому обработчику заниматься своей задачей.
Недостатки:
1️⃣ Может быть сложнее отслеживать, кто в конечном итоге обработал запрос, особенно при длинных цепочках.
2️⃣ Не гарантирует, что запрос будет обработан, если ни один из обработчиков не способен это сделать.
3️⃣ Может усложнить структуру программы при использовании большого числа обработчиков.
📌 Паттерн полезен, когда необходимо разделить ответственность за обработку запросов между несколькими объектами, не создавая прямых зависимостей между ними.
@javalib #java
Chain of Responsibility — это поведенческий паттерн, который позволяет передавать запросы по цепочке обработчиков, пока один из них не обработает запрос. Каждый обработчик в цепочке решает, может ли он обработать запрос или передать его следующему по цепочке.
Использование:
🔹 Когда нужно избежать жесткой привязки отправителя запроса к получателю.
🔹 Когда запрос должен быть обработан несколькими объектами, но заранее неизвестно, кто именно обработает запрос.
🔹 Когда необходимо гибко настраивать систему, добавляя или убирая обработчиков.
Преимущества:
Недостатки:
📌 Паттерн полезен, когда необходимо разделить ответственность за обработку запросов между несколькими объектами, не создавая прямых зависимостей между ними.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6❤5
Инкапсуляция
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
@javalib #java
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
@javalib #java
❤11👍8🔥5