Принципы SOLID на примерах из жизни и разработки
В статье объясняются принципы SOLID доступным языком на простых жизненных примерах, а затем показывается, как эти правила применяются в реальных программах.
SOLID — это пять важных правил разработки программного обеспечения, помогающих создавать хороший, удобный и надежный код.
https://habr.com/ru/articles/849350/
#solid
В статье объясняются принципы SOLID доступным языком на простых жизненных примерах, а затем показывается, как эти правила применяются в реальных программах.
SOLID — это пять важных правил разработки программного обеспечения, помогающих создавать хороший, удобный и надежный код.
https://habr.com/ru/articles/849350/
#solid
Хабр
Принципы SOLID на примерах из жизни и разработки
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде. Итак, SOLID - это 5 принципов,...
👍3🔥3👏2💩1👾1
Скажем нет «Превращению», или анализ Kafka
Вас когда-нибудь интересовал скрытый мир ошибок в исходниках крупных open-source проектов?
⚡️ Откройте для себя захватывающие истории обнаружения багов в проекте Apache Kafka — один из самых популярных инструментов обработки больших данных! 📌
✅ Что внутри поста:
— Ошибки, найденные анализатором PVS-Studio.
— Как избежать проблем в собственном коде.
— Примеры реальных уязвимостей и советы по улучшению качества вашего ПО.
Прочитав этот материал, вы получите знания, способные повысить качество ваших собственных проектов!
https://habr.com/ru/companies/pvs-studio/articles/851066/
#Kafka #PVSStudio
Вас когда-нибудь интересовал скрытый мир ошибок в исходниках крупных open-source проектов?
⚡️ Откройте для себя захватывающие истории обнаружения багов в проекте Apache Kafka — один из самых популярных инструментов обработки больших данных! 📌
✅ Что внутри поста:
— Ошибки, найденные анализатором PVS-Studio.
— Как избежать проблем в собственном коде.
— Примеры реальных уязвимостей и советы по улучшению качества вашего ПО.
Прочитав этот материал, вы получите знания, способные повысить качество ваших собственных проектов!
https://habr.com/ru/companies/pvs-studio/articles/851066/
#Kafka #PVSStudio
Хабр
Скажем нет «Превращению», или анализ Kafka
Бывало ли вам интересно, какие баги может таить исходный код проектов, которыми пользуются большие компании по всему миру? Не упустите шанс познакомиться с интересными ошибками, которые нашёл...
🔥5👏1
🔥 Хочешь ускорить работу своего Java-приложения и повысить его эффективность? Тогда эта статья обязательна к прочтению!
🖥️ Полнотекстовый поиск в ваших приложениях с использованием Elasticsearch — мощнейший инструмент, который позволит мгновенно находить нужные данные среди огромного объема информации. Представьте себе скорость и удобство работы вашего сервиса на совершенно новом уровне!
✅ Чем полезна интеграция Elasticsearch + Spring Boot + PostgreSQL?
- 🚀 Масштабируемость и высокая производительность
- 🗂️ Надежное хранение данных с возможностью быстрой индексации
- 🧑🤝🧑 Простота разработки благодаря удобству Spring Boot
- 🕵️ Улучшение пользовательского опыта и повышение конкурентоспособности продукта
📃 Статья раскрывает важные аспекты интеграции:
- Как правильно индексировать сущности и связи (JPA)
- Настройки разметки атрибутов для эффективного поиска
- Совмещение и разделение сущностей для максимальной гибкости
- Реализация синонимов и фильтраций для повышения точности результата
🔍 Вы научитесь настраивать веса и применять многослойные фильтры, чтобы пользователи могли легко находить необходимые данные даже при ошибке ввода или неполном запросе.
📚 Примеры из практики позволят сразу внедрить знания в ваш проект и ощутить реальную пользу для бизнеса.
https://habr.com/ru/companies/rostelecom/articles/851658/
#Elasticsearch #SpringBoot #PostgreSQL #Java #Эффективность #Оптимизация #Поиск #Данные
🖥️ Полнотекстовый поиск в ваших приложениях с использованием Elasticsearch — мощнейший инструмент, который позволит мгновенно находить нужные данные среди огромного объема информации. Представьте себе скорость и удобство работы вашего сервиса на совершенно новом уровне!
✅ Чем полезна интеграция Elasticsearch + Spring Boot + PostgreSQL?
- 🚀 Масштабируемость и высокая производительность
- 🗂️ Надежное хранение данных с возможностью быстрой индексации
- 🧑🤝🧑 Простота разработки благодаря удобству Spring Boot
- 🕵️ Улучшение пользовательского опыта и повышение конкурентоспособности продукта
📃 Статья раскрывает важные аспекты интеграции:
- Как правильно индексировать сущности и связи (JPA)
- Настройки разметки атрибутов для эффективного поиска
- Совмещение и разделение сущностей для максимальной гибкости
- Реализация синонимов и фильтраций для повышения точности результата
🔍 Вы научитесь настраивать веса и применять многослойные фильтры, чтобы пользователи могли легко находить необходимые данные даже при ошибке ввода или неполном запросе.
📚 Примеры из практики позволят сразу внедрить знания в ваш проект и ощутить реальную пользу для бизнеса.
https://habr.com/ru/companies/rostelecom/articles/851658/
#Elasticsearch #SpringBoot #PostgreSQL #Java #Эффективность #Оптимизация #Поиск #Данные
Хабр
Полнотекстовый поиск в java приложениях с помощью Elasticsearch
Введение В современном мире объёмы данных растут экспоненциально, и эффективное управление информацией становится критически важным для успеха любого приложения. Полнотекстовый поиск играет ключевую...
🔥2👍1
▌ 🔍 Разбираемся с Vespa. Часть 2
Продолжаем погружение в мир поиска и обработки данных с Vespa!
Сегодня разберём ключевые аспекты платформы:
▌ ➕ Узнаете:
- Что такое Document и Query Processing: этапы обработки документов и запросов.
- Обработка текста: токенизация, стемминг и оптимальные методы для русского языка.
- Алгоритмы поиска: как эффективно находить нужную информацию среди множества данных.
- Ранжирование результатов: почему одни результаты оказываются выше других.
https://habr.com/ru/companies/sportmaster_lab/articles/848992/
#Vespa
Продолжаем погружение в мир поиска и обработки данных с Vespa!
Сегодня разберём ключевые аспекты платформы:
▌ ➕ Узнаете:
- Что такое Document и Query Processing: этапы обработки документов и запросов.
- Обработка текста: токенизация, стемминг и оптимальные методы для русского языка.
- Алгоритмы поиска: как эффективно находить нужную информацию среди множества данных.
- Ранжирование результатов: почему одни результаты оказываются выше других.
https://habr.com/ru/companies/sportmaster_lab/articles/848992/
#Vespa
Хабр
Разбираемся с Vespa. Часть 2
Содержание Данная статья является продолжением цикла о поисковой системе Vespa . В прошлый раз мы рассмотрели, как запустить сервер конфигурации Vespa с помощью Docker, а также изучили процесс...
🔥2👍1
🔥 API-Шлюз или опять тестировать
Разработчики часто сталкиваются с вопросом централизации обработки запросов при увеличении количества микросервисов. Важность Gateway подчеркивается двумя аспектами:
✅ Безопасность: благодаря единому пункту входа легко организовать полный аудит событий.
✅ Производительность: такие сервисы помогают разгрузить основную систему, предотвращая обработку некорректных запросов.
Просто закупка мощного железа неэффективна и ведет к дополнительным расходам.
❗ Проблемы существующих подходов
Автор статьи отмечает недостатки популярного инструмента Spring Cloud Gateway:
- Необходимость написания множества фильтров вручную.
- Увеличение трудоемкости проекта.
- Сложность реализации прозрачности авторизации и проверки данных.
🆕 Предлагаемое решение
Предлагается новый подход, позволяющий оптимизировать работу над проектом Mireapay:
1. Использование проверенных методов авторизации: интеграция авторизационных механизмов прямо в инфраструктуру.
2. Снижение расходов на разработку: автоматическая генерация шаблонов gateways и клиентов снижает количество ручного программирования.
3. Выявление ошибок заранее: переход к обнаружению багов на этапе компиляции повышает качество конечного продукта.
Эти меры позволят сократить затраты на сопровождение сложной инфраструктуры и повысить эффективность командной работы.
https://habr.com/ru/articles/854880/
#микросервисы #шлюз
Разработчики часто сталкиваются с вопросом централизации обработки запросов при увеличении количества микросервисов. Важность Gateway подчеркивается двумя аспектами:
✅ Безопасность: благодаря единому пункту входа легко организовать полный аудит событий.
✅ Производительность: такие сервисы помогают разгрузить основную систему, предотвращая обработку некорректных запросов.
Просто закупка мощного железа неэффективна и ведет к дополнительным расходам.
❗ Проблемы существующих подходов
Автор статьи отмечает недостатки популярного инструмента Spring Cloud Gateway:
- Необходимость написания множества фильтров вручную.
- Увеличение трудоемкости проекта.
- Сложность реализации прозрачности авторизации и проверки данных.
🆕 Предлагаемое решение
Предлагается новый подход, позволяющий оптимизировать работу над проектом Mireapay:
1. Использование проверенных методов авторизации: интеграция авторизационных механизмов прямо в инфраструктуру.
2. Снижение расходов на разработку: автоматическая генерация шаблонов gateways и клиентов снижает количество ручного программирования.
3. Выявление ошибок заранее: переход к обнаружению багов на этапе компиляции повышает качество конечного продукта.
Эти меры позволят сократить затраты на сопровождение сложной инфраструктуры и повысить эффективность командной работы.
https://habr.com/ru/articles/854880/
#микросервисы #шлюз
Хабр
API-Шлюз или опять тестировать
При разработке микросервисов рано или поздно возникает вопрос о специализированном микросервисе, через который проходят запросы и маршрутизируются в нужный. Это необходимо не только с точки зрения...
🔥5👍4❤2
🔥 Знакомьтесь с Tribuo 🚀
Tribuo — это библиотека машинного обучения на Java от Oracle. Она помогает решать разные задачи, такие как классификация, регрессия и кластеризация. Сегодня поговорим именно о регрессии — важной задаче, позволяющей предсказывать численные значения (например, цены или температуры).
Главные плюсы Tribuo:
✅ Удобный интерфейс для быстрого построения моделей
✅ Простота оценки качества созданных моделей
https://habr.com/ru/companies/otus/articles/853300/
#машинноеобучение #tribuo #java #oracle
Tribuo — это библиотека машинного обучения на Java от Oracle. Она помогает решать разные задачи, такие как классификация, регрессия и кластеризация. Сегодня поговорим именно о регрессии — важной задаче, позволяющей предсказывать численные значения (например, цены или температуры).
Главные плюсы Tribuo:
✅ Удобный интерфейс для быстрого построения моделей
✅ Простота оценки качества созданных моделей
https://habr.com/ru/companies/otus/articles/853300/
#машинноеобучение #tribuo #java #oracle
Хабр
Tribuo и регрессия: как строить предсказательные модели на Java
Привет, Хабр! В этой статье наш взор упадет на на Tribuo — библиотеку машинного обучения на Java от Oracle. Tribuo поддерживает различные алгоритмы для классификации,...
🔥7👌5
Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL
Эта статья — о том, как адаптировать PostgreSQL для векторного поиска, исследуя возможности и расширения, такие как pgvector, и показывая, как они работают на практике. В результате у вас будет полноценное руководство по тому, как развернуть смысловой поиск на PostgreSQL, обходя стороной дорогие и сложные специализированные решения.
https://habr.com/ru/companies/rostelecom/articles/855712/
#PostgreSQL #pgvector #LLM
Эта статья — о том, как адаптировать PostgreSQL для векторного поиска, исследуя возможности и расширения, такие как pgvector, и показывая, как они работают на практике. В результате у вас будет полноценное руководство по тому, как развернуть смысловой поиск на PostgreSQL, обходя стороной дорогие и сложные специализированные решения.
https://habr.com/ru/companies/rostelecom/articles/855712/
#PostgreSQL #pgvector #LLM
Хабр
Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL
Аннотация Эта статья родилась из пары лекций, которые я прочитал студентам в рамках курса, посвященного вопросам машинного обучения. Почему именно PostgreSQL? Почему векторы? За последние два года...
👏6🔥5❤1
HHH90003004: firstResult/maxResults specified with collection fetch; applying in memory
Hibernate выводит важное предупреждение, когда для постраничного вывода приходится загружать сразу ВСЕ записи из базы данных — вместо того, чтобы запрашивать страницы порциями.
Проблема возникает потому, что число записей не совпадает с числом самих объектов (например, один пост имеет много комментариев). Из-за этого пагинация на SQL-уровне невозможна.
Чтобы реализовать пагинацию программно, Hibernate вытаскивает все данные целиком — и вот тут-то кроется подвох!
В статье разобраны разные способы устранения проблемы 🚀
https://habr.com/ru/articles/856092/
#Hibernate #Database
Hibernate выводит важное предупреждение, когда для постраничного вывода приходится загружать сразу ВСЕ записи из базы данных — вместо того, чтобы запрашивать страницы порциями.
Проблема возникает потому, что число записей не совпадает с числом самих объектов (например, один пост имеет много комментариев). Из-за этого пагинация на SQL-уровне невозможна.
Чтобы реализовать пагинацию программно, Hibernate вытаскивает все данные целиком — и вот тут-то кроется подвох!
В статье разобраны разные способы устранения проблемы 🚀
https://habr.com/ru/articles/856092/
#Hibernate #Database
Хабр
HHH90003004: firstResult/maxResults specified with collection fetch; applying in memory
Это предупреждение, которое выведет хибернейт, если для осуществления пагинации ему придется загрузить ВСЕ данные из таблицы, а не по одной странице. 🤔 Почему возникает? Например, у нас есть две...
🔥6❤4👍2👎1
Виртуальные потоки Java: разбор тестовых сценариев
Команда Open Liberty изучила влияние виртуальных потоков на производительность Java-приложений и поделилась результатами исследования.
🔹 Что нового: Виртуальные потоки предлагают альтернативу классическим пулам потоков, реализованным в Liberty.
🔸 Основные выводы:
✅ Для большинства облачных рабочих нагрузок использование виртуальных потоков не даёт заметных преимуществ перед адаптивными пулами потоков Open Liberty.
❌ Нагрузки, активно использующие процессор, показывают меньшую пропускную способность с виртуальными потоками, хотя причина этого ещё выясняется.
⚡️ Время выхода на полную мощность обработки запросов сокращается благодаря использованию виртуальных потоков («один поток на запрос»).
📊 Объем занимаемой памяти зависит от множества факторов, поэтому снижение потребления памяти виртуальными потоками не гарантирует общего снижения затрат ресурсов.
⚠️ Обнаружены случаи неожиданных падений производительности, над которыми продолжается работа совместно с сообществом OpenJDK.
Статья подробно описывает тестирование, сравнение технологий и рекомендации по выбору подходящей стратегии многопоточности для приложений на платформе Open Liberty.
https://habr.com/ru/companies/otus/articles/856464/
#java #OpenLiberty #multithreading #VirtualThreads
Команда Open Liberty изучила влияние виртуальных потоков на производительность Java-приложений и поделилась результатами исследования.
🔹 Что нового: Виртуальные потоки предлагают альтернативу классическим пулам потоков, реализованным в Liberty.
🔸 Основные выводы:
✅ Для большинства облачных рабочих нагрузок использование виртуальных потоков не даёт заметных преимуществ перед адаптивными пулами потоков Open Liberty.
❌ Нагрузки, активно использующие процессор, показывают меньшую пропускную способность с виртуальными потоками, хотя причина этого ещё выясняется.
⚡️ Время выхода на полную мощность обработки запросов сокращается благодаря использованию виртуальных потоков («один поток на запрос»).
📊 Объем занимаемой памяти зависит от множества факторов, поэтому снижение потребления памяти виртуальными потоками не гарантирует общего снижения затрат ресурсов.
⚠️ Обнаружены случаи неожиданных падений производительности, над которыми продолжается работа совместно с сообществом OpenJDK.
Статья подробно описывает тестирование, сравнение технологий и рекомендации по выбору подходящей стратегии многопоточности для приложений на платформе Open Liberty.
https://habr.com/ru/companies/otus/articles/856464/
#java #OpenLiberty #multithreading #VirtualThreads
Хабр
Виртуальные потоки Java: разбор тестовых сценариев
С выходом JDK 21 появилась широко разрекламированная новая функция — виртуальные потоки Java. Это нововведение помогает разработчикам на Java лучше управлять параллелизмом в своих приложениях....
👍3🔥2❤1😱1