Java Developer
15.7K subscribers
1.93K photos
146 videos
8 files
2.19K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 Чек-лист по Spring Boot профилям

Чтобы не путаться в окружениях и не тащить dev в прод — держите компактный список best practices.

Сохраняйте и используйте.

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Proglang — структурированный курс и справочник по Java

Что внутри:
– Синтаксис и база языка;
– ООП и принципы проектирования;
– Коллекции, исключения, потоки;
– Работа с файлами и основами I/O;
– Примеры кода и объяснения простым языком;


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

Ссылка на платформу

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
Блог владельца «Java Developer»

Жизнь в Telegram и за его пределами, бизнес на каналах и много программирования:

https://t.me/+6LFfq_FDocc4MTg6
Вопрос с собеседования

Что такое Java Memory Model и зачем он нужен?

Ответ: Java Memory Model (JMM) описывает, как потоки взаимодействуют через память и какие гарантии по видимости и упорядоченности операций даёт JVM.

Без JMM многопоточные программы работали бы непредсказуемо: один поток мог бы не увидеть изменения другого. JMM определяет правила: когда изменения в кэше процессора становятся «видимыми» другим потокам, и как работает синхронизация.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
👩‍💻 Аннотации Spring Boot, которые нужно знать

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Что выведет код сверху?
Anonymous Quiz
16%
2
65%
4
7%
2468
8%
Ничего
4%
Ошибка
👩‍💻 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1

В статье объясняется, почему Spring Data JPA может тормозить: рассматриваются причины вроде open-in-view, ленивой инициализации, неправильной настройки DataSource и медленных JOIN-ов.

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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
👩‍💻 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 2

В статье показано, как сократить число SQL-запросов при работе с Spring Data JPA и Hibernate: от устранения лишних SELECT до борьбы с N+1.

Автор на примерах разбирает, когда использовать getReferenceById, @Version, fetch join и @DynamicUpdate, чтобы ускорить взаимодействие с базой и избежать скрытых тормозов.

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

🔖 Предыдущая часть — КЛИК


tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
👩‍💻 Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации

В статье рассказывается, как генерировать HTTP-клиенты для Spring Boot приложений с помощью OpenAPI и плагина openapi-generator для Gradle.

Автор показывает как сгенерировать код, настроить проект и интегрировать его с RestTemplate или WebClient.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Вопрос с собеседования

В чём разница между @Bean и @Component в Spring?

Ответ: @Bean используется в конфигурационных классах Spring. Он используется для непосредственного создания бина.

@Component используется со всеми классами, которыми должен управлять Spring. Когда Spring видит класс с @Component, Spring определяет этот класс как кандидата для создания bean.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤣3
👩‍💻 100+ ресурсов по System Design

Репозиторий best-system-design-resources — это аккуратно собранная подборка ресурсов по системному дизайну: книги, статьи, видео, курсы и разборы архитектур.

Что внутри:
Основы: CAP-теорема, масштабирование, консистентность

Разбор ключевых компонентов: кэш, балансировка, шардирование, очереди

Примеры реальных систем: поисковики, видеохостинги, мессенджеры

Курсы и гайды: System Design Primer, Grokking, Gaurav Sen

Задачи и кейсы с интервью


Хорошая база, чтобы структурировать знания и увереннее разбираться в архитектуре крупных систем.

📱 Ссылка на GitHub

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
👩‍💻 Функциональные интерфейсы

Функциональный интерфейс — это интерфейс, который определяет только один абстрактный метод. Это позволяет передавать поведение как значение — например, в виде лямбды или ссылки на метод.

Рассмотрим простейший пример:
@FunctionalInterface
interface Greeting {
void say(String message);
}

Greeting g = msg -> System.out.println("Привет, " + msg);
g.say("мир!");

Аннотация @FunctionalInterface не обязательна, но рекомендуема — она защищает от случайного добавления лишнего абстрактного метода.


Интерфейс может содержать сколько угодно default- и static-методов и при этом оставаться функциональным, так как они не считаются абстрактными.

В Java предусмотрен набор стандартных функциональных интерфейсов — в пакете java.util.function. Вот наиболее часто используемые:
▶️ Predicate<T> — проверяет условие, возвращает true или false
▶️ Function<T, R> — преобразует один тип в другой
▶️ Consumer<T> — принимает значение, ничего не возвращает
▶️ Supplier<T> — возвращает значение, ничего не принимает
▶️ UnaryOperator<T> и BinaryOperator<T> — частные случаи Function, когда вход и выход одного типа


Пример использования Predicate:
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(isLong.test("Java")); // false


Функциональные интерфейсы активно используются в Stream API, Optional, Comparator, CompletableFuture и других частях стандартной библиотеки. Это удобный способ описать поведение без лишнего кода.

— если было полезно

📱 Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
14
🔴 КАК ИДЕАЛЬНО ПРОЙТИ СОБЕС? ПОКАЖЕМ ЗАВТРА!

Каждый, проходя интервью, думал: «Ну что они хотят услышать? Я же правильно ответил! Почему меня не взяли?»

4 марта(уже завтра!) в 19:00 по мск приходи онлайн на открытое интервью, где будут собеседовать МЕНТОРА ШОРТКАТ

Как это будет:
📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи старшему разработчику Сергею Чамкину
📂 Сергей будет отвечать на каждый вопрос так, как это ожидает сам от вас на собеседованиях
📂 В конце можно будет задать любой вопрос Сергею и Виктору

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_sh_bot


Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🖼️ Redis

Redis (Remote Dictionary Server) — это in-memory база данных, которая хранит данные в оперативной памяти. Благодаря этому она обеспечивает очень высокую производительность, особенно для операций чтения и записи.

Почему Redis?

Хранение данных в оперативной памяти
Redis хранит все данные в оперативной памяти (RAM), что делает операции чрезвычайно быстрыми. Операции чтения и записи происходят за миллисекунды, в отличие от традиционных баз данных, которые хранят данные на диске.


Разнообразие структур данных
Redis поддерживает не только строки, как большинство key-value хранилищ, но и сложные структуры данных:

— Строки (Strings)
— Списки (Lists)
— Множества (Sets)
— Отсортированные множества (Sorted Sets)
— Хэши (Hashes)
— Битовые операции (Bitmaps)
— Гео-данные (Geospatial data)
— Стек и очередь (с помощью списка)


Механизм постоянства данных
Хотя Redis хранит данные в оперативной памяти, он поддерживает два метода сохранения данных на диск для обеспечения постоянства: RDB (Redis Database Backup) — периодическое создание снапшотов данных, AOF (Append Only File) — запись всех операций в журнал, что позволяет восстанавливать состояние Redis при сбое.


Поддержка Pub/Sub
Redis предоставляет возможности для реализации системы обмена сообщениями в реальном времени с помощью механизма публикации/подписки (Pub/Sub). Это позволяет приложениям общаться друг с другом через каналы.


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


❗️Пример использования Redis
Представим, что у нас есть своя социальная сеть, в которой зарегистрирован Месси. Каждый день страничку Месси посещают сотни тысяч пользователей.

Что происходит в таком случае под капотом? Наше приложение постоянно запрашивает одни и те же данные (профиль Месси) из БД, например, MySQL, что занимает десятки миллисекунд. Это очень ресурсоемкий процесс, учитывая количество пользователей, посещающих страницу Месси.

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

Если данные найдены в Redis (cache hit), они возвращаются мгновенно (в пределах миллисекунды). Если данных нет (cache miss), запрос делается в основную БД, а результат сохраняется в Redis для будущих обращений.


Отправляй ⭐️, если было полезно

📱 Java Developer | #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2
📱 Зарплата 440.000р у Middle+ Разработчика в Okko

«Дейлик стартует в 11, работаю плюс-минус с 10, после 17 никто не тревожит, можно идти чиллить, но обычно работаю до 18. Попал в компанию через hh. Собес прошел стандартно. Все классно, но иногда процессы внутри хаотичны, сильно зависим от Сбера» - middle+ разработчик из Okko.

«Бигтех по-русски» — канал с реальными зарплатами и историями IT-специалистов российского БигТеха. Там уже опубликованы рассказы программистов Яндекса, Сбера и Тинькофф 😟

Читайте: @bigtech_russia
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣131
Вопрос с собеседования

Что такое Redis и зачем он используется?

Ответ: Redis — это хранилище данных в оперативной памяти, предназначенное для быстрого доступа к информации. Он поддерживает разные структуры данных — строки, списки, множества, словари — и применяется там, где важна скорость: кэширование, хранение сессий, подсчёт событий, временные блокировки и очереди. Благодаря работе в памяти, Redis обеспечивает отклик за миллисекунды и часто используется в высоконагруженных системах и микросервисной архитектуре.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Выспался. Создал чат-бота. Заработал +17.000 рублей.

Пока ты едешь на «любимую работу» к 8ч утра, другие запускают этого бота, следуют пошаговой инструкции и получают +17.000 рублей за несколько часов работы.

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

На старте новички зарабатывают 70-80.000 рублей, а ребята поопытнее от 200.000 рублей в месяц.

Все, что нужно для старта — запустить этот бот. Там уже рассказали, как с помощью чат-ботов и удаленки заработать несколько месячных зарплат и наконец уволиться из найма в 2026 году.
🤣91
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Сборник идей для пет-проектов

Это культовый репозиторий с сотней пет-проектов для реализации: от простых CLI-инструментов до полноценных веб-приложений

Вместо теории — конкретные задачи, пошаговые туториалы и репозитории, которые помогают прокачивать навыки через практику.

Отличный ресурс, чтобы собрать портфолио — забираем тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
1🔥1
Что выведет код сверху?
Anonymous Quiz
18%
D
10%
CD
36%
DE
3%
CDE
33%
abcde
🔥6