Java Developer | Backend
1.71K subscribers
136 photos
1 video
231 links
Авторский канал действующего java разработчика

Платформа: https://offercraft.ru

Сотрудничество @offercraft_support
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
Вопрос: Что такое Java Memory Model и как он влияет на многопоточность?
Ответ -
Java Memory Model (JMM) определяет, как потоки взаимодействуют друг с другом через общую память. Он гарантирует видимость изменений, сделанных одним потоком, для других потоков. JMM вводит понятия "синхронизация", "медленная и быстрая память" и "порядок выполнения", что помогает избежать проблем, таких как гонки данных. Для обеспечения корректного взаимодействия потоков используются ключевые слова volatile, synchronized и блоки Lock.

🖥 Java Developer | Backend | #⃣#вопрос #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Гениально же 😁

🖥 Java Developer | Backend | #⃣#мемы #java
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
🔤 Java Logging: история кошмара

Тернист и извилист путь Java-платформы к правильному способу записи строчек в лог-файлы. История logging в Java довольно познавательна в плане изучения особенностей Open Source, в том числе его взаимодействия с корпорациями и единичными программистами.

🔗 Ссылка на статью

🖥Java Developer | Backend |#⃣ #статья #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Какова цель метода Class.forName?
Ответ -
Этот метод используется для загрузки драйвера, который установит соединение с базой данных.

🖥 Java Developer | Backend | #⃣#вопрос #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🔤 Простые сценарии использования Sonarqube

На сегодняшний день sonarqube - один из самый известный способ автоматического анализа кода и его ревью. В данной статье показан процесс настройки sonarqube для вашего проекта.

🔗 Ссылка на статью

👩‍💻 Java Developer | Backend |#⃣ #статья #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
Roadmap "Как стать java разработчиком".
Карта показывает необходимые навыки для изучения

🔗 Ссылка

👩‍💻 Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
MapStruct: Ультимативный маппинг в Java

Если вы все еще вручную копируете данные из Entity в DTO через сеттеры, пора переходить на MapStruct. Это кодогенератор, который работает на этапе компиляции. В отличие от аналогов на Reflection (типа ModelMapper), он создает чистый и быстрый Java-код, который легко дебажить.

Почему это стандарт индустрии?
*️⃣Производительность: Скорость прямого вызова методов.
*️⃣Безопасность: Ошибка в имени поля обнаружится при сборке, а не в рантайме.
*️⃣Гибкость: Поддержка вложенных объектов и кастомных конвертеров.

Пример реализации:
@Mapper(componentModel = "spring")
public interface UserMapper {
@Mapping(source = "email", target = "login")
@Mapping(target = "fullName", expression = "java(u.getFirstName() + ' ' + u.getLastName())")
UserDto toDto(User u);
}


MapStruct делает ваш код чище, а разработку — приятнее.

👩‍💻Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
❗️SQL Academy: Где реально набить руку на запросах

Нашел крутой тренажер для тех, кто хочет подтянуть SQL без скучной теории. Главный плюс — вы решаете задачи в браузере на живых базах данных.

Почему стоит глянуть:

*️⃣Sandbox-режим: Пишешь код и сразу видишь результат.
*️⃣Уровни: От простых SELECT до жестких джойнов.
*️⃣Собесы: Задачи максимально приближены к реальным вопросам из интервью

🔗 Ссылка

👩‍💻Java Developer | Backend |#⃣ #полезныересурсы #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
Эволюция Java-разработки с SonarQube

SonarQube — стандарт индустрии для контроля качества Java-кода. Инструмент автоматизирует поиск багов, уязвимостей и «запахов кода», бесшовно интегрируясь в CI/CD через Maven или Gradle. Это позволяет поддерживать архитектурную целостность и системно минимизировать техдолг. Применение SonarQube гарантирует, что в релизную ветку попадает только код, прошедший строгую проверку на надежность и производительность.

*️⃣Контроль через Quality Gates (QG)
Quality Gates — это автоматизированный «чек-лист», определяющий готовность кода к деплою. Если проект не соответствует заданным порогам, статус проверки меняется на Failed, и сборка блокируется.

ℹ️Вот основные метрики, которые чаще всего настраивают в QG:
*️⃣New Code Coverage: Процент покрытия юнит-тестами новых изменений. Обычно устанавливается порог >80%, чтобы предотвратить попадание непроверенной логики в мастер-ветку.
*️⃣Maintainability Rating: Оценка поддерживаемости. Если расчетное время на исправление «запахов кода» (code smells) превышает лимит, рейтинг падает ниже A, и QG не проходится.
*️⃣Security Rating: Критерий, блокирующий поставку при наличии хотя бы одной открытой уязвимости (Vulnerability) или критической точки риска (Security Hotspot).
*️⃣Duplicated Lines: Контроль за дублированием кода. Обычно считается недопустимым наличие более 3-5% дубликатов на весь объем новых строк.

Использование Quality Gates исключает субъективность при приемке кода и позволяет команде сфокусироваться на создании фич, не отвлекаясь на базовый аудит безопасности.

👩‍💻Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Software Composition Analysis (SCA): Безопасность внешних компонентов

В современной Java-разработке до 90% итогового кода приложения составляют сторонние библиотеки. SCA (Software Composition Analysis) — это методология автоматизированного аудита этих зависимостей. В отличие от классического статического анализа (SAST), который проверяет ваш авторский код, SCA фокусируется на рисках, приходящих извне вместе с Open Source компонентами.

#️⃣ Практические примеры работы SCA

Инструменты SCA анализируют манифесты сборки (например, pom.xml или build.gradle) и выявляют две основные группы проблем:

1️⃣ Идентификация известных уязвимостей (CVE)
Если в проекте используется библиотека с публично известной дырой в безопасности, SCA заблокирует сборку.

Пример в Maven:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>


*️⃣ Действие системы: Инструмент укажет на конкретную запись в базе данных уязвимостей (например, CVE-2021-44228) и выдаст рекомендацию по обновлению до безопасной версии 2.17.1.

2️⃣ Лицензионный комплаенс
SCA проверяет, не нарушают ли лицензии библиотек юридическую политику компании.

*️⃣ Пример: Использование библиотеки с лицензией GPL в коммерческом закрытом продукте.
*️⃣Действие системы: Система предупредит, что данная лицензия является «вирусной» и требует открытия исходного кода всего вашего приложения, что часто недопустимо для проприетарного ПО.

#️⃣ Ключевые функции
*️⃣ Детекция транзитивных зависимостей: Проверка не только тех библиотек, что вы прописали явно, но и тех, что они «тянут» за собой по цепочке.
*️⃣ Формирование SBOM: Создание «паспорта» приложения (Software Bill of Materials) — полного реестра всех используемых компонентов.

#️⃣Вывод

Внедрение SCA в CI/CD пайплайн Java-проекта — это не просто дополнительный этап проверки, а критическое требование безопасности. Это позволяет разработчикам использовать всю мощь Open Source, сохраняя контроль над защищенностью и юридической чистотой продукта. В современных реалиях SCA является обязательным дополнением к анализу кода, формируя комплексный подход к качеству ПО.

👩‍💻Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Станьте SQL-детективом: Тайна убийства в SQL-Сити

Если вы ищете способ подтянуть свои навыки работы с базами данных, забудьте про скучные учебники. Есть кое-что поинтереснее — SQL Murder Mystery.

#️⃣В чем суть?
В городе произошло преступление. У вас есть только дата, место и доступ к полицейской базе данных. Ваша задача — через SQL-запросы восстановить цепочку событий, найти свидетелей и, наконец, вычислить убийцу.

Почему это круто:
1️⃣Геймификация: Вы не просто пишете SELECT *, вы проводите расследование.
2️⃣Реальная практика: Придется работать с JOIN, LIKE, агрегатными функциями и вложенными запросами.
3️⃣Для любого уровня: На сайте есть краткое руководство для новичков, так что можно начинать даже с нулевыми знаниями.

🔗 Ссылка

👩‍💻Java Developer | Backend |#⃣ #полезныересурсы #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🔥🔥🔥 Вы давно просили — и вот он готов! 🔥🔥🔥

Много раз получал вопросы: «Где попрактиковаться перед собеседованием?», «Как понять, готов ли я?». Наконец сделал то, что сам хотел бы иметь когда готовился.

Представляю @interviewer_tg_bot — тренажёр технических собеседований прямо в Telegram 🎯

Что умеет:
— Задаёт реальные вопросы по Java, Python, Go, C#, React, Angular, Vue, Node.js, PHP, SQL, DevOps, QA и другим направлениям
— Принимает ответы голосом или текстом
— Оценивает ответ через AI и даёт развёрнутый фидбек
— Проводит mock-интервью — 5 вопросов подряд с итоговой оценкой как на настоящем собеседовании
— Подбирает вопросы под твой уровень: Junior / Middle / Senior

Первые 5 вопросов бесплатно — попробуй прямо сейчас.

👉 @interviewer_tg_bot ✔️

Переходи скорее! 🔥🔥🔥

👩‍💻Java Developer | Backend |#⃣ #полезныересурсы #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Intellij Idea Hotkeys

Собрали для вас шпаргалку по горячим клавишам IntelliJ IDEA 🔥
Всё самое нужное в одной картинке: навигация, редактирование, рефакторинг и отладка. Сохраняй и пользуйся ✔️


👩‍💻Java Developer | Backend |#⃣ #полезныересурсы #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
❗️Эволюция Java-разработки с Spring Security

Spring Security — стандарт индустрии для защиты Java-приложений. Фреймворк автоматизирует аутентификацию, авторизацию и защиту от типовых атак, бесшовно интегрируясь в Spring Boot через автоконфигурацию. Это позволяет выстраивать многоуровневую защиту и системно закрывать уязвимости ещё на этапе разработки. Применение Spring Security гарантирует, что доступ к ресурсам приложения получают только авторизованные пользователи с нужными правами.

#️⃣Ключевые механизмы защиты

Spring Security — это не просто логин и пароль. Фреймворк покрывает весь стек безопасности современного backend-приложения.

#️⃣Вот основные механизмы, которые чаще всего настраивают в продакшне:

*️⃣Authentication & JWT
Проверка личности пользователя. Spring Security поддерживает множество стратегий: form login, Basic Auth, OAuth2, а в REST API — JWT-токены. Короткоживущий access token (15 мин) + refresh token в httpOnly cookie — стандартная схема для защиты от XSS и CSRF одновременно.

*️⃣Method Security
Аннотации @PreAuthorize, @PostAuthorize, @Secured позволяют защищать отдельные методы сервисов, а не только HTTP-эндпоинты. @PreAuthorize("hasRole('ADMIN')") на методе сервиса — это второй уровень защиты, который сработает даже если настройки SecurityFilterChain были заданы неверно.

*️⃣CSRF Protection
По умолчанию Spring Security включает CSRF-защиту для всех state-changing запросов. В REST API с JWT её обычно отключают — но только если refresh token хранится в httpOnly cookie и реализован Double Submit Cookie pattern для мутирующих запросов.

*️⃣Security Filter Chain
Цепочка фильтров — сердце Spring Security. Каждый запрос проходит через неё последовательно: JwtAuthFilter → UsernamePasswordAuthenticationFilter → AuthorizationFilter. Порядок фильтров критичен — неправильная конфигурация открывает дыры даже в корректно написанном коде.

Грамотная настройка Spring Security исключает целый класс уязвимостей из OWASP Top 10 и позволяет команде сфокусироваться на бизнес-логике, не изобретая велосипед в области защиты.

👩‍💻Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
❗️Эволюция Java-разработки с Docker

Docker — стандарт контейнеризации для Java-приложений. Упаковывает Spring Boot сервис со всеми зависимостями в изолированный контейнер, который одинаково работает на ноутбуке разработчика, CI-сервере и продакшне. Больше никакого «у меня работает».

#️⃣Что даёт Docker Java-разработчику:

*️⃣Multi-stage build
Разделяет сборку и запуск. На первом этапе Maven компилирует и собирает JAR, на втором — в финальный образ попадает только JRE и артефакт. Размер образа сокращается с 600MB до 150MB.
dockerfileFROM maven:3.9-eclipse-temurin-21 AS build
COPY . .
RUN mvn package -DskipTests

FROM eclipse-temurin:21-jre-alpine
COPY --from=build target/app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]


*️⃣Docker Compose для локальной разработки
Поднимает PostgreSQL, Redis и само приложение одной командой docker compose up. Никаких ручных установок на машину разработчика — новый член команды готов к работе за 5 минут.

*️⃣Переменные окружения вместо конфигов
Секреты и настройки передаются через environment или .env файл — никаких application.properties с паролями в репозитории.
Docker превращает деплой Java-приложения из ручного ритуала в воспроизводимый автоматизированный процесс.

👩‍💻Java Developer | Backend |#⃣ #обучение #java
Please open Telegram to view this post
VIEW IN TELEGRAM
2