Синтетика подвела: как реальные данные делают unit-тесты надёжными
Введение
В мире разработки программного обеспечения надёжность и качество кода напрямую зависят от эффективности тестирования. Unit-тесты призваны проверять поведение отдельных компонентов без влияния внешних факторов. Традиционно в них используют синтетические (искусственно сгенерированные) данные, однако на практике всё чаще оказывается, что такие тестовые наборы не отражают реальных сценариев и приводят к ложному ощущению «зелёного» покрытия. В этой статье мы разберём, почему использование реальных данных при написании unit-тестов значительно повышает их ценность, и объясним, какие недостатки несут синтетические данные.
Читать: https://habr.com/ru/articles/907812/?utm_campaign=907812
@a_cup_of_java | Другие наши каналы
Введение
В мире разработки программного обеспечения надёжность и качество кода напрямую зависят от эффективности тестирования. Unit-тесты призваны проверять поведение отдельных компонентов без влияния внешних факторов. Традиционно в них используют синтетические (искусственно сгенерированные) данные, однако на практике всё чаще оказывается, что такие тестовые наборы не отражают реальных сценариев и приводят к ложному ощущению «зелёного» покрытия. В этой статье мы разберём, почему использование реальных данных при написании unit-тестов значительно повышает их ценность, и объясним, какие недостатки несут синтетические данные.
Читать: https://habr.com/ru/articles/907812/?utm_campaign=907812
@a_cup_of_java | Другие наши каналы
МCP в Java: новый уровень интеграции с ИИ
Java-сообщество активно внедряет Model Context Protocol (MCP) — открытый стандарт для интеграции контекста с крупными языковыми моделями. Инструменты на базе JBang упрощают запуск MCP-серверов, расширяя возможности разработчиков и обогащая бизнес-приложения.
Подробности: https://www.infoq.com/news/2025/05/mcp-within-java-ecosystem/
#en
@a_cup_of_java | Другие наши каналы
Java-сообщество активно внедряет Model Context Protocol (MCP) — открытый стандарт для интеграции контекста с крупными языковыми моделями. Инструменты на базе JBang упрощают запуск MCP-серверов, расширяя возможности разработчиков и обогащая бизнес-приложения.
Подробности: https://www.infoq.com/news/2025/05/mcp-within-java-ecosystem/
#en
@a_cup_of_java | Другие наши каналы
JavaScript: большой гайд от Tproger
Гайд по JavaScript. Топовые и полезные статьи с теорией, инструментами и фреймворками. Практика для новичков и продвинутых программистов. ✔ Tproger
Читать: «JavaScript: большой гайд от Tproger»
@a_cup_of_java | Другие наши каналы
Гайд по JavaScript. Топовые и полезные статьи с теорией, инструментами и фреймворками. Практика для новичков и продвинутых программистов. ✔ Tproger
Читать: «JavaScript: большой гайд от Tproger»
@a_cup_of_java | Другие наши каналы
🌚1
От пет-проекта к книге про Spring
Рассказ о том, как я написал свою вторую книгу, о создании тестового приложения-примера для неё, об истории написания пет-проекта длиной почти в 20 лет, о том как мужественно переписывал его несколько раз, о мыслях в процессе написания проекта, о размышлениях и страданиях в процессе написания книги, о развилках и муках выбора, о финальном завершении книги, о выпуске книги в продажу, об испытанных при этом эмоциях, о сроках и их срывах, о дневнике написания книги и всём остальном.
Читать: https://habr.com/ru/articles/907920/?utm_campaign=907920
@a_cup_of_java | Другие наши каналы
Рассказ о том, как я написал свою вторую книгу, о создании тестового приложения-примера для неё, об истории написания пет-проекта длиной почти в 20 лет, о том как мужественно переписывал его несколько раз, о мыслях в процессе написания проекта, о размышлениях и страданиях в процессе написания книги, о развилках и муках выбора, о финальном завершении книги, о выпуске книги в продажу, об испытанных при этом эмоциях, о сроках и их срывах, о дневнике написания книги и всём остальном.
Читать: https://habr.com/ru/articles/907920/?utm_campaign=907920
@a_cup_of_java | Другие наши каналы
До свидания, Kafka, или graceful shutdown на Spring Boot для Kafka
В этой статье я немного объясню важность graceful shutdown и расскажу как сделать плавное завершение работы твоего Spring Boot приложения, которое взаимодействует с Kafka.
Читать: https://habr.com/ru/articles/908022/?utm_campaign=908022
@a_cup_of_java | Другие наши каналы
В этой статье я немного объясню важность graceful shutdown и расскажу как сделать плавное завершение работы твоего Spring Boot приложения, которое взаимодействует с Kafka.
Читать: https://habr.com/ru/articles/908022/?utm_campaign=908022
@a_cup_of_java | Другие наши каналы
Новое в мире Java: библиотека JBang Jash упрощает выполнение внешних процессов и комманд через удобный и понятный API. Теперь работа с процессами стала проще, эффективнее и чище — без громоздкого кода и ручного управления потоками. Подробнее на GitHub.
Подробности: https://www.infoq.com/news/2025/05/jbang-jash/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/05/jbang-jash/
#en
@a_cup_of_java | Другие наши каналы
🔥3🌚1
Денежные переводы в SQL
Переводим деньги в SQL
В этом посте я покажу распространённые стратегии обработки переводов между счетами, сосредоточив внимание на согласованности данных, уровнях изоляции и компромиссах.
Мы будем использовать упрощённые SQL и Java фрагменты с комментариями.
Читать: https://habr.com/ru/articles/908198/?utm_campaign=908198
@a_cup_of_java | Другие наши каналы
Переводим деньги в SQL
В этом посте я покажу распространённые стратегии обработки переводов между счетами, сосредоточив внимание на согласованности данных, уровнях изоляции и компромиссах.
Мы будем использовать упрощённые SQL и Java фрагменты с комментариями.
Читать: https://habr.com/ru/articles/908198/?utm_campaign=908198
@a_cup_of_java | Другие наши каналы
Join таблиц в реальном времени на Apache Flink ( Часть 2 )
В данной статье приводится решение проблемы построения витрин данных в реальном времени с помощью Apache Flink. Рассказывается 2 часть подробной реализации решения этой задачи. В данной части рассмотрена проблема учета сообщений на удаление и частично операций
Читать: https://habr.com/ru/articles/908220/?utm_campaign=908220
@a_cup_of_java | Другие наши каналы
В данной статье приводится решение проблемы построения витрин данных в реальном времени с помощью Apache Flink. Рассказывается 2 часть подробной реализации решения этой задачи. В данной части рассмотрена проблема учета сообщений на удаление и частично операций
update , в связи с чем достигается полная консистентность данных СИ с СП при условии гарантии, что ключ join условия не обновляется.Читать: https://habr.com/ru/articles/908220/?utm_campaign=908220
@a_cup_of_java | Другие наши каналы
Python, Java, C++ и Go — как появились популярные языки программирования
Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :)
Читать: https://habr.com/ru/companies/selectel/articles/906256/?utm_campaign=906256
@a_cup_of_java | Другие наши каналы
Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :)
Читать: https://habr.com/ru/companies/selectel/articles/906256/?utm_campaign=906256
@a_cup_of_java | Другие наши каналы
Автоматизация тестирования Java UI-приложений с Arctic
Arctic от Amazon Corretto позволяет запускать автоматические проверки старых и новых Java-десктоп-тестов без их доработки. Инструмент сравнивает скриншоты и воспроизводит действия, помогая выявлять визуальные регрессии и экономить время на проверке.
Подробности: https://aws.amazon.com/blogs/developer/arctic-automated-desktop-application-testing/
#en
@a_cup_of_java | Другие наши каналы
Arctic от Amazon Corretto позволяет запускать автоматические проверки старых и новых Java-десктоп-тестов без их доработки. Инструмент сравнивает скриншоты и воспроизводит действия, помогая выявлять визуальные регрессии и экономить время на проверке.
Подробности: https://aws.amazon.com/blogs/developer/arctic-automated-desktop-application-testing/
#en
@a_cup_of_java | Другие наши каналы
Как решить ошибку Arithmetic overflow при конвертации IDENTITY в tinyint, smallint или int в SQL Server
Ошибка возникает, когда значение IDENTITY выходит за пределы диапазона типа данных. Решение — увеличить тип колонки до bigint или сделать reseed значения IDENTITY, учитывая возможные риски при изменениях. Топ-курсы и обзоры для IT-специалистов в 2024–2025 годах. В статье представлены лучшие онлайн-курсы по Apache Camel, Data Science, Selenium, Cloud Computing, а также отзывы о популярных образовательных платформах и сертификатах. Полезно для развития карьеры и повышения квалификации.
Подробности: http://www.java67.com/2019/08/arithmetic-overflow-error-converting-indentity-to-data-type-tinyint-smallint-and-in-sql-server-database.html
#en
@a_cup_of_java | Другие наши каналы
Ошибка возникает, когда значение IDENTITY выходит за пределы диапазона типа данных. Решение — увеличить тип колонки до bigint или сделать reseed значения IDENTITY, учитывая возможные риски при изменениях. Топ-курсы и обзоры для IT-специалистов в 2024–2025 годах. В статье представлены лучшие онлайн-курсы по Apache Camel, Data Science, Selenium, Cloud Computing, а также отзывы о популярных образовательных платформах и сертификатах. Полезно для развития карьеры и повышения квалификации.
Подробности: http://www.java67.com/2019/08/arithmetic-overflow-error-converting-indentity-to-data-type-tinyint-smallint-and-in-sql-server-database.html
#en
@a_cup_of_java | Другие наши каналы
Лучшие онлайн-курсы по HTML и CSS в 2024 году
Если хотите освоить веб-дизайн и фронтенд-разработку, стоит обратить внимание на лучшие курсы по HTML5 и CSS3 от Udemy, Coursera, Pluralsight и edX. Они подходят и новичкам, и опытным специалистам. Лучшие онлайн-курсы по программированию и веб-разработке в 2025 году. В статье собраны популярные направления — от Python и Java до DevOps и блокчейна, включая бесплатные и платные варианты для всех уровней. Отличный гид для выбора обучения!
Подробности: http://www.java67.com/2020/08/5-best-online-courses-to-learn-html-5.html
#en
@a_cup_of_java | Другие наши каналы
Если хотите освоить веб-дизайн и фронтенд-разработку, стоит обратить внимание на лучшие курсы по HTML5 и CSS3 от Udemy, Coursera, Pluralsight и edX. Они подходят и новичкам, и опытным специалистам. Лучшие онлайн-курсы по программированию и веб-разработке в 2025 году. В статье собраны популярные направления — от Python и Java до DevOps и блокчейна, включая бесплатные и платные варианты для всех уровней. Отличный гид для выбора обучения!
Подробности: http://www.java67.com/2020/08/5-best-online-courses-to-learn-html-5.html
#en
@a_cup_of_java | Другие наши каналы
Лучшие бесплатные сайты для изучения Microsoft Azure в 2024 году
Обзор ресурсов, которые помогут бесплатно освоить облачную платформу Microsoft Azure — от официального портала и Coursera до Udemy и Pluralsight. Идеально для разработчиков, DevOps и всех, кто хочет развить востребованные навыки в облачных технологиях. Лучшие онлайн-курсы по программированию и IT на 2024 год. В подборке — курсы по Java, Data Science, облачным технологиям, машинному обучению и тестированию. Обзор поможет выбрать подходящее обучение для развития навыков и карьерного роста.
Подробности: http://www.java67.com/2024/06/top-6-websites-to-learn-microsoft-azure.html
#en
@a_cup_of_java | Другие наши каналы
Обзор ресурсов, которые помогут бесплатно освоить облачную платформу Microsoft Azure — от официального портала и Coursera до Udemy и Pluralsight. Идеально для разработчиков, DevOps и всех, кто хочет развить востребованные навыки в облачных технологиях. Лучшие онлайн-курсы по программированию и IT на 2024 год. В подборке — курсы по Java, Data Science, облачным технологиям, машинному обучению и тестированию. Обзор поможет выбрать подходящее обучение для развития навыков и карьерного роста.
Подробности: http://www.java67.com/2024/06/top-6-websites-to-learn-microsoft-azure.html
#en
@a_cup_of_java | Другие наши каналы
👍2
Работа с базой данных для джунов и вайбкодеров. Соединения
Коннекты обычно не приносят много головной боли на начальных этапах разработки. Вообще работа с ними обычно делается один раз, во время настройки, и дальше тюнится по необходимости. Но эта необходимость возникает часто в виде непонятных ошибок, которые выкидываются в случайных местах, непонятных графиков в графане и суеты админов вашей базы данных. Я постарался собрать ту информацию, которая позволит вам не потеряться в такой ситуации и даже поможет определить суть проблемы.
Читать: https://habr.com/ru/articles/908376/?utm_campaign=908376
@a_cup_of_java | Другие наши каналы
Коннекты обычно не приносят много головной боли на начальных этапах разработки. Вообще работа с ними обычно делается один раз, во время настройки, и дальше тюнится по необходимости. Но эта необходимость возникает часто в виде непонятных ошибок, которые выкидываются в случайных местах, непонятных графиков в графане и суеты админов вашей базы данных. Я постарался собрать ту информацию, которая позволит вам не потеряться в такой ситуации и даже поможет определить суть проблемы.
Читать: https://habr.com/ru/articles/908376/?utm_campaign=908376
@a_cup_of_java | Другие наши каналы
👍2
ООП не мертво. Вы просто пользуетесь им как молотком по клавиатуре
После каждой новой статьи с заголовком «ООП — это обман» хочется напомнить: ООП — это не набор шаблонов из книжек, а инженерный подход. Если проект страдает от наследования и DI, возможно, проблема не в ООП. А в том, как вы его применяете.
Читать: https://habr.com/ru/articles/908422/?utm_campaign=908422
@a_cup_of_java | Другие наши каналы
После каждой новой статьи с заголовком «ООП — это обман» хочется напомнить: ООП — это не набор шаблонов из книжек, а инженерный подход. Если проект страдает от наследования и DI, возможно, проблема не в ООП. А в том, как вы его применяете.
Читать: https://habr.com/ru/articles/908422/?utm_campaign=908422
@a_cup_of_java | Другие наши каналы
QCon London 2025: Как построить базу данных без сервера
На конференции обсудили опыт Man Group по замене MongoDB на безсерверное объектное хранилище с ArcticDB. Рассмотрены технические сложности, связанные с управлением глобальным состоянием, синхронизацией и использованием CRDT для консистентности данных.
Подробности: https://www.infoq.com/news/2025/05/serverless-database-seaton/
#en
@a_cup_of_java | Другие наши каналы
На конференции обсудили опыт Man Group по замене MongoDB на безсерверное объектное хранилище с ArcticDB. Рассмотрены технические сложности, связанные с управлением глобальным состоянием, синхронизацией и использованием CRDT для консистентности данных.
Подробности: https://www.infoq.com/news/2025/05/serverless-database-seaton/
#en
@a_cup_of_java | Другие наши каналы
Разработчик развеял мифы о чистом коде, трендах и идеальном программировании
Разработчик развеял мифы о чистом коде и трендах — почему идеальное программирование не всегда оправдано в реальных проектах
Читать: «Разработчик развеял мифы о чистом коде, трендах и идеальном программировании»
@a_cup_of_java | Другие наши каналы
Разработчик развеял мифы о чистом коде и трендах — почему идеальное программирование не всегда оправдано в реальных проектах
Читать: «Разработчик развеял мифы о чистом коде, трендах и идеальном программировании»
@a_cup_of_java | Другие наши каналы
JForge: Создаем свою мини-IDE на Java Swing с нуля (с темной темой и подсветкой синтаксиса!)
Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.
Читать: https://habr.com/ru/articles/908534/?utm_campaign=908534
@a_cup_of_java | Другие наши каналы
Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.
Читать: https://habr.com/ru/articles/908534/?utm_campaign=908534
@a_cup_of_java | Другие наши каналы
👍3
Новые обновления Java: в JDK 25 готовы к внедрению несколько ключевых JEP, включая структурированную конкуренцию и гибкие конструкторы. Выпущены релизы Hibernate Reactive 3.0, Infinispan 16.0, JHipster 8.11 и Gatherers4j 0.11 с важными улучшениями и новыми возможностями.
Подробности: https://www.infoq.com/news/2025/05/java-news-roundup-may05-2025/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/05/java-news-roundup-may05-2025/
#en
@a_cup_of_java | Другие наши каналы
JEP 505: Пятая предварительная версия структурированной конкуренции в Java
В JDK 25 вышла пятая превью Structured Concurrency с улучшениями API. Теперь StructuredTaskScope создаётся через статические методы, что упрощает управление параллельными задачами и повышает безопасность и читаемость кода.
Подробности: https://www.infoq.com/news/2025/05/jep-505-concurrency-preview-5/
#en
@a_cup_of_java | Другие наши каналы
В JDK 25 вышла пятая превью Structured Concurrency с улучшениями API. Теперь StructuredTaskScope создаётся через статические методы, что упрощает управление параллельными задачами и повышает безопасность и читаемость кода.
Подробности: https://www.infoq.com/news/2025/05/jep-505-concurrency-preview-5/
#en
@a_cup_of_java | Другие наши каналы
Исследование решений для хранения файлов в Spring Boot: базы данных, локальные системы, облачные сервисы и многое другое
При создании веб-приложений часто требуется правильно управлять загрузкой файлов. После получения файлы могут храниться в нескольких местах: в файловой системе, в базе данных или, что более распространено, в облачном сервисе хранения данных.
В этой статье мы расскажем, как хранить файлы в базе данных с помощью Spring Boot, а также обсудим некоторые альтернативные варианты.
Читать: https://habr.com/ru/articles/760760/?utm_campaign=760760
@a_cup_of_java | Другие наши каналы
При создании веб-приложений часто требуется правильно управлять загрузкой файлов. После получения файлы могут храниться в нескольких местах: в файловой системе, в базе данных или, что более распространено, в облачном сервисе хранения данных.
В этой статье мы расскажем, как хранить файлы в базе данных с помощью Spring Boot, а также обсудим некоторые альтернативные варианты.
Читать: https://habr.com/ru/articles/760760/?utm_campaign=760760
@a_cup_of_java | Другие наши каналы