Kotlin Meta
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10🔥2 2 1
Не люблю я использовать деструктуризацию, потому что бывает запутаешься в порядке, а там ещё и типы одинаковые – и бага допускается.
Ну и в команде Kotlin, наконец, что-то решили с этим сделать. Фичу обещали года 3 назад на KotlinConf и после выхода K2 смогли ей заняться. Вышел KEEP. Я точно жду эту фичу, а позиционная деструктуризация останется, наверное, только в лямбдах.
KEEP | Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6 2 1
В этом видео вы узнаете про то, как можно интегрировать AI-агентов в приложения при помощи новых библиотек от JetBrains. Мы разобрали что такое Model Context Protocol, AI агенты и какое у них будущее. Применили библиотеки kotlin-mcp-sdk и koog в тестовых проектах и посмотрели как их можно использовать. А также подумали над тем, какое будущее ждёт этот инструментарий.
YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
10 7☃3❤1🎅1 1
👨💻 Разбор исходников: kotlinx.serialization
Последние пару видосов можно было смотреть со смузи – пришло время хардкора. Наша новая рубрика: разбор исходников. В данной рубрике мы будем лазить туда, куда доходят не только лишь все. И первой библиотекой для такого разбора стала библиотека kotlinx.serialization.
Практической задачей станет разработка своего формата для kotlinx-serialization, который будет уметь перегонять любые структуры в деревья и обратно. Присоединяйтесь в эту субботу в 17:00, будет интересно!
Telegram | YouTube | Twitch
Последние пару видосов можно было смотреть со смузи – пришло время хардкора. Наша новая рубрика: разбор исходников. В данной рубрике мы будем лазить туда, куда доходят не только лишь все. И первой библиотекой для такого разбора стала библиотека kotlinx.serialization.
Практической задачей станет разработка своего формата для kotlinx-serialization, который будет уметь перегонять любые структуры в деревья и обратно. Присоединяйтесь в эту субботу в 17:00, будет интересно!
Telegram | YouTube | Twitch
42 11👍7💘2 2
Kotlin Meta
👨💻 Разбор исходников: kotlinx.serialization Последние пару видосов можно было смотреть со смузи – пришло время хардкора. Наша новая рубрика: разбор исходников. В данной рубрике мы будем лазить туда, куда доходят не только лишь все. И первой библиотекой для…
🔴️️ Мы в прямом эфире
Присоединяйтесь на любую площадку, удобную вам, и приготовьтесь к разбору подкапотной работы kotlinx.serialization. Стрим может занянуться больше, чем на 2 часа, но постараемся покрыть всё за отведённое время. Будем делать свой формат для сериализации!
Telegram | YouTube | Twitch
Присоединяйтесь на любую площадку, удобную вам, и приготовьтесь к разбору подкапотной работы kotlinx.serialization. Стрим может занянуться больше, чем на 2 часа, но постараемся покрыть всё за отведённое время. Будем делать свой формат для сериализации!
Telegram | YouTube | Twitch
Kotlin Meta
🔴️️ Мы в прямом эфире Присоединяйтесь на любую площадку, удобную вам, и приготовьтесь к разбору подкапотной работы kotlinx.serialization. Стрим может занянуться больше, чем на 2 часа, но постараемся покрыть всё за отведённое время. Будем делать свой формат…
Meta.from(FeedbackSerializer, feedback)
Anonymous Poll
9%
Стрим интересный, удалось посмотреть
0%
Тема стрима интересна, не удалось раскрыть
63%
Тема стрима интересна, жду записи в среду
16%
Тема стрима мне не интересна
13%
Я и сам своего рода стример
Интринсики: функции, которых нет
Иногда, когда вы смотрите код из стандартной библиотеки, вы можете встретить вместо кода простой выброс исключения
Intrinsic означает то, что реализация является внутренней и её созданием занимается именно компилятор. Эту реализацию не получилось бы сделать на уровне рантайма языка. Реализацией intrinsic функции может быть нативный двоичный код.
Примеры кода с intrinsic реализацией можно найти в стандартной библиотеке котлина – например, здесь можно посмотреть на целый пакет с instrinsic реализациями для built-in части корутин в языке.
Иногда, когда вы смотрите код из стандартной библиотеки, вы можете встретить вместо кода простой выброс исключения
Intrinsic означает то, что реализация является внутренней и её созданием занимается именно компилятор. Эту реализацию не получилось бы сделать на уровне рантайма языка. Реализацией intrinsic функции может быть нативный двоичный код.
Примеры кода с intrinsic реализацией можно найти в стандартной библиотеке котлина – например, здесь можно посмотреть на целый пакет с instrinsic реализациями для built-in части корутин в языке.
11 7 1
На последнем стриме посмотрели исходники kotlinx.serialization, и написали свой формат, который позволяет конвертировать любой класс в sealed-структуру и обратно.
Интересное применение для этого – автоматическое написание мапперов для классов с одинаковой структурой, которое не использует рефлексии.
Конечно, это не продакшн-решение, но отличный кейс для изучения внутрянки библиотеки и ответа на вопрос – а как же так выходит, что, написав один сериализатор, его можно использовать для любого формата – хоть Json, хоть XML или Yaml.
YouTube | GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
61 9⚡6👍3🍌2💊1
👨💻 Контекстные параметры: почему контекстных ресиверов не будет
Мы напишем пару примеров с использованием контекстных параметров, подумаем над контекстно-ориентированным программированием и поразмышляем – насколько вообще языку нужна эта фича, можно ли злоупотреблять ими и как это изменит подход к проектированию кода в будущем. Глянем на KEEP, почитаем рассуждения и посмотрим как к этому пришли.
Будьте в контексте новых фич и заходите к нам на стрим в эту субботу, в 17:00 – поднимем одну из самых холиварных тем в комьюнити.
Telegram | YouTube | Twitch
Мы напишем пару примеров с использованием контекстных параметров, подумаем над контекстно-ориентированным программированием и поразмышляем – насколько вообще языку нужна эта фича, можно ли злоупотреблять ими и как это изменит подход к проектированию кода в будущем. Глянем на KEEP, почитаем рассуждения и посмотрим как к этому пришли.
Будьте в контексте новых фич и заходите к нам на стрим в эту субботу, в 17:00 – поднимем одну из самых холиварных тем в комьюнити.
Telegram | YouTube | Twitch
Kotlin Meta
👨💻 Контекстные параметры: почему контекстных ресиверов не будет Мы напишем пару примеров с использованием контекстных параметров, подумаем над контекстно-ориентированным программированием и поразмышляем – насколько вообще языку нужна эта фича, можно ли злоупотреблять…
🔴️️ Мы в прямом эфире
Заходите на любую площадку и присоединяйтесь к дискуссии про контекстно-ориентированное программирование в Kotlin. Глянем на кейсы использования, почитаем KEEPы и подумаем над всем этим с разных перспектив.
Telegram | YouTube | Twitch
Заходите на любую площадку и присоединяйтесь к дискуссии про контекстно-ориентированное программирование в Kotlin. Глянем на кейсы использования, почитаем KEEPы и подумаем над всем этим с разных перспектив.
Telegram | YouTube | Twitch
👨💻4 1
Kotlin Meta
🔴️️ Мы в прямом эфире Заходите на любую площадку и присоединяйтесь к дискуссии про контекстно-ориентированное программирование в Kotlin. Глянем на кейсы использования, почитаем KEEPы и подумаем над всем этим с разных перспектив. Telegram | YouTube | Twitch
KEEP-0439: Named Only Parameters
30 минут назад вышел новый KEEP. Довольно простой, но интересный. Можно будет потребовать, чтобы определённые параметры передавались только по имени.
Что-то мне это напоминает. Закину в комментарии.
KEEP | Discussion
30 минут назад вышел новый KEEP. Довольно простой, но интересный. Можно будет потребовать, чтобы определённые параметры передавались только по имени.
Что-то мне это напоминает. Закину в комментарии.
KEEP | Discussion
Kotlin Meta
А всё потому что доехал до мейна PR, который я создавал для генерации любых Serializable-объектов. Чтож, эмоции прикольные, надеюсь это не последний мой контрибут в Kotlin-экосистему.
Кстати, получилось сделать такой генератор благодаря пониманию того, что сериализация в Kotlin не привязана к формату и позволяет узнать структуру любого класса без необходимости рефлексии. Именно про это один из наших последних видосов на YouTube.
YT: kotlinx.serialization | YT: kotlinx.fuzz | GH: Pull Request
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19💘6 4👍2😎1
Присоединяйтесь в это воскресенье в 17:00 обсудить всё, что связано с разработкой Kotlin. Вы узнаете:
• Чем разработка компиляторов отличается от обычной разработки?
• Какой процесс проходит фича перед внедрением в язык? Как написать свой KEEP?
• Структура компилятора, зависимость от Intellij Idea: почему так сложилось и что с этим делать?
Обсудим это и многое другое. Также у нас будет доступен чат на Twitch в котором можно будет задать любые вопросы нашему гостю – Евгению Желенскому. Присоединяйтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
53🔥18 9🤩3
👨💻 Контекстные параметры: почему контекстных ресиверов не будет
Написали пару примеров с использованием контекстных параметров, сравнили их с контекстными ресиверами, почитали KEEPы и порассуждали над тем, как фича в будущем может быть негативно использована. Посмотрите, чтобы быть в контексте новых фич.
YouTube
Написали пару примеров с использованием контекстных параметров, сравнили их с контекстными ресиверами, почитали KEEPы и порассуждали над тем, как фича в будущем может быть негативно использована. Посмотрите, чтобы быть в контексте новых фич.
YouTube
❤6😁1
Ktor Library Improvement Process (KLIP)
Начиная с версии библиотеки 3.0.0 все существенные изменения в Ktor будут проходить процесс, который подобен KEEP (Kotlin Enchancement and Evolution Process), о котором у нас уже был пост. Это означает стабилизацию API и возможность сообщества влиять на изменение API библиотеки.
В прошлом API менялся очень резко и переписывать проекты с ktor 1.0 до 2.0 было не самым приятным процессом. Теперь движение будет медленнее, и больше внимания будет уделяться деталям. Видно, что библиотека взрослеет.
У нас пока не было стримов с командой разработки Ktor, но мы всё равно внимательно следим за этой библиотекой, ведь она отображает видение команды Kotlin о том, как должно выглядить правильное client-server взаимодействие.
Там, кстати, уже есть первый KLIP, который построен вокруг интеграции Open API в Ktor.
GH: Open API KLIP | GH: KLIP | GH: KEEP
Начиная с версии библиотеки 3.0.0 все существенные изменения в Ktor будут проходить процесс, который подобен KEEP (Kotlin Enchancement and Evolution Process), о котором у нас уже был пост. Это означает стабилизацию API и возможность сообщества влиять на изменение API библиотеки.
В прошлом API менялся очень резко и переписывать проекты с ktor 1.0 до 2.0 было не самым приятным процессом. Теперь движение будет медленнее, и больше внимания будет уделяться деталям. Видно, что библиотека взрослеет.
У нас пока не было стримов с командой разработки Ktor, но мы всё равно внимательно следим за этой библиотекой, ведь она отображает видение команды Kotlin о том, как должно выглядить правильное client-server взаимодействие.
Там, кстати, уже есть первый KLIP, который построен вокруг интеграции Open API в Ktor.
GH: Open API KLIP | GH: KLIP | GH: KEEP
10👍9 5 3