Search
Write a publication
Pull to refresh
2
0

Java dev

Send message

Разработка эффективных агентов с помощью Spring AI (Часть 1)

Level of difficultyEasy
Reading time8 min
Views4.1K

Команда Spring АйО перевела статью, в которой рассказывается про разработку эффективных агентов с помощью Spring AI. Исследование Anthropic "Building effective agents" подчеркивает важность простоты и модульности в разработке LLM-агентов.

В статье рассматривается, как эти принципы реализуются в Spring AI через пять ключевых паттернов: Chain Workflow, Parallelization Workflow, Routing Workflow, Orchestrator-Workers и Evaluator-Optimizer.

Читать далее

Книга: «Эффективный TypeScript: 83 способа улучшить код. 2-е изд.»

Reading time5 min
Views4.1K
imageПривет, Хаброжители!

В 2020 году у издательского дома «Питер» вышел перевод «Эффективный TypeScript: 62 способа улучшить код», и книга сразу стала бестселлером. Прошло почти полных четыре года! Многое изменилось с тех пор, в том числе и вышла новая версия TypeScript. Дэн Вандеркам полностью переработал книгу, и мы представляем вам новый «Эффективный TypeScript: 83 способа улучшить код. 2-е изд.». Подробный! Понятный! С неизменным скворцом на обложке!

Но обо всём по порядку.
Читать дальше →

PostgreSQL 13: happy pagination WITH TIES

Reading time2 min
Views12K
На прошедшей неделе вышло сразу две статьи (от Hubert 'depesz' Lubaczewski и автора самого патча Alvaro Herrera), посвященные реализованной в грядущей версии PostgreSQL 13 поддержке опции WITH TIES из стандарта SQL:2008:
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }
Что это, и как оно избавляет от проблем с реализацией пейджинга, о которых я рассказывал в статье «PostgreSQL Antipatterns: навигация по реестру»?


Читать дальше →

Что нового в Spring Boot 3.4: Spring Security

Level of difficultyEasy
Reading time10 min
Views2.9K

Команда Spring АйО перевела статью об улучшениях Spring Security 6.4.1 в новом релизе.

В новой версии поддержаны современные методы аутентификации, такие как Passkeys и одноразовые OTTs токены. Josh Long называет этот релиз doozie - что-то сильно потрясающее. Действительно ли это так?

Читать далее

Как развернуть React приложение с помощью AWS S3 и CloudFront

Reading time13 min
Views7.5K

Создадим приложение с использованием фреймворка Next.js, настроим облачные сервисы Amazon S3, Amazon CloudFront, AWS Lambda@Edge, развернем приложение и настроим маршрутизацию доменного имени.

Читать далее

Kotlin Coroutines под капотом: отмена корутин

Reading time24 min
Views11K

В прошлой статье я разобрал как работают корутины под капотом, однозначно рекомендую ознакомиться прежде чем закапываться дальше. В этой статье мы разберем такую сущность как Job и как на самом деле под капотом отменяются корутины, в общем будет интересно, погнали!

Читать далее

Decompose: покоряем Generic-навигацию на примере навигации по вкладкам

Level of difficultyMedium
Reading time19 min
Views1.7K

Разберемся, как работать с Generic Navigation, которую предоставляет Decompose, на примере табов — навигации, часто используемой браузерах.

Generic Navigation помогает управлять жизненным циклом дочерних компонентов через концепцию навигации — некоторое поведение, привычное пользователю.

Читать далее

pg-index-health – статический анализ структуры PostgreSQL баз данных

Level of difficultyHard
Reading time19 min
Views6.7K

С 2019 года я занимаюсь разработкой open source инструмента под названием pg-index-health, который позволяет анализировать структуру БД и находить потенциальные проблемы.

Все эти годы pg-index-health эволюционировал и развивался. За 2024 год мне при поддержке нескольких контрибьюторов удалось решить большинство остававшихся «детских болячек» и довести проект до состояния, когда он готов к масштабной экспансии.

В этой статье я хочу подробно рассказать об идеях, которые стоят за этим инструментом, и как его использовать в ваших проектах.

Читать далее

Получение SQL для PostgreSQL из DAX на основе AI

Reading time3 min
Views3.2K

Привет, Хабр! Популярным аналитическим языком является DAX, и он используется во множестве проектов. Соответственно, значительная часть бизнес-логики дашбордов реализована на DAX, и при переходе с Power BI на другой продукт требуется время на перевод DAX логики из Power BI. В связи с этим актуальны инструменты расширения списка платформ, на которых можно использовать DAX без Power BI.

Тем, кто интересуется «переводом» DAX на PostgreSQL — добро пожаловать под кат :)

Читать далее

Performance и оптимизация TypeScript-типов в больших проектах

Level of difficultyMedium
Reading time8 min
Views11K

Узнайте, почему большие TypeScript-проекты начинают "захлёбываться" от рекурсивных типов и обилия импортов, и как с помощью правильной структуры монорепы, настройки tsconfig и диагностики ускорить время компиляции и работу IDE. Рассматриваем инструменты, параллельную сборку, оптимизацию рекурсивных типов и прочие техники, которые помогут сохранить ваш проект быстрым и удобным.

Читать далее

Волшебные ссылки теперь в Spring Security

Level of difficultyHard
Reading time4 min
Views6.6K

Концепция волшебных ссылок (magic link) далеко не нова, однако долгое время у разработчиков не было надежного решения с полноценным комьюнити, которое позволяло бы быстро и просто реализовывать волшебные ссылки в своих приложениях. И вот, наконец, такая фича появилась в spring security. Давайте подробно разберем что у нас получилось, какие проблемы остались, и что планируется реализовать.

Читать далее

Парольная защита статичной HTML-страницы на JS

Reading time3 min
Views9.3K


Обычно парольная защита производится через веб-сервер, который проверяет пароль и выдаёт контент. Стандартный способ: .htaccess и htpasswd. Но что, если нужно выложить зашифрованную веб-страницу и файлы на публичном хостинге, где у нас нет контроля над сервером? Эту проблему решают инструменты StatiCrypt и Portable Secret.

Для шифрования HTML перед публикацией StatiCrypt использует AES-256 и WebCrypto, а расшифровка происходит с помощью ввода пароля в браузере на стороне клиента, как показано в демо (пароль test).

StatiCrypt генерирует статическую страницу, которую можно безопасно заливать на любой хостинг, в том числе бесплатный сторонний хостинг, такой как GitHub Pages.
Читать дальше →

Gradle: Исправление зависимостей в один клик

Level of difficultyEasy
Reading time11 min
Views3.1K

Работаете с Gradle? Dependency Analysis Gradle Plugin помогает не только находить лишние зависимости, но и автоматически исправлять проблемы с ними.

Механизм fixDependencies переписывает скрипты сборки, чтобы они соответствовали реальной структуре проекта. Последние обновления сделали процесс анализа ещё точнее, а работу с Kotlin DSL — проще и надёжнее. Читайте про фикс зависимостей в один клик в новом переводе от команды SpringАйО.

Читать далее

TS Extend: полезная утилитарная функция для расширения type

Reading time3 min
Views1.9K

В текущей версии TS (5.7) нет нативного расширения типов.

Расширение в TS реализуют интерфейсы через ключевое слово extend, причем интерфейсы могут быть расширены только от одного объекта.

Хотя для типов (type/interface) предусмотрена операция интерсекции (&), которая объединяет свойства двух или более типов - она обладает важным ограничивающим свойством - при наличии одинаковых свойств, операция интерсекции присваивает их результирующему типу значение never.

Если же мы хотим, чтобы свойство перезаписывалось последним значением пересечения, мы можем написать утилитарную функцию Extend, которая примет в себя массив типов, объединит их, а при наличии свойств с одинаковым именем, запишет в конечное значение последнее из них.

Читать далее

Бесплатное обучение фулстек-разработке веб-сервиса с нуля по видео-урокам с исходным кодом и поддержкой

Level of difficultyMedium
Reading time7 min
Views45K

TLDR. Я примерно год создавал курс из 141 урока. Курс получился хороший, все кто проходят рады и пишут положительные отзывы. Я пытался его продавать, в лучшем случае у меня получалось отбивать рекламу в ноль. Короче, я хороший разработчик, я хорошо доношу материал, но я плохой маркетолог. Все эти таргреты, ретаргеты, воронки, шморонки — тоска унылая. Мне гораздо веселее и понятнее заработать на создании и запуске IT-продуктов, чему я и учу в этом учебнике. Так что пишу эту статью, чтобы сообщить вам о существовании моего курса и предложить всем желающим абсолютно бесплатно получить от него пользу 🙂

Цель обучения — создать проект с нуля, изучив и применив технологии и архитектуру, которые обеспечивают качество и масштабируемость вашего кода, скорость разработки, а также удовольствие и радость от процесса.

Читать далее

Книга: «Изучаем OpenTelemetry: современный мониторинг систем»

Reading time8 min
Views6.1K
imageПривет, Хаброжители!

С развитием облачных технологий особую популярность приобрели микросервисные архитектуры, распространение которых, в свою очередь, вызвало развитие распределенных систем. Но вместе с новыми решениями появляются и новые проблемы: да, микросервисы упрощают масштабируемость приложений, но одновременно с этим усложняют их мониторинг. Традиционные инструменты отслеживания процессов, происходящих внутри систем, разрабатывались с прицелом на монолитные приложения – они не были рассчитаны на выявление нетривиальных связей между разрозненными сервисами. Из-за этого возникла проблема обеспечения наблюдаемости (observability) систем.

Классическое определение наблюдаемости звучит так: наблюдаемость – это свойство системы, отражающее то, насколько об ее внутреннем состоянии можно судить по ее внешним проявлениям. Иными словами, наблюдаемость – это степень прозрачности системы. А данные, позволяющие анализировать и контролировать работу системы, называют данными телеметрии.
Читать дальше →

Оптимизация хранения данных в PostgreSQL

Level of difficultyMedium
Reading time39 min
Views17K

Всем привет. Меня зовут Сергей, я — эксперт компании Bercut. За плечами — более 20 лет работы с различными СУБД (PostgreSQL, Oracle, MS Access, MS FoxPro, Borland InterBase) и высоконагруженными системами на их основе.

В Bercut мы занимаемся разработкой и развитием IT‑продуктов, решений для операторов цифровых услуг и мобильных сервисов. Наши системы работают на различном железе, разных СУБД и обслуживают 24×7x365 в режиме онлайн сотни миллионов абонентов.

Сегодня поговорим о том, как оптимизировать хранение данных в PostgreSQL, снизив объем дискового пространства, потребляемого таблицами и ускорить выборку данных. Это может быть особенно актуально после перевода информационной системы с другой СУБД на PostgreSQL.

Это не лонгрид (как кажется с первого взгляда), а краткое практическое руководство.Есть навигация, можно сразу перейти на нужные пункты.

Читать далее

Всего несколько строк CSS для плавных переходов между страницами

Level of difficultyMedium
Reading time6 min
Views12K

Одна строка CSS-кода может обеспечить чёткие переходы между страницами веб-приложений (и сайтов — для тех, кто их обслуживает, есть разница), открывая новые возможности для проектирования и работы. Так что предлагаю разобрать тему переходов между представлениями (View Transitions), обсудив их актуальность и сделав первые шаги при помощи всего одной строки CSS.
Читать дальше →

Asymmetric Join в PostgreSQL как эволюция Partitionwise Join

Level of difficultyHard
Reading time5 min
Views4.6K

Оптимизация Asymmetric Join (AJ) — это новый подход к объединению партицированных связей (partitioned relation, PR) и непартицированных связей (non-partitioned relation, NR). Она заключается в том, что каждая партиция присоединяется с помощью NR, а результаты объединяются путём APPEND. Всё это выглядит как эволюция техники partitionwise join (PWJ).

О партицировании в PostgreSQL

Information

Rating
Does not participate
Date of birth
Registered
Activity