TGViewer
Channel Public Channel
Spring АйО

Spring АйО

@spring_aio

Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Subscribers
10.9K
Photos
540
Videos
323
Links
709

Showing posts older than #1005 · Back to latest

Older Posts 15 shown
Post #1004 7.46K
Для JetBrains IDE вообще есть нормальный AI без проблем в РФ?

Периодически в @spring_aio_chat и на Хабре прилетают вопросы про то, какие сейчас есть варианты использования ИИ внутри IDE.

Один из вариантов – Kodacode.

Работает:
— в OpenIDE и JetBrains IDE
— в VS Code
— и даже в CLI

Что кажется наиболее полезным:
— агентный режим: без него от ИИ-помощника смысла не так много
— доступ к разным моделям: GLM, Gemini, DeepSeek, и другие
— работает без танцев с VPN и оплатами: у многих это сейчас главный стоп-фактор для AI-инструментов
— есть бесплатная модель: хватает для повседневных задач

📚 Подробнее про Koda для JetBrains IDE читайте на Хабр: https://habr.com/ru/companies/koda/articles/986976/
  • ❤ 19
  • 👍 16
  • 🔥 7
  • ⚡ 1
Post #1003 6.71K
🧩 Разница между параллельными и распределёнными вычислениями

Ускорение работы приложения можно получить двумя способами: распараллелить работу между ядрами одного компьютера или разнести ее по нескольким машинам.

Параллельные вычисления живут внутри одного узла: части задачи выполняются одновременно на CPU-ядрах, нескольких процессорах или ускорителях GPU/TPU.

Параллелизм бывает по задачам и по данным (одна операция над разными блоками), а также на уровне инструкций (конвейеризация, суперскалярность) и битов. Обмен данными чаще происходит через общую память и локальный IPC, поэтому задержки ниже.

Распределенные вычисления делят в свою очередь работу между автономными узлами по сети. Данные передают сообщениями или через RPC, координация сложнее, зато масштабирование обычно проще: добавил узлы - выросли вычисления и хранилище. Часто закладывают отказоустойчивость: репликация, резервирование, обнаружение ошибок.

🔗 Подробности в нашей статье на Хабр: https://habr.com/ru/companies/spring_aio/articles/1008990/
  • 🔥 15
  • ❤ 7
  • 👍 5
Post #1002 6.52K
🍃 Copyright умер, AI против GPL, модели консистентности | Spring АйО Подкаст №54

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
  • 🔥 17
  • 👍 11
  • ❤ 6
Post #996 7.52K
#weekend_memes 😂
  • 😁 32
  • ❤ 11
  • 🔥 9
  • 🤯 2
Post #995 18.8K
🎬 Документальный фильм про IntelliJ IDEA - IDE, которая изменила Java-разработку

IntelliJ IDEA в каком-то смысле спасла Java от самой себя

(Брайан Гетц, архитектор языка Java)


На YouTube вышел отличный документальный фильм про IntelliJ IDEA.

Для нас это особенно интересная история - всё-таки IntelliJ уже много лет является нашим основным инструментом разработки.

В фильме собрали довольно сильный состав участников. Среди них:

- Брайан Гетц (в особом представлении не нуждается)

- Джош Лонг (developer advocate Spring Framework)

- Максим Шафиров (Ex. CEO JetBrains)

- Дмитрий Жемеров (один из первых разработчиков языка Kotlin и автор книги "Kotlin in Action")

- Евгений Беляев (co-founder JetBrains)

- инженеры из Google, Docker, Miro и других компаний

Фильм построен как разговор о том, как вообще появилась IntelliJ IDEA и почему она стала тем инструментом, который мы знаем сегодня.

Там много интересных историй изнутри:

- как создавалась IntelliJ и какие идеи лежали в её основе

- как IDE конкурировала с Eclipse, который долгое время доминировал в Java

- почему появление Community Edition стало важным стратегическим решением

- как сложилось сотрудничество JetBrains и Google, приведшее к появлению Android Studio

- как менялась модель лицензирования и как на это реагировало сообщество

Плюс в фильме есть архивные кадры из ранних офисов JetBrains и воспоминания людей, которые участвовали в развитии платформы.

Отдельно интересно слушать комментарии разработчиков из индустрии. Например, инженеры Miro рассказывают, что их бэкенд построен на Java, Kotlin, Spring Boot, а IntelliJ для них - такая же инфраструктура разработки, как Wi-Fi в офисе: просто открываешь и работаешь.

Получилась довольно живая история про инструмент, без которого сегодня сложно представить разработку на Java.

Посмотреть точно стоит.

https://www.youtube.com/watch?v=Kourq_Lz03U
YouTube IntelliJ IDEA: The Documentary | An origin story This is the IDE that changed everything. This documentary traces the 25-year journey of one of the most beloved tools in software development. Through rare archival footage, intimate interviews, and behind-the-scenes moments, it explores how IntelliJ IDEA…
  • 🔥 49
  • 👍 20
  • ❤ 13
  • 😁 2
  • 🤯 1
Post #994 6.4K
🔓 Copyright больше не защищает ваш код

Я тут поймал себя на мысли про ИИ-агентов и open source. Сразу уточню: речь не про проблему обучения ИИ на коде под лицензией.

Не знаю, как кодят другие, но мой текущий процесс выглядит примерно так:

• Сначала собираю спецификацию (конечно, с помощью ИИ);
• По спецификации делаю план реализации;
• План отдаю ИИ-агенту.

В плане есть:

• гейты перехода между этапами;
• тесты;
• definition of done.

Дальше агент просто проходит по плану. Конечно, я сильно упрощаю, но общий принцип понятен.

И вот здесь возникает интересный момент.

Спецификацию можно собрать практически из чего угодно.


Например, из проекта под «заразной» лицензией вроде GNU GPL.

Можно внимательно изучить проект и написать подробную спецификацию:

• какие есть модули;
• как они взаимодействуют;
• какие алгоритмы используются;
• какие интерфейсы между компонентами.

По сути — полностью описать архитектуру системы. Причём даже не обязательно делать это вручную: с такой задачей вполне справится любой вменяемый ИИ-агент.

Дальше по этой спецификации другой ИИ-агент составляет план реализации, и запускается разработка. Через несколько итераций получается новый проект:

• он работает;
• код другой;
• структура файлов может быть другой;
• даже язык программирования может быть другим.

Но по сути это та же система, просто переписанная по спецификации.

Фактически получается что-то вроде автоматизированной clean-room реализации.

И вот тут возникает вопрос:
Защищает ли open-source лицензия от такого сценария?


Кажется, что нет. Потому что copyright защищает:

• конкретный код;
• конкретную реализацию.

Но не защищает:

• идеи;
• алгоритмы;
• архитектуру системы.

ИИ просто делает переход от чужой архитектуры к новой реализации очень дешёвым.

Раньше clean-room реализация требовала команды инженеров. Теперь это можно провернуть с помощью одного человека и пары ИИ-агентов (умножить на X).

Поэтому у меня появилась мысль:

Возможно, если кто-то действительно хочет защитить open-source проект от подобного «переизобретения», одной классической лицензии уже недостаточно.


Потому что лицензии регулируют копирование кода, а не пересборку системы по её описанию.

Утекшие исходники

Но это еще не все. Представим, что, не дай бог, исходники вашего закрытого ПО утекли в открытый доступ. Конечно же, никто в здравом виде не будет разворачивать ваш сервис у себя. Но теперь у любого есть армия неутомимых воинов за 100$-200$ в месяц, которые под чутким руководством могут скопировать ваш сервис так, что никто не придерется.

Возможно, ИИ просто подсветил старую юридическую проблему, которая раньше была менее заметна.

❓ Интересно, обсуждалось ли это уже где-нибудь.
  • 🔥 26
  • ❤ 11
  • 🤔 11
  • 👍 10
Post #993 6.41K
🧵 Введение в модели согласованности

Согласованность – это по сути контракт, описывающий семантику видимости изменений в общем ресурсе. Без модели вы не знаете, баг это или допустимое поведение системы.

Примеры моделей:

– Linearizability: запись включается сразу по реальному времени, после завершения её обязаны видеть все
– Serializable: транзакции атомарны, выглядят как выполненные согласно Prоgram Order, но не обязаны уважать реальное время
– Sequential Consistency: суперсет для Linearizability, где действия происходят лишь согласно Program Order, но не Real Time Clock.
– Causal: все процессы видят общий порядок только там, где есть причинность. Однако порядок независимых действий может интерпретироваться процессами по-разному.
– PRAM: каждый процесс видят «в его порядке», между процессами порядок может отличаться

Комментарий от Михаила Поливаха:
Это статья хоть и теоретическая, но понимание моделей консистетности крайне важно для понимания семантики happens-before в Java, и к тому же для понимания, например, как и почему уровни изоляции транзакций работают так, как работают.


Выбор модели консистентности для программы – это часто трейд-офф между предсказуемостью и производительностью. Например, поддержать Serializable гораздо сложнее, чем поддержать Causal.

📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1006474/
  • 🔥 15
  • 👍 7
  • ❤ 4
Post #992 8.46K
👩‍💻 Cursor теперь доступен в IDE JetBrains

Cursor пришел в IDE JetBrains: IntelliJ IDEA, PyCharm, WebStorm и другие теперь подключают его через Agent Client Protocol (ACP). А это значит, что работать с агентом можно прямо в JetBrains-IDE.

Cursor ACP дает выбор модели под задачу: OpenAI, Anthropic, Google и модели Cursor. Под каждую модель у Cursor своя агентная обвязка, чтобы держать качество и скорость.

Как включить:

– установить Cursor ACP из ACP Registry
– авторизоваться существующей учеткой Cursor

Плагин является бесплатным для пользователей на платных тарифах Cursor.

🔗 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1006764/
  • ❤ 22
  • 🔥 11
  • 👍 10
Post #991 7.54K
⏱ Часы Лампорта

Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена.

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

Как понять, что произошло раньше, а что позже, если глобального времени не существует?


Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах.

📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1005934/
  • 🔥 26
  • 👍 10
  • ❤ 7
Post #990 7.36K
🍃 x86 больше не нужен, процессоры Amazon, параллельные стримы в Java | Spring АйО Подкаст №53

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
  • 🔥 13
  • ❤ 9
  • 👍 7
  • 😁 2
Post #989 7.26K
✈️ Когда использовать параллельный стрим в Java?

parallelStream() не всегда быстрее: в бенчмарке sum(1..100) в параллели занял ~35 476 нс/оп против ~68 нс/оп в последовательном.

Параллельные стримы работают через ForkJoinPool.commonPool (кол-во потоков: ядра CPU - 1). Порядок обработки элементов не фиксирован, а некорректный reduce может дать неверный итог: identity прибавляется в каждом worker`е (например, reduce(5, sum)).

Где параллельные стримы реально полезны:

– Большой объем данных и много вычислений на элемент (так называемая модель NQ: чем больше N*Q, тем выше шанс ускорения; для тривиального суммирования эмпирически N > 10 000).

– Источник легко и равномерно делится: массивы и ArrayList. На 1 000 000 элементов ArrayList в бенчмарке быстрее в параллели (~2.0 мс vs ~5.4 мс).

– Дешевая операция объединения результатов: reduce/sum обычно выигрывают. Например, сумма на ArrayList быстрее в параллели (~2.07 мс vs ~5.51 мс).

– Хорошая локальность данных. Например, массив примитивов (int[]) даёт больший выигрыш, чем массив ссылок (Integer[]), потому что меньше скачков по памяти.

– Есть I/O с большим числом объектов: поиск по 1500 текстовым файлам через Files.walk в параллели быстрее (~10.8 мс vs ~13.3 мс).



📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1005180/
  • 👍 24
  • ❤ 7
  • 🔥 6
  • ⚡ 1
  • 🤯 1
Post #988 6.27K

Forwarded from Amplicode – ускоряем разработку на Spring

🔥 Тестирование API простыми словами + практика | Postman, Connekt

В новом видео разбираем тестирование API с нуля: что такое API, как работает HTTP, и переходим к практике в двух инструментах — Postman и Connekt.

В части про Postman: создаём GET и POST запросы, импортируем коллекции из Swagger, cURL и браузера, перехватываем трафик и настраиваем переменные окружения.

Дальше — то же самое в Connekt: импорт из Postman, работа с эндпоинтами Spring-приложения, все основные HTTP-методы, авторизация, работа с файлами, assertions и сложные сценарии с цепочками запросов.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
  • 👍 20
  • 🔥 14
  • ❤ 10
Post #987 7.03K
❗️Spring АйО на Java Rock Stars meetup ❗️

Друзья, по традиции, эксперты Spring АйО выступят на ближайшем Java Rock Stars meetup.

5 марта. Москва. Лофт Casa Picassa на Бауманской.

💬 В программе:

– Илья и Фёдор Сазоновы расскажут о том, как обычные проекты внезапно начинают задыхаться при масштабировании, хотя пользователей и данных там не так много. Узнаем о причине проблем с производительностью и главном правиле работы с реляционными БД, которое регулярно нарушают.

– Александр Ланцов покажет, как работа со строками и произвольным Unicode в Java может поставить в тупик даже опытного разработчика, и разберёт типичные ошибки на примерах.

Для участия нужна только регистрация.
  • 🔥 22
  • ❤ 11
  • 👍 9
  • ⚡ 1
Post #986 6.44K
🌧 Оптимизация Java-приложений для Arm64 в облаке

JVM в первую очередь процесс операционной системы. Но важно понимать, что требования к этому процессу на production отличатся от требований на workstation-е разработчика.

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

В новом переводе от команды Spring АйО разберем, какие существуют базовые настройки кучи, GC и CPU помогают синхронизировать JVM с лимитами контейнера и не переплачивать за простаивающие ресурсы.

Комментарий от Михаила Поливаха:

Все оптимизации в статье применимы не только к ARM-овым CPU, но и к x86. Это важно, потому что большая часть Ваших серверных workload-ов, даже если Вы об этом не знаете, они бегут на x86_64. Поэтому, статья для Вас тоже актуальна.


📚Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1003602/
  • 👍 25
  • ❤ 11
  • 🔥 5
  • ⚡ 1
Post #984 5.63K

Forwarded from OpenIDE – мультиязычная среда разработки

⚡️ Haiku обошла Opus | Claude слил $1.78 млн | Нейросеть впаяли в кремний

Второй выпуск еженедельных IT-новостей от OpenIDE.

В этот раз: вайбкодер случайно получил доступ к 7 000+ пылесосам, вышли Sonnet 4.6 и Gemini 3.1 Pro, Haiku со скиллами обошла Opus без них, Claude Code Security и потеря $1,78 млн из-за кода от Claude.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
  • 😁 14
  • 🔥 11
  • 👍 7
  • ❤ 5
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →