
🌸 Майская распродажа
Скидки до 70% в каталоге + дополнительно 3,5% по промокоду HAPPYMAY
В каталог
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- Нативный
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
9 650.34₽9 650.34₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
imageИзображение не доступно для предпросмотра
🔮 IKVM — мост между Java и .NET. Инструмент превращает скомпилированные JAR-файлы в .NET-сборки, а также помогает стандартным Java-библиотекам работать как родные для C#.
Особенность проекта кроется в динамической трансляции байт-кода в CIL на лету или статической компиляции в DLL. Это открывает интересные сценарии, например, использование Java-библиотек машинного обучения в .NET-приложениях или интеграция legacy-кода без полного рефакторинга.
🤖 GitHub
@javatg
Особенность проекта кроется в динамической трансляции байт-кода в CIL на лету или статической компиляции в DLL. Это открывает интересные сценарии, например, использование Java-библиотек машинного обучения в .NET-приложениях или интеграция legacy-кода без полного рефакторинга.
🤖 GitHub
@javatg
941
17:34
16.05.2025
imageИзображение не доступно для предпросмотра
Лайфхаки визуального сторителлинга 😉
Рассказываем, почему это полезно и как его построить, чтобы было понятно всем: и менеджерам, и разработчикам, и дизайнерам⬆
И да, вы справитесь, даже если не умеете рисовать! Александр Зинченко, СТО Яндекс 360, поделился инструментами для быстрых и удобных скетчей. А ещё рассказал про сложности передачи идей в проектных командах, которые можно решить с помощью визуального сторителлинга😎
Больше интересной и полезной информации в канале от команды Яндекс 360
Рассказываем, почему это полезно и как его построить, чтобы было понятно всем: и менеджерам, и разработчикам, и дизайнерам
И да, вы справитесь, даже если не умеете рисовать! Александр Зинченко, СТО Яндекс 360, поделился инструментами для быстрых и удобных скетчей. А ещё рассказал про сложности передачи идей в проектных командах, которые можно решить с помощью визуального сторителлинга
Больше интересной и полезной информации в канале от команды Яндекс 360
1100
15:34
16.05.2025
imageИзображение не доступно для предпросмотра
🌉 Apache Beam — единый мост между batch- и stream-обработкой данных. Этот проект позволяет описывать pipelines всего один раз, а запускать их где угодно: от локальной машины до кластеров Spark или Flink, не переписывая код.
Проект использует один API для всех сценариев — будь то анализ исторических данных или обработка бесконечных потоков событий в реальном времени. При этом инструмент не навязывает конкретную инфраструктуру, оставляя свободу выбора движка исполнения.
🤖 GitHub
@javatg
Проект использует один API для всех сценариев — будь то анализ исторических данных или обработка бесконечных потоков событий в реальном времени. При этом инструмент не навязывает конкретную инфраструктуру, оставляя свободу выбора движка исполнения.
🤖 GitHub
@javatg
1800
17:02
15.05.2025
imageИзображение не доступно для предпросмотра
Эволюция архитектурного ревью в Яндекс 360
За последние четыре года команда Яндекс 360 выросла в семь раз, а количество продуктов увеличилось на шесть. Такой рост был бы невозможен без общих технологий, которые мы создаём. Вы узнаете подходы и лайфхаки, которые помогли нам выдержать рост, оставаясь в контексте создания общих решений и не переизобретая велосипеды.
Смотрите доклад Евгения Ширанкова, руководителя платформенных сервисов Яндекс 360, чтобы узнать, как развивался наш подход к проектированию сервисов и как он позволяет создавать решения, которыми пользуется весь Яндекс.
Больше материалов о технологиях в Яндекс 360
@yandex360team
За последние четыре года команда Яндекс 360 выросла в семь раз, а количество продуктов увеличилось на шесть. Такой рост был бы невозможен без общих технологий, которые мы создаём. Вы узнаете подходы и лайфхаки, которые помогли нам выдержать рост, оставаясь в контексте создания общих решений и не переизобретая велосипеды.
Смотрите доклад Евгения Ширанкова, руководителя платформенных сервисов Яндекс 360, чтобы узнать, как развивался наш подход к проектированию сервисов и как он позволяет создавать решения, которыми пользуется весь Яндекс.
Больше материалов о технологиях в Яндекс 360
@yandex360team
1700
15:03
15.05.2025
🧠 Хитрая задача для Java-разработчиков: “Зеркальная фабрика”
📌 Условие:
Реализуйте абстрактную фабрику
- При создании объекта класса
- Но дополнительно логирует имя каждого вызванного метода и автоматически вызывает метод с тем же именем у другого объекта (его зеркала)
🎯 Иными словами:
❗️**Ограничения:**
- Классы могут быть любыми, но должны реализовывать интерфейсы
- Использовать только стандартные средства Java (рефлексия,
- Методы с одинаковым именем и сигнатурой должны быть вызваны у обоих объектов
✅ Решение:
```java
import java.lang.reflect.*;
public class MirrorFactory {
@SuppressWarnings ("unchecked")
public static <T> T create(T original, T mirror) {
Class<?> clazz = original.getClass().getInterfaces()[0];
return (T) Proxy.newProxyInstance(
clazz.getClassLoader(),
new Class[]{clazz},
new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println(method.getName() + "() called");
Object result1 = method.invoke(original, args);
Object result2 = method.invoke(mirror, args);
return result1; // приоритет оригиналу
}
});
}
}
```
Пример использования:
```java
interface MyService {
void doWork();
}
class MyServiceImpl implements MyService {
public void doWork() {
System.out.println("Working: " + this);
}
}
```
🔍 **Подвох:**
- Java `Proxy` работает **только с интерфейсами**
- Метод вызывается **дважды** — нужно быть осторожным с побочными эффектами
- Возврат значения только одного вызова (`original`) — важно, если метод что-то возвращает
🧠 **Чему учит задача:**
- Глубокому пониманию `java.lang.reflect.Proxy`
- Поведению `InvocationHandler` и сигнатур
- Умению комбинировать дизайн-паттерн **Proxy** и **Decorator**
- Практике метапрограммирования и логирования без изменения кода класса
---
@javatg
📌 Условие:
Реализуйте абстрактную фабрику
MirrorFactory
, которая:- При создании объекта класса
T
возвращает прокси, который повторяет все методы оригинального объекта- Но дополнительно логирует имя каждого вызванного метода и автоматически вызывает метод с тем же именем у другого объекта (его зеркала)
🎯 Иными словами:
MyService original = new MyService();
MyService mirror = new MyService();
MyService proxy = MirrorFactory.create(original, mirror);
proxy.doWork();
// Лог:
// doWork() called
// original.doWork() вызван
// mirror.doWork() вызван
❗️**Ограничения:**
- Классы могут быть любыми, но должны реализовывать интерфейсы
- Использовать только стандартные средства Java (рефлексия,
Proxy
, `InvocationHandler`)- Методы с одинаковым именем и сигнатурой должны быть вызваны у обоих объектов
✅ Решение:
```java
import java.lang.reflect.*;
public class MirrorFactory {
public static <T> T create(T original, T mirror) {
Class<?> clazz = original.getClass().getInterfaces()[0];
return (T) Proxy.newProxyInstance(
clazz.getClassLoader(),
new Class[]{clazz},
new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println(method.getName() + "() called");
Object result1 = method.invoke(original, args);
Object result2 = method.invoke(mirror, args);
return result1; // приоритет оригиналу
}
});
}
}
```
Пример использования:
```java
interface MyService {
void doWork();
}
class MyServiceImpl implements MyService {
public void doWork() {
System.out.println("Working: " + this);
}
}
```
🔍 **Подвох:**
- Java `Proxy` работает **только с интерфейсами**
- Метод вызывается **дважды** — нужно быть осторожным с побочными эффектами
- Возврат значения только одного вызова (`original`) — важно, если метод что-то возвращает
🧠 **Чему учит задача:**
- Глубокому пониманию `java.lang.reflect.Proxy`
- Поведению `InvocationHandler` и сигнатур
- Умению комбинировать дизайн-паттерн **Proxy** и **Decorator**
- Практике метапрограммирования и логирования без изменения кода класса
---
@javatg
1600
13:02
15.05.2025
imageИзображение не доступно для предпросмотра
ХОЧЕШЬ ПОВЫШЕНИЕ В 2025 ГОДУ? 😎🔥
Тогда самое время разобраться в микросервисной архитектуре и стать более востребованным специалистом.
🚀 Стартуем 20 мая.
Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.
Какие скиллы прокачаем:
📌 Декомпозиция систем на микросервисы, отталкиваясь от бизнес-домена.
📌 Встройка микросервисов в оргструктуру компании.
📌Организация перехода от монолитной системы к микросервисной.
Полная программа ТУТ 👉 https://microarch.ru/courses/microservices?utm_source=posev&utm_medium=erid:2VtzqwE1oyN&utm_campaign=2
А самое главное — поддержка от спикера, чат с одногруппниками и полезные созвоны с разбором домашки.
📕 Сертификат об участии по итогам прохождения курса.
Узнай больше 👉 https://microarch.ru/courses/microservices?utm_source=posev&utm_medium=erid:2VtzqwE1oyN&utm_campaign=2
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwE1oyN
Тогда самое время разобраться в микросервисной архитектуре и стать более востребованным специалистом.
🚀 Стартуем 20 мая.
Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.
Какие скиллы прокачаем:
📌 Декомпозиция систем на микросервисы, отталкиваясь от бизнес-домена.
📌 Встройка микросервисов в оргструктуру компании.
📌Организация перехода от монолитной системы к микросервисной.
Полная программа ТУТ 👉 https://microarch.ru/courses/microservices?utm_source=posev&utm_medium=erid:2VtzqwE1oyN&utm_campaign=2
А самое главное — поддержка от спикера, чат с одногруппниками и полезные созвоны с разбором домашки.
📕 Сертификат об участии по итогам прохождения курса.
Узнай больше 👉 https://microarch.ru/courses/microservices?utm_source=posev&utm_medium=erid:2VtzqwE1oyN&utm_campaign=2
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwE1oyN
1800
10:49
15.05.2025
imageИзображение не доступно для предпросмотра
🔍 VisualVM — визуальный мониторинг JVM без лишнего шума. Этот инструмент предлагает то, чего не хватает стандартным JDK-утилитам: удобного интерфейса для профилирования Java-приложений. В отличие от тяжелых решений, он встроен прямо в JDK и умеет показывать метрики кучи, потоки и CPU-нагрузку в реальном времени.
Инструмент особенно полезен для быстрой диагностики, например, когда нужно найти утечку памяти без подключения к продакшену через JMX. Сборка из исходников требует только Ant и NetBeans Platform, а плагины добавляют поддержку Sampler и Thread Dump Analyzer.
🤖 GitHub
@javatg
Инструмент особенно полезен для быстрой диагностики, например, когда нужно найти утечку памяти без подключения к продакшену через JMX. Сборка из исходников требует только Ant и NetBeans Platform, а плагины добавляют поддержку Sampler и Thread Dump Analyzer.
🤖 GitHub
@javatg
2200
13:01
14.05.2025
imageИзображение не доступно для предпросмотра
🌐 Gitnuro — кроссплатформенный Git-клиент без подписок и слежки. Этот полностью открытый клиент на Kotlin предлагает альтернативу тяжеловесным решениям вроде GitKraken или SourceTree.
В отличие от веб-ориентированных аналогов, он работает нативно на Linux, Windows и macOS, при этом не требуя активаций или подписок. Особенность проекта в поддержке сложных операций через минималистичный интерфейс.
🤖 GitHub
@javatg
В отличие от веб-ориентированных аналогов, он работает нативно на Linux, Windows и macOS, при этом не требуя активаций или подписок. Особенность проекта в поддержке сложных операций через минималистичный интерфейс.
🤖 GitHub
@javatg
3000
13:03
12.05.2025
☕ Вопрос с собеседования: Статический блок и порядок инициализации
🔍 Условие:
Что выведет следующий код и почему?
❓ Вопрос:
Какой будет порядок вывода? Почему результат может удивить даже опытных Java-разработчиков?
🔍 Разбор:
✅ Что происходит по шагам:
1️⃣ При запуске программы сначала загружается класс `InitializationPuzzle`. Его статический блок выполняется сразу:
2️⃣ Далее вызывается
- Инициализация
- Инициализация
3️⃣ Наконец выполняется метод
---
✅ Ожидаемый полный вывод:
💥 Подвох:
• Многие разработчики думают, что раз
• Однако Java гарантирует, что перед выполнением любого статического метода класс будет полностью инициализирован.
• Также важно помнить, что при инициализации класса наследника сначала выполняются статические блоки родителя.
🛡️ Лайфхак:
Если вы хотите убедиться, что родительский класс не инициализируется при доступе к статическим полям/методам потомка, нужно использовать константы (static final), которые компилируются напрямую в байткод и не требуют загрузки класса.
✅ Вывод:
• Java строго инициализирует классы в порядке наследования перед вызовом любых статических методов.
• Даже вызов одного «безопасного» статического метода потомка затянет за собой загрузку родителя.
• Такие задачи хорошо проверяют понимание механизма класслоадеров и инициализации классов в JVM.
💡 Бонус-вопрос:
Что изменится, если вы замените
@javatg
🔍 Условие:
Что выведет следующий код и почему?
public class InitializationPuzzle {
static {
System.out.println("Static block 1");
}
public static void main(String[] args) {
Child.doSomething();
}
}
class Parent {
static {
System.out.println("Parent static block");
}
}
class Child extends Parent {
static {
System.out.println("Child static block");
}
static void doSomething() {
System.out.println("Child method");
}
}
❓ Вопрос:
Какой будет порядок вывода? Почему результат может удивить даже опытных Java-разработчиков?
🔍 Разбор:
✅ Что происходит по шагам:
1️⃣ При запуске программы сначала загружается класс `InitializationPuzzle`. Его статический блок выполняется сразу:
Static block 1
2️⃣ Далее вызывается
Child.doSomething()
. Теперь происходит инициализация класса `Child`. В Java при инициализации класса-потомка сначала загружается родительский класс, если он ещё не был загружен.- Инициализация
Parent
:
Parent static block
- Инициализация
Child
:
Child static block
3️⃣ Наконец выполняется метод
doSomething()
:
Child method
---
✅ Ожидаемый полный вывод:
Static block 1
Parent static block
Child static block
Child method
💥 Подвох:
• Многие разработчики думают, что раз
doSomething()
просто статический метод, может выполниться только он. • Однако Java гарантирует, что перед выполнением любого статического метода класс будет полностью инициализирован.
• Также важно помнить, что при инициализации класса наследника сначала выполняются статические блоки родителя.
🛡️ Лайфхак:
Если вы хотите убедиться, что родительский класс не инициализируется при доступе к статическим полям/методам потомка, нужно использовать константы (static final), которые компилируются напрямую в байткод и не требуют загрузки класса.
✅ Вывод:
• Java строго инициализирует классы в порядке наследования перед вызовом любых статических методов.
• Даже вызов одного «безопасного» статического метода потомка затянет за собой загрузку родителя.
• Такие задачи хорошо проверяют понимание механизма класслоадеров и инициализации классов в JVM.
💡 Бонус-вопрос:
Что изменится, если вы замените
doSomething()
на чтение static final поля в Child
? Будет ли тогда инициализирован Parent
?@javatg
3300
15:09
10.05.2025
imageИзображение не доступно для предпросмотра
@javatg
3300
16:04
08.05.2025
close
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
5.0
2 отзыва за 6 мес.
Превосходно (100%) За последние 6 мес
m
**xim98sorokin@*****.com
на сервисе с ноября 2024
18.02.202501:04
5
Оперативное размещение
Показать еще
Новинки в тематике
Лучшие в тематике
Статистика канала
Рейтинг
44.0
Оценка отзывов
5.0
Выполнено заявок
105
Подписчики:
17.3K
Просмотры на пост:
lock_outline
ER:
--%
Публикаций в день:
1.0
CPV
lock_outlineВыбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий