🔒 Практическое руководство по тестированию безопасности Java-приложений — инструменты, примеры и команды.
✅ SCA (анализ ПО)
✅ SAST (статическое тестирование безопасности)
✅ DAST (динамическое тестирование безопасности)
✅ Penetration Testing (тестирование на проникновение)
👉 Подробности: https://ionutbalosin.com/2025/03/security-application-testing-for-java-developers
📦 Код и практики: https://github.com/ionutbalosin/java-application-security-practices
#Java #AppSec
✅ SCA (анализ ПО)
✅ SAST (статическое тестирование безопасности)
✅ DAST (динамическое тестирование безопасности)
✅ Penetration Testing (тестирование на проникновение)
👉 Подробности: https://ionutbalosin.com/2025/03/security-application-testing-for-java-developers
📦 Код и практики: https://github.com/ionutbalosin/java-application-security-practices
#Java #AppSec
❤5👍2🔥2
📝 Почему Java остаётся топовым языком программирования в 2025 году
🚀 Ключевые преимущества
• Непревзойдённая стабильность и эволюция: модель «write once, run anywhere» + фичи Java 21/23 (virtual threads, record patterns)
• Огромная экосистема: Spring Boot, Hibernate, Maven/Gradle, JUnit/Mockito и тысячи библиотек
• Корпоративный бэкэнд: банки, страховые компании и телеком используют Java для критически важных систем
• Мобильная разработка: фундамент для Android-приложений и бесшовный переход на Kotlin
• Облачные микросервисы: Spring Cloud, интеграция с AWS, Azure и GCP
• Высокий спрос: в топ-3 на большинстве порталов вакансий для любого уровня опыта
• Full-stack возможности: Java + React/JS + базы данных = end-to-end приложения
• Оптимальный порог вхождения: проще, чем C++, структурнее, чем JS/Python
• Фундаментальные навыки: ООП, типизация и архитектурное мышление
• Активное сообщество: StackOverflow, GitHub, профильные форумы и конференции
• Карьера и стабильность: технологии проверены десятилетиями и продолжают расти
• Структурированный путь обучения: от Core Java до Spring Boot и реальных проектов
📖 Как начать
1. Изучи основы: Core Java, OOP, коллекции, многопоточность
2. Перейди к бэкенду: JDBC, Spring Boot, REST API
3. Освой облако: развертывай микросервисы на AWS/Azure/GCP
4. Добавь фронтенд: HTML/CSS, JavaScript, React
5. Практикуйся ежедневно: небольшие приложения → реальные кейсы
🔗 Полезные ссылки
• Оригинал статьи: https://medium.com/javarevisited/why-java-continues-to-be-a-top-programming-language-in-2025-a1b1fc2725ea
@java_library
🚀 Ключевые преимущества
• Непревзойдённая стабильность и эволюция: модель «write once, run anywhere» + фичи Java 21/23 (virtual threads, record patterns)
• Огромная экосистема: Spring Boot, Hibernate, Maven/Gradle, JUnit/Mockito и тысячи библиотек
• Корпоративный бэкэнд: банки, страховые компании и телеком используют Java для критически важных систем
• Мобильная разработка: фундамент для Android-приложений и бесшовный переход на Kotlin
• Облачные микросервисы: Spring Cloud, интеграция с AWS, Azure и GCP
• Высокий спрос: в топ-3 на большинстве порталов вакансий для любого уровня опыта
• Full-stack возможности: Java + React/JS + базы данных = end-to-end приложения
• Оптимальный порог вхождения: проще, чем C++, структурнее, чем JS/Python
• Фундаментальные навыки: ООП, типизация и архитектурное мышление
• Активное сообщество: StackOverflow, GitHub, профильные форумы и конференции
• Карьера и стабильность: технологии проверены десятилетиями и продолжают расти
• Структурированный путь обучения: от Core Java до Spring Boot и реальных проектов
📖 Как начать
1. Изучи основы: Core Java, OOP, коллекции, многопоточность
2. Перейди к бэкенду: JDBC, Spring Boot, REST API
3. Освой облако: развертывай микросервисы на AWS/Azure/GCP
4. Добавь фронтенд: HTML/CSS, JavaScript, React
5. Практикуйся ежедневно: небольшие приложения → реальные кейсы
🔗 Полезные ссылки
• Оригинал статьи: https://medium.com/javarevisited/why-java-continues-to-be-a-top-programming-language-in-2025-a1b1fc2725ea
@java_library
❤10👍9🔥2🥰1
📚 Java & Related Concepts — полный гайд по Java-экосистеме. Этот репозиторий представляет собой целую энциклопедию для Java-разработчиков. Автор структурировал материал от основ языка до продвинутых тем: многопоточность, проектирование систем, алгоритмы и даже Kotlin с Android-разработкой.
Проект имеет полезные разделы с примерами кода: от классических паттернов вроде Singleton до задач на динамическое программирование. Для тех, кто готовится к собеседованиям, есть подборка LeetCode-шаблонов и реальных interview-задач.
🤖 GitHub
@javatg
Проект имеет полезные разделы с примерами кода: от классических паттернов вроде Singleton до задач на динамическое программирование. Для тех, кто готовится к собеседованиям, есть подборка LeetCode-шаблонов и реальных interview-задач.
🤖 GitHub
@javatg
❤10🔥4👍1
💡 Совет по Java: автоматизируй проверку архитектурных правил через тесты
Вместо того чтобы ловить нарушения код-стандарта на ревью, формализуй их прямо в юнит-тестах. DSL-подход (в духе ArchUnit / TAIKAI) позволяет описать ограничения читаемо и выполнять их при каждом сборочном цикле.
Плюсы подхода:
Быстрая обратная связь — CI сразу показывает, где правила нарушены.
Чёткая документация — правила читаемы прямо в коде, без вики-страниц.
Меньше рутины на ревью — обсуждаем дизайн, а не «почему здесь throws Exception».
Добавь такой тест-набор в проект и поддерживай кодовую базу в здоровом состоянии автоматически.
#Java #CodeQuality #ArchUnit #SpringBoot
@java_library
Вместо того чтобы ловить нарушения код-стандарта на ревью, формализуй их прямо в юнит-тестах. DSL-подход (в духе ArchUnit / TAIKAI) позволяет описать ограничения читаемо и выполнять их при каждом сборочном цикле.
@Test
void shouldFulfillConstraints() {
Taikai.builder()
.namespace("com.enofex.taikai") // выбранный пакет
.java(java -> java // правила для Java-кода
.noUsageOfDeprecatedAPIs() // запрет устаревших API
.methodsShouldNotDeclareGenericExceptions()// никаких throws Exception
.utilityClassesShouldBeFinalAndHavePrivateConstructors())
.logging(logging -> logging // единый стиль логгеров
.loggersShouldFollowConventions(
Logger.class, "logger",
EnumSet.of(PRIVATE, FINAL)))
.spring(spring -> spring // правила для Spring-слоя
.controllers(c -> c
.shouldBeAnnotatedWithRestController() // все контроллеры = REST
.shouldNotDependOnOtherControllers()))
.build()
.check(); // тест упадёт, если есть ошибка
}
Плюсы подхода:
Быстрая обратная связь — CI сразу показывает, где правила нарушены.
Чёткая документация — правила читаемы прямо в коде, без вики-страниц.
Меньше рутины на ревью — обсуждаем дизайн, а не «почему здесь throws Exception».
Добавь такой тест-набор в проект и поддерживай кодовую базу в здоровом состоянии автоматически.
#Java #CodeQuality #ArchUnit #SpringBoot
@java_library
👍10❤7👏4
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://news.1rj.ru/str/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot
📕Ит-книги: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://news.1rj.ru/str/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
📕Ит-книги: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
📘 Один из самых захватывающих научных обзоров за последнее время — 120 страниц про ИИ в науке!
Это первое масштабное исследование, охватывающее весь цикл научной работы:
🧠 формулировка гипотез
🔬 автоматизация экспериментов
📊 анализ данных
✍️ генерация научных текстов
🤖 и даже управление исследовательским процессом
Лето выдалось жарким для #AI4Science: в сообществе alphaXiv уже 1000+ человек. И эта работа — отличная точка входа в то, как ИИ реально меняет науку.
📄 Читать статью:
https://arxiv.org/abs/2507.01903
🌐 Обсуждение здесь:
https://alphaxiv.org/channels/towards-automated-research/6822973d801dc5932300da7f
Это первое масштабное исследование, охватывающее весь цикл научной работы:
🧠 формулировка гипотез
🔬 автоматизация экспериментов
📊 анализ данных
✍️ генерация научных текстов
🤖 и даже управление исследовательским процессом
Лето выдалось жарким для #AI4Science: в сообществе alphaXiv уже 1000+ человек. И эта работа — отличная точка входа в то, как ИИ реально меняет науку.
📄 Читать статью:
https://arxiv.org/abs/2507.01903
🌐 Обсуждение здесь:
https://alphaxiv.org/channels/towards-automated-research/6822973d801dc5932300da7f
❤5
👩💻🎯 Открытый урок «Кракозябры vs Java: как победить кодировки и стать Гуру Unicode?».
🗓 17 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик».
Ошибки в кодировках ломают приложения, превращая текст в «абракадабру». Понимание таблиц кодировок — must-have навык для работы с данными, файлами и международными проектами.
О чём поговорим:
✔️ ASCII, UTF-8, Unicode — WTF? Разберём, как Java хранит и обрабатывает текст.
✔️ Почему файлы «ломаются»? Как избежать ошибок при чтении/записи данных.
✔️ Лайфхаки для юникода: работа с иероглифами и русским языком.
✔️ Секреты JVM: как настроить кодировку в проекте.
Кому будет интересно:
Начинающим Java-разработчикам и тестировщикам, сталкивающимся с международными данными и проблемами кодировки.
В результате вебинара вы:
Научитесь контролировать кодировки в своих приложениях, исправлять «кракозябры» и работать с любыми текстовыми данными без страха.
🔗 Ссылка на регистрацию: https://otus.pw/0egZ/
🗓 17 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик».
Ошибки в кодировках ломают приложения, превращая текст в «абракадабру». Понимание таблиц кодировок — must-have навык для работы с данными, файлами и международными проектами.
О чём поговорим:
✔️ ASCII, UTF-8, Unicode — WTF? Разберём, как Java хранит и обрабатывает текст.
✔️ Почему файлы «ломаются»? Как избежать ошибок при чтении/записи данных.
✔️ Лайфхаки для юникода: работа с иероглифами и русским языком.
✔️ Секреты JVM: как настроить кодировку в проекте.
Кому будет интересно:
Начинающим Java-разработчикам и тестировщикам, сталкивающимся с международными данными и проблемами кодировки.
В результате вебинара вы:
Научитесь контролировать кодировки в своих приложениях, исправлять «кракозябры» и работать с любыми текстовыми данными без страха.
🔗 Ссылка на регистрацию: https://otus.pw/0egZ/
❤6⚡1
Java. Сортировки
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
😭7✍6❤5🎅1
SQL_cheatsheet.pdf
754.9 KB
⚡️ SQL-шпаргалка, которая выручит в интервью, проекте и проде
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
👍5🔥4❤3🥰1
🧩 Как настроить
🔹 Через `web.xml` — классический способ
🔹 Программно (без XML) — через WebApplicationInitializer
📌 Оба способа подойдут, но:
web.xml — для классических Java EE приложений
Java-код — для современного подхода и Spring Boot-проектов
Полное объяснение и примеры — в оригинальной статье:
https://www.blackslate.io/articles/how-to-configure-dispatcher-servlet-in-spring-framework
DispatcherServlet в Spring — два способаDispatcherServlet — это сердце Spring MVC. Он принимает все HTTP-запросы и перенаправляет их нужному контроллеру. Вот как его можно настроить:🔹 Через `web.xml` — классический способ
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
🔹 Программно (без XML) — через WebApplicationInitializer
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext sc) throws ServletException {
XmlWebApplicationContext ctx = new XmlWebApplicationContext();
ctx.setConfigLocation("classpath:app-config.xml");
ServletRegistration.Dynamic servlet = sc.addServlet("dispatcher",
new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
📌 Оба способа подойдут, но:
web.xml — для классических Java EE приложений
Java-код — для современного подхода и Spring Boot-проектов
Полное объяснение и примеры — в оригинальной статье:
https://www.blackslate.io/articles/how-to-configure-dispatcher-servlet-in-spring-framework
❤9👍2🔥1👏1
Сохраняй себе годноту : сотни бесплатных PDF-книг по языкам и технологиям.
Здесь есть буквально всё: гайды по Bash и основам Linux, книги по всем актуальным языкам программирования (включая Python, JS, Swift и другие), материалы по SQL, Docker, алгоритмам и не только. База регулярно обновляется и полностью бесплатна.
🆖 https://goalkicker.com/
Здесь есть буквально всё: гайды по Bash и основам Linux, книги по всем актуальным языкам программирования (включая Python, JS, Swift и другие), материалы по SQL, Docker, алгоритмам и не только. База регулярно обновляется и полностью бесплатна.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
Forwarded from Machinelearning
Media is too big
VIEW IN TELEGRAM
Amazon анонсировала S3 Vectors - нативную поддержку векторного поиска прямо внутри своего вездесущего объектного хранилища. Заявлено, что это может снизить затраты на хранение и обработку векторов до 90%.
По сути, AWS предлагает не отдельный сервис, а новый тип бакета
vector bucket. Внутри него вы создаете векторные индексы, указывая размерность векторов и метрику расстояния (косинусную или евклидову).Вы просто загружаете в индекс свои эмбеддинги вместе с метаданными для фильтрации, а S3 берет на себя всю грязную работу по хранению, автоматической оптимизации и обеспечению субсекундного ответа на запросы. Никакого управления инфраструктурой.
Один бакет может содержать до 10 тысяч индексов, а каждый индекс, в свою очередь, десятки миллионов векторов.
S3 Vectors бесшовно интегрируется с Bedrock Knowledge Bases. Теперь при создании базы знаний для RAG-приложения можно просто указать S3-бакет в качестве векторного хранилища.
Процесс создания RAG-пайплайна для тех, кто уже живет в облаке AWS, упрощается до нескольких кликов. То же самое касается и SageMaker Unified Studio, где эта интеграция тоже доступна из коробки.
AWS предлагает гибкую, многоуровневую стратегию. Нечасто используемые или «холодные» векторы можно экономично хранить в S3 Vectors. А когда для части данных потребуется максимальная производительность и низкая задержка в реальном времени, например, для системы рекомендаций, их можно быстро экспортировать в OpenSearch.
Это очень прагматичный инженерный подход, позволяющий балансировать между стоимостью и производительностью.
Пока сервис находится в статусе превью и доступен в регионах US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Frankfurt), and Asia Pacific (Sydney) Regions.
Попробовать S3 Vectors можно в Amazon S3 console.
@ai_machinelearning_big_data
#AI #ML #RAG #Amazon
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍2
🐳 Учишься Docker? Вот идеальный интерактивный челлендж для новичков!
Docker 101: как запускать контейнеры в фоне, читать логи и переподключаться к ним
Челлендж от iximiuz Labs (Ivan Velichko) поможет разобраться с базовыми, но важными командами:
✅
✅
✅
Ничего не нужно устанавливать — всё прямо в браузере!
Попробовать можно здесь:
Если хочешь прокачать Docker на практике — начинай отсюда.
👉 https://labs.iximiuz.com/challenges/docker-101-container-run-in-background?x=2
Docker 101: как запускать контейнеры в фоне, читать логи и переподключаться к ним
Челлендж от iximiuz Labs (Ivan Velichko) поможет разобраться с базовыми, но важными командами:
✅
docker run -d — запуск контейнера в фоне ✅
docker logs — просмотр логов ✅
docker attach — повторное подключение к контейнеруНичего не нужно устанавливать — всё прямо в браузере!
Попробовать можно здесь:
Если хочешь прокачать Docker на практике — начинай отсюда.
👉 https://labs.iximiuz.com/challenges/docker-101-container-run-in-background?x=2
❤3👍3