Kotlin Meta
214 subscribers
49 photos
2 videos
1 file
49 links
Всякое разное интересное про язык программирования Kotlin и около него.

Чатик: @kotlinmetachat.
Мы на YouTube: https://youtube.com/@KotlinMeta.
Мы на Twitch: https://twitch.tv/kotlinmeta.
Download Telegram
Kotlin Meta
👨‍💻 Разбор исходников: kotlinx.serialization Последние пару видосов можно было смотреть со смузи – пришло время хардкора. Наша новая рубрика: разбор исходников. В данной рубрике мы будем лазить туда, куда доходят не только лишь все. И первой библиотекой для…
🔴️Мы в прямом эфире

Присоединяйтесь на любую площадку, удобную вам, и приготовьтесь к разбору подкапотной работы kotlinx.serialization. Стрим может занянуться больше, чем на 2 часа, но постараемся покрыть всё за отведённое время. Будем делать свой формат для сериализации!

Telegram | YouTube | Twitch
Live stream finished (2 hours)
Интринсики: функции, которых нет

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

Intrinsic означает то, что реализация является внутренней и её созданием занимается именно компилятор. Эту реализацию не получилось бы сделать на уровне рантайма языка. Реализацией intrinsic функции может быть нативный двоичный код.

Примеры кода с intrinsic реализацией можно найти в стандартной библиотеке котлина – например, здесь можно посмотреть на целый пакет с instrinsic реализациями для built-in части корутин в языке.
1071
📹 Разбор kotlinx.serialization: пишем свой формат с нуля

На последнем стриме посмотрели исходники kotlinx.serialization, и написали свой формат, который позволяет конвертировать любой класс в sealed-структуру и обратно.

Интересное применение для этого – автоматическое написание мапперов для классов с одинаковой структурой, которое не использует рефлексии.

Конечно, это не продакшн-решение, но отличный кейс для изучения внутрянки библиотеки и ответа на вопрос – а как же так выходит, что, написав один сериализатор, его можно использовать для любого формата – хоть Json, хоть XML или Yaml.

YouTube | GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
6196👍3🍌2💊1
👨‍💻 Контекстные параметры: почему контекстных ресиверов не будет

Мы напишем пару примеров с использованием контекстных параметров, подумаем над контекстно-ориентированным программированием и поразмышляем – насколько вообще языку нужна эта фича, можно ли злоупотреблять ими и как это изменит подход к проектированию кода в будущем. Глянем на KEEP, почитаем рассуждения и посмотрим как к этому пришли.

Будьте в контексте новых фич и заходите к нам на стрим в эту субботу, в 17:00 – поднимем одну из самых холиварных тем в комьюнити.

Telegram | YouTube | Twitch
1232
Kotlin Meta
👨‍💻 Контекстные параметры: почему контекстных ресиверов не будет Мы напишем пару примеров с использованием контекстных параметров, подумаем над контекстно-ориентированным программированием и поразмышляем – насколько вообще языку нужна эта фича, можно ли злоупотреблять…
🔴️Мы в прямом эфире

Заходите на любую площадку и присоединяйтесь к дискуссии про контекстно-ориентированное программирование в Kotlin. Глянем на кейсы использования, почитаем KEEPы и подумаем над всем этим с разных перспектив.

Telegram | YouTube | Twitch
👨‍💻41
Live stream started
Live stream finished (1 hour)
KEEP-0439: Named Only Parameters

30 минут назад вышел новый KEEP. Довольно простой, но интересный. Можно будет потребовать, чтобы определённые параметры передавались только по имени.

Что-то мне это напоминает. Закину в комментарии.

KEEP | Discussion
4👎1🔥11
Kotlin Meta
🚀 Pull Request в kotlinx.fuzz На одном из стримов мы разбирали kotlinx.fuzz (вот он), и одним из недостатков этой библиотеки было то, что можно было генерировать только примитивные типы и далее ручками собирать их в объекты. Недавно мне в голову пришла идея…
kotlinx.fuzz стал лучше

А всё потому что доехал до мейна 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💘64👍2😎1
🏝 Разработка компилятора: Kotlin написан на Kotlin?

Присоединяйтесь в это воскресенье в 17:00 обсудить всё, что связано с разработкой Kotlin. Вы узнаете:

• Чем разработка компиляторов отличается от обычной разработки?

• Какой процесс проходит фича перед внедрением в язык? Как написать свой KEEP?

• Структура компилятора, зависимость от Intellij Idea: почему так сложилось и что с этим делать?

Обсудим это и многое другое. Также у нас будет доступен чат на Twitch в котором можно будет задать любые вопросы нашему гостю – Евгению Желенскому. Присоединяйтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
53🔥189🤩3
👨‍💻 Контекстные параметры: почему контекстных ресиверов не будет

Написали пару примеров с использованием контекстных параметров, сравнили их с контекстными ресиверами, почитали 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
10👍953
Live stream started
Kotlin Meta
🏝 Разработка компилятора: Kotlin написан на Kotlin? Присоединяйтесь в это воскресенье в 17:00 обсудить всё, что связано с разработкой Kotlin. Вы узнаете: • Чем разработка компиляторов отличается от обычной разработки? • Какой процесс проходит фича перед…
🔴️Мы в прямом эфире

Присоединяйтесь на любую площадку с помощью ссылок внизу и участвуйте в дискуссии о внутрянке разработки компилятора Kotlin. Поговорим с разработчиком компилятора Kotlin – Женей Желенским!

Telegram | YouTube | Twitch
54
Live stream finished (2 hours)
Kotlin исполняется 14 лет

В этот день, 22.07.2011, вышла первая версия Kotlin. За 14 лет он превратился из внутреннего проекта JetBrains в основной язык разработки под Android, завоевал прочные позиции в серверной разработке, потеснив Java, и вышел на стабильный уровень в мультиплатформенной разработке.

В честь этого дня Amplicode сделали небольшую серию докладов про ConneKt и Spring + Kotlin. Также можно посмотреть на официальном канале Kotlin by JetBrains видео, выпущенное к 10-летию языка, в котором рассказывается его история.
1🎉197🥰442