xpinjection


Гео и язык канала: Украина, Русский
Категория: Технологии


Авторский канал @xpinjection - опытный Java Tech Lead, Delivery Manager и консультант с 19+ лет опыта в IT.
Пишу о Java, распределённых системах, Agile, процессах разработки, инженерных практиках, QA, конференциях, инфраструктуре и многом другом...

Связанные каналы

Гео и язык канала
Украина, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Март подходит к концу и самое время объявить публичные тренинги на апрель. У меня будет возможность провести в апреле только 2 онлайн тренинга:

С 3 по 10 апреля пройдет повтор курса "ChatGPT для Java разработчиков". Кто не успел на мартовский набор, торопитесь присоединиться к апрельскому. Места обычно разлетаются очень быстро.

С 12 по 24 апреля запланирован тренинг "Cloud-Native микросервисы на Spring Boot". Он обновлен до версии Spring Boot 3.2.x, расширен модуль по внутреннему техническому дизайну (слои, гексагональная архитектура, модульность), расширен модуль по тестированию. Тренинг покрывает полноценно весь спектр важных тем для разработки production ready микросервисов на самом популярном в Java мире фреймворке.

Регистрируйтесь и рекомендуйте коллегам!


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

#kubernetes #k8s

https://overcast.blog/13-advanced-kubernetes-interview-questions-for-2024-953683603df1


Напоминаю, что на следующей неделе у нас стартует тренинг по Kubernetes и еще не поздно присоединиться к группе. Курс достаточно длинный - 9 модулей по 3 часа. Почему так?

Он поделен на 3 больших логических блока:

1. Основы. Там мы разбираемся зачем и когда нужен K8S, знакомимся с принципами работы и ключевыми концепциями, вариантами его разворачивания и инструментами для работы.

2. Разворачивание полноценного приложения. В этом блоке мы рассматриваем как надежно задеплоить приложение в K8S, обеспечить его безопасность, масштабирование, высокую доступность, динамичную конфигурацию, рациональное потребление ресурсов и т.д. По мере погружения также разбираем требования к самому приложению и как их обеспечить с помощью современных фреймворков в Java стеке.

3. Организация разработки с K8S. В этот блок попали инструменты для упаковки и гибкой конфигурации для разных окружений, локальной работы разработчиков над своими сервисами, организации CI/CD по различным стратегиям, а также расширения возможностей K8S под свои потребности.

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

#kubernetes #k8s #тренинги


Наш благотворительный вебинар в итоге собрал 93000 гривен. Я удвоил собранную после вчерашнего анонса сумму, закинув в банку еще 57000. В итоге, 150000 гривен будут переданы на FPV дроны команде Social Drone UA. Всем огромное спасибо за участие!

P.S.: Среди задонативших от 3000 гривен мы разыграли случайным образом 3 билета на тренинг "ChatGPT для Java разработчиков". Поздравляем победителей!


Регистрациями на благотворительный вебинар 23 февраля уже собрали 36000 гривен. Надо добавить мотивации. Я удвою собранную сумму перед передачей команде Social Drone UA. Еще есть время присоединиться!

P.S.: Запись будет доступна всем участникам, даже если у них не получится подключиться на сам вебинар.


А вот и анонсы публичных тренингов на март:

С 26 февраля по 4 марта пройдет обновленный тренинг «ChatGPT для Java разработчиков». Добавился еще один модуль, обновились материалы и адаптированы примеры с учетом новых возможностей ChatGPT, расширен новыми примерами блок по работе с кодом и типовыми задачами разработки. Занятия онлайн, 4 модуля по 3 часа, домашка после каждого модуля.

С 6 по 25 марта запланировали тренинг «Kubernetes для Java разработчиков». Программа тренинга обновлена для более плавного погружения и лучшего распределения сложных тем по модулям тренинга. Благодаря этому, должно стать проще выполнять домашку и применять полученные знания на практике. Занятия онлайн, 9 модулей по 3 часа, домашка после каждого модуля.

Также продолжается регистрация на благотворительный вебинар по ChatGPT в пятницу 23 февраля. Уже собрали треть запланированной суммы. Присоединяйтесь сами, приглашайте коллег и знакомых!


Наконец получилось найти время на публичные тренинги весеннего сезона. Расписание опубликуем буквально через пару дней. А начать хотелось бы с благотворительного вебинара "ChatGPT для Java разработчиков" в поддержку очень крутого проекта Social Drone UA.

Вебинар запланирован в онлайн формате на пятницу 23 февраля в 18:00 (Киев, GMT+2). Процесс регистрации на вебинар работает следующим образом:

1. Вы делаете благотворительный взнос на банку от 1000 гривен для проекта Social Drone UA. Среди участников со взносами от 3000 гривен мы разыграем 3 билета на полноценный тренинг по использованию ChatGPT для разработчиков.

2. Заполняете небольшую регистрационную форму с теми же персональными данными, которые использовали для взноса.

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

Пару слов о Social Drone UA. Сооснователем проекта является мой давний знакомый Сергей Пирогов и достаточно много моих знакомых присоединились к проекту в качестве участников.

Ребята организовали распределенное сообщество по сборке и подготовке FPV дронов для ЗСУ. Каждый желающий может присоединиться и своими руками приблизить нашу победу. Благодаря таким проектам, 1 миллион дронов в год может стать вполне реалистичной миссией.

Детальнее о проекте можно узнать из DOU подкаста: https://www.youtube.com/watch?v=UxwzovNpMRE


Если вы или ваши знакомые изучают JVM стек, то есть отличная возможность за копейки купить крутой набор книг по этой теме. 15 книг, которые покрывают большинство аспектов разработки на одном из нескольких языков: Java, Scala, Kotlin. Приятного чтения!

#books #java

https://www.humblebundle.com/books/java-2024-oreilly-books


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

Тема модульный монолитов потихоньку набирает популярность. А вместе с ней люди вспоминают о Domain-Driven Design, гексагональной архитектуре, event-driven интеграциях, модульной инкапсуляции и других полезных архитектурных подходах.

Ну и главное, нужны готовые фреймворки для снижения порога вхождения и массового применения. Spring Modulith на базе Spring Boot этой осенью вышел в GA и стал одним из доступных модулей в start.spring.io. Кто еще не пробовал, настоятельно рекомендую взглянуть.

#SpringBoot #architecture

https://youtu.be/7c6xXmJvDjo?si=G0RyXfHe_MVH_EsB


В ноябре прошлого года вышла Java 21 - новый LTS релиз. И вдогонку зарелизился Spring Boot 3.2 с поддержкой новой версии и кучей интересных фичей:

- добавлена поддержка виртуальных потоков во всех ключевых местах;
- возможность релоада SSL бандлов (прощай устаревшие сертификаты или рестарты для их замены);
- множество улучшений в observability с Micrometer, включая поддержку в тестах и использование удобных аннотаций;
- поддержка JVM Checkpoint Restore с проектом CRaC как еще одной альтернативы ускорения запуска приложения.

Для желающих посмотреть работу новинок на практике, вот выпуск Spring Tips: Spring Boot 3.2. А кому интересно как это работает в деталях, рекомендую deep dive сессию.

#SpringBoot #Java


Если вы думали, что хорошо знаете Git, то у меня для вас плохие новости. :) А на самом деле, отличный доклад про крутые фичи Git, которые могут сделать вашу работу проще и приятнее за счет автоматизации сложных задач.

https://youtu.be/WtUCZYyv-_w?si=ubjNZpnJXzOseXaA

6.9k 0 119 9 67

Став одним з топ-донатерів благодійного фонду KOLO. З березня 2022 року зібрано 500 млн грн, і всі вони стали технологіями для української армії. Це круто! Дякую фонду й іншим донатерам. Приєднуйтесь! #kolowrapup2023


Посмотрел я вчера презентацию официального запуска AI assistant от JetBrains и стало грустно за них. Ожидаемых инноваций не случилось. Показанное с трудом дотягивает до презентации обновленного Copilot от Microsoft. :(

Теперь по существу:

1. Добавили подобный изначальному в Copilot режим работы с генерацией кода на лету. Выглядит слабенько на фоне конкурентов. И моделька непонятно какая. Тот же Copilot может учиться на огромной базе GitHub.

2. Работа с предлагаемым кодом примитивна и работает только на выделенном коде в одном файле. Никаких тебе структурных рефакторингов на несколько файлов, кастомных правил подгрузки контекста или дополнительных знаний.

3. Настроек используемых моделей тоже нет, как и возможности указать свой ключ от API какого-то провайдера. В итоге, ты пользуешься хрен пойми какой моделью с общими настройками, зато из IDE. И хрен знает что с твоим кодом из IDE в итоге будет происходить на сервере.

4. Все примеры на уровне «сгенерируем последовательность Фибоначчи». Типичная задача разработчика, я в восторге. Зато решается на демо в рамках одного файла и прямолинейным простым промптом. А поддержка многошаговых промптов с возможностью делать кастомные роли прошла мимо них. Пусть разработчики больше последовательностей Фибоначчи генерят. :)

5. Ну и наконец Enterprise версия. Идею снова слизали чисто у Copilot, но по обещаемым возможностям снова посредственно. Из полезного, можно будет модельку настраивать какую использовать. А нам, простым смертным, ведь не положено. :)

Из всей презентации полезный посыл был в том, что IDE видит ваш код со всех сторон и форматов и поэтому способна на многое. Но что это многое в применении GenAI они еще не придумали. :)

Вот сама презентация, приятного просмотра!

#ai #idea #IDE

https://www.youtube.com/live/SN51H_q9wBg?si=YYrg32ItZEkUDfnO

8.6k 1 47 18 52

С докладом вышла неразбериха по таймингу и я не успел рассказать самое интересное. :( Будет повод провести вебинарчик за донаты на ЗСУ.

Из последних новостей в этой области, я закончил полный цикл полуавтоматизированной разработки типовой задачи по реализации нового API в Spring Boot микросервисе. На входе существующий микросервис, построенный по принципам гексагональной архитектуры (очень важно). На выходе работающий API с полным покрытием тестами и документацией.

Сам цикл примерно такой:

0. Описание задачи в JIRA (руками кожаного мешка или из другого AI ассистента).

1. Чтение задачи из JIRA. (GPT для интеграции с JIRA)

2. Создание API спецификации (GPT дизайна API).

3. Создание тестового плана и полного набора API тестов (GPT тестировщика).

4. Реализация HTTP адаптера. (GPT разработчика)

5. Реализация бизнес логики, доменной модели и покрытие их модульными тестами. (GPT разработчика)

6. Реализация адаптеров для внешнего взаимодействия (БД, соседние сервисы, Kafka/RabbitMQ). (GPT разработчика)

7. Сбор всего вместе, запуск, отладка, рефакторинг. (Кожаный мешок)

Из неавтоматизированного остались пункты 0, 7 и собственно координация усилий между GPT. И как раз на эту тему мы сейчас с одним из клиентов экспериментируем.

Логика экспериментов простая: объединить всех AI агентов в один общий чат и снабдить нужными тулами для компиляции кода, сборки, запуска тестов, сохранения кода в файловую систему и т.д. Тогда можно будет просто закидывать ссылку на JIRA задачу и агенты самостоятельно будут реализовывать и тестировать получившееся решение. Все результаты будут сразу доступны в локальном git репозитории. У кожаного мешка останется возможность давать обратную связь после каждого логического шага.

Пока используем GPT-4 от OpenAI и AutoGen от Microsoft. Первые результаты выглядят фантастически, если честно. Еще есть над чем поработать: выбрать удачные модели для каждого агента, продумать настройки каждой модели, посчитать финансовый план, оптимизировать его, возможно через плагин сделать интеграцию с IntelliJ IDEA и т.д. Но на первых демках описанная типовая задача целиком решается за 10 минут с созданием PR в GotHub. В моей полуавтоматизации такая задача занимает от 30 минут до часа в сложных кейсах.

Будущее уже наступило, вам нужно только захотеть к нему присоединиться! :)

#chatgpt


В этот четверг я буду выступать с докладом на онлайн конференции Cloud Builders: Java Conf 2023. Тема доклада "ChatGPT meets Java: A Java developer’s secret to accelerated coding" и я собираюсь поделиться несколькими практическими техниками работы с ChatGPT для Java разработчиков. Это конечно не тренинг и временной слот небольшой, но я постараюсь принести и разобрать несколько полезных примеров.

Я не фанат онлайн конференций, поэтому уже несколько лет не выступал с докладами. Но надеюсь получится не уныло. :) Если вам интересна тема, то приходите на доклад, я буду рад интересным вопросам и обратной связи!


Помните мой недавний пост про "методологию измерения продуктивности разработчиков" от McKinsey? Им оказывается много кто тогда дал обратную связь. Среди них Kent Beck и Gergely Orosz. Они отлично на примерах разложили модельку с Effort -> Output -> Outcome -> Impact и показали, почему подобные "методологии" натурально работают для продажников и HR, но слабо применимы для разработки.

Я бы из статьи выделил прекрасный пункт про самооценку инженером своего уровня. Тут отлично работают 2 критерия:

1. Способность мержить в основную ветку хотя бы раз в день. Этот критерий затрагивает и качество кода, и следование стандартам, и умение декомпозировать работу и кучу других навыков.

2. Способность работать с единственным красным тестом в момент времени. Этот критерий про инкрементальность дизайна, декомпозицию, встроенное качество, контроль и понимание кода, и т.д.

Но они принесут пользу только на индивидуальном уровне, если относиться к ним честно и не пытаться подстроить результат под ожидания...


Ну и чтобы хоть как-то поддержать скептиков. ;)


После прошлого поста в комментариях спросили про Microsoft и Copilot. А Microsoft молодцы! Они сделали очень логичные шаги по внедрению AI в набор своих компонентов для разработки и получили целостное предложение, которое сразу вышло в ТОП. Давайте разбираться!

На конференции Universe 2023 Microsoft сделал ряд крутых анонсов по GitHub и Copilot:

1. Появляется Copilot Chat, который будет использовать под капотом OpenAI GPT-4 модель. В качестве контекста он будет предоставлять возможность «индексации» кода своих проектов. Таким образом, знания о вашем коде будут попадать в контекст запросов чата и ответы будут более точны и релевантны.

2. Чат будет работать как отдельной панелью, так и в редакторе. Тут вроде ничего прорывного, потому что JetBrains реализовал точно так же. НО, комбинация моделей Copilot и OpenAI GPT-4 имеют куда больший потенциал. Если вы использовали ChatGPT только для работы с кодом, то можно смело переключаться на Copilot.

3. Copilot внедрили полноценно в GitHub. Теперь большинство операций имеет AI действия, которые помогают выполнять их более оптимально. Ну и работа с кодом прямо в браузере с поддержкой AI не может не радовать.

4. Запустили программы партнерства и Enterprise пакет. В рамках партнерских программ они обучают узкопрофильные модели для разных технологических стеков, чтобы потом в Enterprise пакете предлагать полностью кастомизированный опыт энтерпрайз организациям. Модели дообучаются на вашем коде и этот процесс встроен в разработку. Таким образом, результаты «подстраиваются» под стандарты организации. Очень мощное предложение!

Ну а самое интересное отложили на будущее и анонсировали под зонтиком Copilot Workspace. Судя по демо, там планируют сделать автоматизированный флоу для работы со сложными задачами через декомпозицию. Мне кажется, что туда же логично интегрировать AutoGen и получится еще один прорыв.

Кому интересны детали, посмотрите кейноут с общими анонсами или более детальный доклад.

#chatgpt #copilot #ai


OpenAI и Microsoft продолжают творить революцию в мире GenAI. На прошлой неделе состоялась конференция OpenAI DevDay и там анонсировали реально крутые изменения:

1. Новая модель GPT-4 Turbo с размером контекста 128K. Которая еще и стала неожиданно дешевле в использовании. Это нереально круто, потому что открывает целый спектр задач, где размер контекста быстро становился серьезным ограничением. Ну и доказательство того, что пока предел даже близко не достигнут.

2. Теперь отсечение по данным датируется апрелем 2023 года. Что делает во многих вариантах использования ChatGPT сильно полезнее. А возможность поиска данных в интернете дополняет картину, хоть оно и очень далеко от идеала.

3. В ChatGPT наконец придумали как оформить Actor модель с различными ролями. Причем сделать это элегантно, чтобы люди без специфических навыков могли этим пользоваться. Конфигурация GPT с помощью самого ChatGPT - это очень крутое решение. А под капотом сейчас все достаточно просто, никакого дообучения или магии, просто инструкции роли и настройки. Зато открыли рынок продажи готовых ролей, что должно увеличить активность пользователей.

4. Убрали настройки режимов работы и теперь все режими включены сразу и используются на усмотрение модели. Это и хорошо и плохо. Раньше можно было быть уверенным в подходе к ответу, а сейчас нет. Снова таки, снижение порога вхождения для большинства пользователей.

5. Компаниям предложили услугу по дотренировки своих кастомных моделей. Для многих организаций это должно сильно снизить порог вхождения.

6. В API тоже революция. Вдобавок к низкоуровневому API для работы с моделью появился Assistants API. В нем встроена поддержка изначального контекста, хранение всего диалога с пользователем, возможность использовать настраиваемые действия (вызовы чего угодно через API), а также запуск кода в песочнице через code interpreter. И, как вишенка на торте, даже встроенный knowledge retrieval есть из коробки. Что это значит для разработчиков? Существенное снижение порога вхождения для построения своих кастомных решений с минимальным написанием кода и запуском инфраструктуры.

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

Для тех, кто пропустил событие, рекомендую посмотреть кейноут сессию и deep dive демо фичей.

#ai #chatgpt


#Java #SpringBoot

В последние годы большое внимание в мире Java фреймворков стало уделяться времени старта и «прогрева» приложений. Причины понятны, ведь очень много компаний используют Java стек с современными cloud-native фреймворками для разработки своих микросервисов. И хочется иметь быстрый старт, так как стартовать нужно много и часто. Я молчу уже о serverless архитектуре.

Если подбить итоги, то пройден очень большой путь:

1. Появились легковесные фреймворки типа Quarkus, которые одной из целей ставят быстрый старт.

2. Разработан GraalVM, который принес возможности собирать нативные приложения и строить на их базе нативные образы с быстрым стартом.

3. Реализован проект Spring Native, который позволил собирать нативные приложения на базе Spring Boot.

4. Многие модули научились lazy инициализации, чтобы не удлинять время старта приложения.

5. Появилась возможность на уровне сборки генерировать дополнительные артефакты для более быстрого старта обычных Spring Boot приложений на базе JVM.

6. Началась экспериментальная работа над проектом CRaC по снятию слепков памяти для быстрого повторного старта приложения.

И вот мы подобрались к ядру - оптимизациям на уровне JVM. Они должны дать не только готовые варианты оптимизаций, но и фактически дать возможность реализовывать кастомные. И тогда разработчики смогут находить подходящий им баланс допустимых компромиссов где-то посередине между нативными сборками и обычным запуском на JVM без оптимизаций.

О новом проекте Leyden и его фундаментальном значении можно узнать из доклада Brian Goetz: https://youtu.be/O1Oz2-AXKKM?si=jJ2w0T3gCs8iu16J

Показано 20 последних публикаций.