Вся правда о @Subselect: преимущества, недостатки и альтернативы в Hibernate
В современных приложениях иногда возникает необходимость получать данные из сложных запросов и аннотация "@Subselect" в Hibernate может стать отличным решением.
В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете как использовать "@Subselect", какие существуют альтернативы и в чём заключаются их преимущества и недостатки.
Читать: https://habr.com/ru/companies/spring_aio/articles/867662/?utm_campaign=867662
@a_cup_of_java | Другие наши каналы
В современных приложениях иногда возникает необходимость получать данные из сложных запросов и аннотация "@Subselect" в Hibernate может стать отличным решением.
В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете как использовать "@Subselect", какие существуют альтернативы и в чём заключаются их преимущества и недостатки.
Читать: https://habr.com/ru/companies/spring_aio/articles/867662/?utm_campaign=867662
@a_cup_of_java | Другие наши каналы
Борьба Добра со Злом в играх со скрытой информацией. Боты
Заинтересовавшись теорией игр, вы найдёте огромное количество статей, посвящённых самых различным теоретическим изысканиям и их приложениям. Но, чаще всего, признаемся честно, лишь для тривиальных случаев с точки зрения игровой динамики.
В этой статье мы будем рассматривать игры со скрытой информацией, с ветвистыми и глубокими деревьями решений.
Несмотря на то, что математика теории игр не перестаёт работать для выбранной нами области, использовать чисто математические абстракции становится недостаточным. На первое место выходит инженерный подход с глубоким погружением в предметную область. Под инженерным подходом я подразумеваю тяжелые длительные вычисления, поиск и перебор множества вариантов, а также прочие точечные ML решения.
Итак, что будем делать? Будем писать ботов и, со временем, средства их обнаружения.
И тут важно согласиться, что боты – это не всегда Зло. Боты – это лишь инструмент в руках Зла. Или Добра...
Выбрать сторону)
Читать: https://habr.com/ru/articles/867750/?utm_campaign=867750
@a_cup_of_java | Другие наши каналы
Заинтересовавшись теорией игр, вы найдёте огромное количество статей, посвящённых самых различным теоретическим изысканиям и их приложениям. Но, чаще всего, признаемся честно, лишь для тривиальных случаев с точки зрения игровой динамики.
В этой статье мы будем рассматривать игры со скрытой информацией, с ветвистыми и глубокими деревьями решений.
Несмотря на то, что математика теории игр не перестаёт работать для выбранной нами области, использовать чисто математические абстракции становится недостаточным. На первое место выходит инженерный подход с глубоким погружением в предметную область. Под инженерным подходом я подразумеваю тяжелые длительные вычисления, поиск и перебор множества вариантов, а также прочие точечные ML решения.
Итак, что будем делать? Будем писать ботов и, со временем, средства их обнаружения.
И тут важно согласиться, что боты – это не всегда Зло. Боты – это лишь инструмент в руках Зла. Или Добра...
Выбрать сторону)
Читать: https://habr.com/ru/articles/867750/?utm_campaign=867750
@a_cup_of_java | Другие наши каналы
Новый HTTP клиент от Amplicode на Kotlin Script для Spring приложений и не только
Команда Amplicode решила реализовать свой собственный HTTP-клиент и пару недель назад, в последнем мажорном релизе 2024-го года, мы его выпустили!
Сегодня я расскажу, чем наш клиент лучше HTTP-клиента от JetBrains, покажу базовые сценарии его использования, а также немного расскажу о планах на будущее.
Статья также доступна в формате видео на YouTube, VK Видео и RUTUBE, так что можно и смотреть, и читать — как вам удобнее!
Читать: https://habr.com/ru/companies/haulmont/articles/868106/?utm_campaign=868106
@a_cup_of_java | Другие наши каналы
Команда Amplicode решила реализовать свой собственный HTTP-клиент и пару недель назад, в последнем мажорном релизе 2024-го года, мы его выпустили!
Сегодня я расскажу, чем наш клиент лучше HTTP-клиента от JetBrains, покажу базовые сценарии его использования, а также немного расскажу о планах на будущее.
Статья также доступна в формате видео на YouTube, VK Видео и RUTUBE, так что можно и смотреть, и читать — как вам удобнее!
Читать: https://habr.com/ru/companies/haulmont/articles/868106/?utm_campaign=868106
@a_cup_of_java | Другие наши каналы
👍6🎉5❤3🔥1
Анализ фильмов с интернет-портала Кинопоиск
Данное исследование посвящено анализу данных о фильмах, собранных с крупнейшей российской платформы КиноПоиск. Основная цель работы — выявить факторы, влияющие на популярность фильмов, их рейтинги и финансовую успешность. В ходе исследования были проанализированы жанровые предпочтения аудитории, проведено сравнение оценок фильмов на Кинопоиске и IMDb, а также исследована взаимосвязь между бюджетами фильмов и их кассовыми сборами.
Разработка включала этапы сбора, обработки, анализа и визуализации данных. Для обработки данных применялись методы очистки от пропусков и ошибок, фильтрации по ключевым показателям и трансформации структур данных. Были реализованы функции для конвертации валют, извлечения данных о жанрах и персоналиях фильмов (актёрах и режиссёрах), а также вычисления статистических показателей полноты и однородности выборки.
Для эффективной работы системы был использован современный технологический стек. Обработка данных осуществлялась с помощью MongoDB, что обеспечило хранение и управление большими объёмами неструктурированной информации. RabbitMQ организовал асинхронный обмен сообщениями между компонентами системы, а серверная часть приложения разрабатывалась на базе Spring Boot, что ускорило процесс разработки и упростило развертывание приложения. Контейнеризация с использованием Docker обеспечила удобное развертывание и масштабирование системы. Основными языками программирования стали Java 17 и Python: Java использовалась для серверной части и микросервисов, а Python — для анализа данных и построения алгоритмов обработки информации.
Для анализа данных применялись библиотеки Pandas, Seaborn и SciPy, которые обеспечили эффективную обработку данных и визуализацию результатов. В рамках анализа строились графики, отображающие популярность жанров, исследовалась корреляция оценок на Кинопоиске и IMDb, а также визуализировалась связь между бюджетами и кассовыми сборами. Для представления результатов применялись такие инструменты, как matplotlib и seaborn, позволяя визуализировать ключевые закономерности в виде графиков и диаграмм.
Анализ выявил ключевые закономерности: популярность определённых жанров, зависимость коммерческого успеха фильма от его бюджета и значительное влияние известных актёров и режиссёров на успех фильма. Полученные результаты могут быть полезны для киностудий и продюсеров при планировании новых проектов, прогнозировании кассовых сборов и выборе жанров. Результаты также могут применяться для оптимизации маркетинговых стратегий при продвижении фильмов. В будущем планируется углубить исследование, проанализировать долгосрочные тренды в изменении популярности жанров и исследовать влияние пользовательских рецензий на успех фильмов.
Читать: https://habr.com/ru/articles/868238/?utm_campaign=868238
@a_cup_of_java | Другие наши каналы
Данное исследование посвящено анализу данных о фильмах, собранных с крупнейшей российской платформы КиноПоиск. Основная цель работы — выявить факторы, влияющие на популярность фильмов, их рейтинги и финансовую успешность. В ходе исследования были проанализированы жанровые предпочтения аудитории, проведено сравнение оценок фильмов на Кинопоиске и IMDb, а также исследована взаимосвязь между бюджетами фильмов и их кассовыми сборами.
Разработка включала этапы сбора, обработки, анализа и визуализации данных. Для обработки данных применялись методы очистки от пропусков и ошибок, фильтрации по ключевым показателям и трансформации структур данных. Были реализованы функции для конвертации валют, извлечения данных о жанрах и персоналиях фильмов (актёрах и режиссёрах), а также вычисления статистических показателей полноты и однородности выборки.
Для эффективной работы системы был использован современный технологический стек. Обработка данных осуществлялась с помощью MongoDB, что обеспечило хранение и управление большими объёмами неструктурированной информации. RabbitMQ организовал асинхронный обмен сообщениями между компонентами системы, а серверная часть приложения разрабатывалась на базе Spring Boot, что ускорило процесс разработки и упростило развертывание приложения. Контейнеризация с использованием Docker обеспечила удобное развертывание и масштабирование системы. Основными языками программирования стали Java 17 и Python: Java использовалась для серверной части и микросервисов, а Python — для анализа данных и построения алгоритмов обработки информации.
Для анализа данных применялись библиотеки Pandas, Seaborn и SciPy, которые обеспечили эффективную обработку данных и визуализацию результатов. В рамках анализа строились графики, отображающие популярность жанров, исследовалась корреляция оценок на Кинопоиске и IMDb, а также визуализировалась связь между бюджетами и кассовыми сборами. Для представления результатов применялись такие инструменты, как matplotlib и seaborn, позволяя визуализировать ключевые закономерности в виде графиков и диаграмм.
Анализ выявил ключевые закономерности: популярность определённых жанров, зависимость коммерческого успеха фильма от его бюджета и значительное влияние известных актёров и режиссёров на успех фильма. Полученные результаты могут быть полезны для киностудий и продюсеров при планировании новых проектов, прогнозировании кассовых сборов и выборе жанров. Результаты также могут применяться для оптимизации маркетинговых стратегий при продвижении фильмов. В будущем планируется углубить исследование, проанализировать долгосрочные тренды в изменении популярности жанров и исследовать влияние пользовательских рецензий на успех фильмов.
Читать: https://habr.com/ru/articles/868238/?utm_campaign=868238
@a_cup_of_java | Другие наши каналы
😁3
Как мы делаем Java: 30 лет истории российской разработки
Банки, биржи, платежные системы — множество стратегически важных сервисов работает на Java. Не случайно язык, которому скоро исполнится 30 лет, уверенно держится в тройке лидеров рейтинга TIOBE. А еще Java — одна из «самых российских» технологий. Из всех разработчиков за пределами США именно россияне сделали наиболее заметный вклад в платформу — и продолжают развивать ее сейчас. Чтобы понять, как так вышло, мы вспомнили историю Java в России с девяностых годов до наших дней.
Дисклеймер: этот не историческое исследование. Текст собран из воспоминаний участников событий и инженеров, которые уже почти 30-лет заботятся о безопасности Java в России.
Читать: https://habr.com/ru/companies/axiomjdk/articles/868056/?utm_campaign=868056
@a_cup_of_java | Другие наши каналы
Банки, биржи, платежные системы — множество стратегически важных сервисов работает на Java. Не случайно язык, которому скоро исполнится 30 лет, уверенно держится в тройке лидеров рейтинга TIOBE. А еще Java — одна из «самых российских» технологий. Из всех разработчиков за пределами США именно россияне сделали наиболее заметный вклад в платформу — и продолжают развивать ее сейчас. Чтобы понять, как так вышло, мы вспомнили историю Java в России с девяностых годов до наших дней.
Дисклеймер: этот не историческое исследование. Текст собран из воспоминаний участников событий и инженеров, которые уже почти 30-лет заботятся о безопасности Java в России.
Читать: https://habr.com/ru/companies/axiomjdk/articles/868056/?utm_campaign=868056
@a_cup_of_java | Другие наши каналы
Gradle: Исправление зависимостей в один клик
Работаете с Gradle? Dependency Analysis Gradle Plugin помогает не только находить лишние зависимости, но и автоматически исправлять проблемы с ними.
Механизм
Читать: https://habr.com/ru/companies/spring_aio/articles/868440/?utm_campaign=868440
@a_cup_of_java | Другие наши каналы
Работаете с Gradle? Dependency Analysis Gradle Plugin помогает не только находить лишние зависимости, но и автоматически исправлять проблемы с ними.
Механизм
fixDependencies переписывает скрипты сборки, чтобы они соответствовали реальной структуре проекта. Последние обновления сделали процесс анализа ещё точнее, а работу с Kotlin DSL — проще и надёжнее. Читайте про фикс зависимостей в один клик в новом переводе от команды SpringАйО.Читать: https://habr.com/ru/companies/spring_aio/articles/868440/?utm_campaign=868440
@a_cup_of_java | Другие наши каналы
Новые диагностические правила в PVS-Studio 7.34
С релизом PVS-Studio 7.34 в анализаторе появились новые диагностические правила: taint для Java, множество Unity-диагностик для C#, углубление в OWASP и многое другое! Расскажем о них в этой статье.
Читать: https://habr.com/ru/companies/pvs-studio/articles/868508/?utm_campaign=868508
@a_cup_of_java | Другие наши каналы
С релизом PVS-Studio 7.34 в анализаторе появились новые диагностические правила: taint для Java, множество Unity-диагностик для C#, углубление в OWASP и многое другое! Расскажем о них в этой статье.
Читать: https://habr.com/ru/companies/pvs-studio/articles/868508/?utm_campaign=868508
@a_cup_of_java | Другие наши каналы
PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения)
Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024, выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения. Рассмотрим функциональные возможности, реализованные в PVS-Studio на конец 2024 года в отношении анализа исходного кода программного обеспечения, написанного на компилируемых языках программирования C, C++, C#, Java.
Читать: https://habr.com/ru/companies/pvs-studio/articles/868578/?utm_campaign=868578
@a_cup_of_java | Другие наши каналы
Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024, выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения. Рассмотрим функциональные возможности, реализованные в PVS-Studio на конец 2024 года в отношении анализа исходного кода программного обеспечения, написанного на компилируемых языках программирования C, C++, C#, Java.
Читать: https://habr.com/ru/companies/pvs-studio/articles/868578/?utm_campaign=868578
@a_cup_of_java | Другие наши каналы
👍4
Spring News Roundup: Delivering Point Releases of Boot, Security, Authorization Server, Session
There was a flurry of activity in the Spring ecosystem during the week of December 16th, 2024, highlighting point releases of: Spring Boot, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring Modulith, Spring Batch, Spring AMQP, Spring for Apache Kafka, Spring for Apache Pulsar and Spring Shell.
By Michael Redlich
Read: https://www.infoq.com/news/2024/12/spring-news-roundup-dec16-2024/
@a_cup_of_java | Другие наши каналы
There was a flurry of activity in the Spring ecosystem during the week of December 16th, 2024, highlighting point releases of: Spring Boot, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring Modulith, Spring Batch, Spring AMQP, Spring for Apache Kafka, Spring for Apache Pulsar and Spring Shell.
By Michael Redlich
Read: https://www.infoq.com/news/2024/12/spring-news-roundup-dec16-2024/
@a_cup_of_java | Другие наши каналы
👍2
Создание и использование оберток (wrappers) в Java: подробный разбор
В мире разработки обертки (wrappers) — это мощный инструмент, который позволяет инкапсулировать сложную логику, добавлять новую функциональность или адаптировать существующие классы для более удобного использования. В этой статье мы рассмотрим, что такое обертки, какие задачи они решают, и как их правильно создавать на Java. Мы также приведем примеры реального применения, чтобы показать их пользу.
Читать: https://habr.com/ru/articles/868786/?utm_campaign=868786
@a_cup_of_java | Другие наши каналы
В мире разработки обертки (wrappers) — это мощный инструмент, который позволяет инкапсулировать сложную логику, добавлять новую функциональность или адаптировать существующие классы для более удобного использования. В этой статье мы рассмотрим, что такое обертки, какие задачи они решают, и как их правильно создавать на Java. Мы также приведем примеры реального применения, чтобы показать их пользу.
Читать: https://habr.com/ru/articles/868786/?utm_campaign=868786
@a_cup_of_java | Другие наши каналы
👍2
Java News Roundup: TomEE 10, Struts 7, Payara Platform, GlassFish, Commonhaus Foundation, Gradle
This week's Java roundup for December 16th, 2024 features news highlighting: GA releases of Apache TomEE 10.0.0 and Apache Struts 7.0.0; the December 2024 release of the Payara Platform, GlassFish 8.0.0-M9, Infinispan 15.1.0, Gradle 8.12.0, and SlateDB and Debezium join the Commonhaus Foundation.
By Michael Redlich
Read: https://www.infoq.com/news/2024/12/java-news-roundup-dec16-2024/
@a_cup_of_java | Другие наши каналы
This week's Java roundup for December 16th, 2024 features news highlighting: GA releases of Apache TomEE 10.0.0 and Apache Struts 7.0.0; the December 2024 release of the Payara Platform, GlassFish 8.0.0-M9, Infinispan 15.1.0, Gradle 8.12.0, and SlateDB and Debezium join the Commonhaus Foundation.
By Michael Redlich
Read: https://www.infoq.com/news/2024/12/java-news-roundup-dec16-2024/
@a_cup_of_java | Другие наши каналы
AI-ассистент с помощью Spring AI
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
Читать: https://habr.com/ru/companies/spring_aio/articles/869080/?utm_campaign=869080
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
Читать: https://habr.com/ru/companies/spring_aio/articles/869080/?utm_campaign=869080
@a_cup_of_java | Другие наши каналы
❤2🔥2🙈2
Барьеры и модели памяти – explained
Всем привет!
Начну с предыстории.
Когда мы в Амазоне планировали переносить сервис с x86/64 на ARM, почему-то никто в нашей команде не поднял тему того, что надо уделить особое внимание работе с многопоточностью и синхронизацией, так как из-за того, что у этих двух архитектур разные модели памяти, могли случиться неожиданные проблемы.
Однако, на тот момент я тоже об этом не знал, и нам повезло, что мы изначально везде использовали модель памяти Sequential Consistency (что это – далее в статье), поэтому все прошло гладко. Теперь, зная про модели памяти и возможные последствия, боюсь представить, что было бы в противном случае.
Как родилась статья
Когда я впервые изучал модели памяти, я мало что понял, и спустя месяц все забыл. Потом прочитал еще раз, но, к сожалению, тоже хватило ненадолго. В итоге я решил расписать все для себя максимально подробно, с красивыми картинками, чтобы при необходимости можно было к ним возвращаться и не тратить много времени на вспоминание.
Статья основана на материалах лекции Computer Science Center (CSC) с курса “Параллельные вычисления” преподавателя Калишенко Е.Л. Крайне рекомендую ознакомиться со всеми лекциями курса (более структурированного материала по теме я еще не встречал). Благо он в открытом доступе – ссылка.
Что такое барьеры памяти и зачем это все нужно?
Начнем с небольшого описания того, как устроена “условная” архитектура процессора. Почему условная? Потому что может отличаться в зависимости от конкретной реализации, но суть похожа.
Читать: https://habr.com/ru/articles/869188/?utm_campaign=869188
@a_cup_of_java | Другие наши каналы
Всем привет!
Начну с предыстории.
Когда мы в Амазоне планировали переносить сервис с x86/64 на ARM, почему-то никто в нашей команде не поднял тему того, что надо уделить особое внимание работе с многопоточностью и синхронизацией, так как из-за того, что у этих двух архитектур разные модели памяти, могли случиться неожиданные проблемы.
Однако, на тот момент я тоже об этом не знал, и нам повезло, что мы изначально везде использовали модель памяти Sequential Consistency (что это – далее в статье), поэтому все прошло гладко. Теперь, зная про модели памяти и возможные последствия, боюсь представить, что было бы в противном случае.
Как родилась статья
Когда я впервые изучал модели памяти, я мало что понял, и спустя месяц все забыл. Потом прочитал еще раз, но, к сожалению, тоже хватило ненадолго. В итоге я решил расписать все для себя максимально подробно, с красивыми картинками, чтобы при необходимости можно было к ним возвращаться и не тратить много времени на вспоминание.
Статья основана на материалах лекции Computer Science Center (CSC) с курса “Параллельные вычисления” преподавателя Калишенко Е.Л. Крайне рекомендую ознакомиться со всеми лекциями курса (более структурированного материала по теме я еще не встречал). Благо он в открытом доступе – ссылка.
Что такое барьеры памяти и зачем это все нужно?
Начнем с небольшого описания того, как устроена “условная” архитектура процессора. Почему условная? Потому что может отличаться в зависимости от конкретной реализации, но суть похожа.
Читать: https://habr.com/ru/articles/869188/?utm_campaign=869188
@a_cup_of_java | Другие наши каналы
👍4
Как жить без IntelliJ IDEA? Часть №5. Заключение
Наступил конец года и вместе с ним завершается наш цикл статей. Команда Spring АйО рассмотрела некоторые последствия ухода Ultimate IDEA из РФ и как с этим теперь жить.
Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
Читать: https://habr.com/ru/companies/spring_aio/articles/869354/?utm_campaign=869354
@a_cup_of_java | Другие наши каналы
Наступил конец года и вместе с ним завершается наш цикл статей. Команда Spring АйО рассмотрела некоторые последствия ухода Ultimate IDEA из РФ и как с этим теперь жить.
Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
Читать: https://habr.com/ru/companies/spring_aio/articles/869354/?utm_campaign=869354
@a_cup_of_java | Другие наши каналы
😁6❤5⚡2❤🔥2😐2🫡1
Spring Boot, AspectJ. Введение в аспектно-ориентированное программирование
Привет, меня зовут Николай Пискунов, я руководитель направления Big Data и автор медиа вАЙТИ. Недавно мне в руки попался старый проект, написанный на Spring Boot. В нем я нашел пару десятков эндпоинтов, в которых метод обрамлен logger. Логирование в таком виде — это важный элемент как для ПО, так и для безопасности, но оно делает код объемнее, его становится сложнее читать.
В идеальном случае методы можно сократить буквально до пары строк, но для этого нужно отделить бизнес-логику от остального кода. Сделать это можно с помощью аспектно-ориентированного программирования (AOP) — языка для определения именованного аспекта. О нем и пойдет речь в этой статье.
Читать: https://habr.com/ru/companies/beeline_cloud/articles/869602/?utm_campaign=869602
@a_cup_of_java | Другие наши каналы
Привет, меня зовут Николай Пискунов, я руководитель направления Big Data и автор медиа вАЙТИ. Недавно мне в руки попался старый проект, написанный на Spring Boot. В нем я нашел пару десятков эндпоинтов, в которых метод обрамлен logger. Логирование в таком виде — это важный элемент как для ПО, так и для безопасности, но оно делает код объемнее, его становится сложнее читать.
В идеальном случае методы можно сократить буквально до пары строк, но для этого нужно отделить бизнес-логику от остального кода. Сделать это можно с помощью аспектно-ориентированного программирования (AOP) — языка для определения именованного аспекта. О нем и пойдет речь в этой статье.
Читать: https://habr.com/ru/companies/beeline_cloud/articles/869602/?utm_campaign=869602
@a_cup_of_java | Другие наши каналы
🎉2
5 лучших языков программирования для создания нейросетей
Топовые языки для программирования нейросетей — Python, Java, C#, С++.
Читать: «5 лучших языков программирования для создания нейросетей»
@a_cup_of_java | Другие наши каналы
Топовые языки для программирования нейросетей — Python, Java, C#, С++.
Читать: «5 лучших языков программирования для создания нейросетей»
@a_cup_of_java | Другие наши каналы
🔥2
Параллелизм может быть только 1
В прошлой статье автором были выявлены проблемы производительности в следствие блокировок и других причин. В этой статье попробуем с ними разобраться.
Продолжить мяукать
Читать: https://habr.com/ru/articles/869856/?utm_campaign=869856
@a_cup_of_java | Другие наши каналы
В прошлой статье автором были выявлены проблемы производительности в следствие блокировок и других причин. В этой статье попробуем с ними разобраться.
Продолжить мяукать
Читать: https://habr.com/ru/articles/869856/?utm_campaign=869856
@a_cup_of_java | Другие наши каналы
👏3😁2
10 самых интересных ошибок в Java проектах за 2024 год
В 2024 году мы проверили много проектов, о чём регулярно писали в свой блог. Теперь же настала новогодняя пора, и самое время рассказывать новогодние истории. Вот и мы решили поведать о самых интересных Java ошибках, встреченных нами в Open Source проектах.
Читать: https://habr.com/ru/companies/pvs-studio/articles/869920/?utm_campaign=869920
@a_cup_of_java | Другие наши каналы
В 2024 году мы проверили много проектов, о чём регулярно писали в свой блог. Теперь же настала новогодняя пора, и самое время рассказывать новогодние истории. Вот и мы решили поведать о самых интересных Java ошибках, встреченных нами в Open Source проектах.
Читать: https://habr.com/ru/companies/pvs-studio/articles/869920/?utm_campaign=869920
@a_cup_of_java | Другие наши каналы
🎉2
Паттерн Data Mapper на котиках: Практическое руководство от разработчика, который не боится мурлыкать
В этой статье мы рассмотрим интересный паттерн Data Mapper и его реализацию на Java. Data Mapper аккуратно переносит данные между объектами и базой данных, не вмешиваясь в логику самих объектов. Основная идея заключается в том, чтобы создать отдельный слой или компонент, который отвечает за перенос данных между объектами доменной модели и базой данных, при этом объекты домена остаются полностью независимыми от механизмов хранения данных
В отличие от Active Record, где объекты сами знают, как сохранять себя в базу, Data Mapper разделяет эти ответственности.
Читать: https://habr.com/ru/companies/otus/articles/868588/?utm_campaign=868588
@a_cup_of_java | Другие наши каналы
В этой статье мы рассмотрим интересный паттерн Data Mapper и его реализацию на Java. Data Mapper аккуратно переносит данные между объектами и базой данных, не вмешиваясь в логику самих объектов. Основная идея заключается в том, чтобы создать отдельный слой или компонент, который отвечает за перенос данных между объектами доменной модели и базой данных, при этом объекты домена остаются полностью независимыми от механизмов хранения данных
В отличие от Active Record, где объекты сами знают, как сохранять себя в базу, Data Mapper разделяет эти ответственности.
Читать: https://habr.com/ru/companies/otus/articles/868588/?utm_campaign=868588
@a_cup_of_java | Другие наши каналы
😁3🎉2
Кошмар работы с *.docx файлами на Java посредством класса XWPFDocument из API Apache POI
Использование *.docx файлов как шаблонов для формирования кастомных отчётов с помощью библиотеки Apache POI XWPF на Java и связанные с этим проблемы. Примеры кода выполняющие простейшие операции поиска, замены, удаления элементов документа.
Читать: https://habr.com/ru/articles/870544/?utm_campaign=870544
@a_cup_of_java | Другие наши каналы
Использование *.docx файлов как шаблонов для формирования кастомных отчётов с помощью библиотеки Apache POI XWPF на Java и связанные с этим проблемы. Примеры кода выполняющие простейшие операции поиска, замены, удаления элементов документа.
Читать: https://habr.com/ru/articles/870544/?utm_campaign=870544
@a_cup_of_java | Другие наши каналы
👍6
How Meta Ported Million Lines of Android Code from Java to Kotlin
In order to maximize the benefits brought by Kotlin in terms of productivity and safety, Meta engineers have been hard at work to translate their 10 million line Android codebase from Java into Kotlin. One year into this process, they have ported approximately half of their codebase and developed a specific tool, Kotlinator, to automate the process as much as possible.
By Sergio De Simone
Read: https://www.infoq.com/news/2024/12/meta-java-kotlin-port/
@a_cup_of_java | Другие наши каналы
In order to maximize the benefits brought by Kotlin in terms of productivity and safety, Meta engineers have been hard at work to translate their 10 million line Android codebase from Java into Kotlin. One year into this process, they have ported approximately half of their codebase and developed a specific tool, Kotlinator, to automate the process as much as possible.
By Sergio De Simone
Read: https://www.infoq.com/news/2024/12/meta-java-kotlin-port/
@a_cup_of_java | Другие наши каналы
🎉3🥱3