Deep Dive into Kotlin DSL
DSL の話から Kotlin DSL (Gradle Kotlin DSL じゃないよ)について触れ、自分たちでも DSL を構築する方法を知る・構築できるようになることを目的とした発表です。
日本語で出したんですが、英語発表でもいいよと書いておきました。(英語発表がどの程度欲しい・採択するつもりなのか分からなかったので)
この発表では DSL の基礎から Kotlin DSL における拡張表現や開発方法まで踏み込んで発表します。
また Kotlin DSL の実例として
- Gradle Kotlin DSL
- Ktor or DOM (like React)
- Android Jetpack Compose
あたりを取り上げて、どのように Kotlin DSL が作用し、Java/Groovy ではなぜ出来ないのかについても触れたいと思います。
Topics (予定)
- What's domain-specific language and Kotlin DSL?
- Let you know real examples of Kotlin DSL
- Getting started understanding and developing DSL
- What's the *primitive* DSL
- The power of *Lambda* in DSL world
- Typesafe builder and Kotlin DSL
- Syntactic extension
- Extension method e.g. Gradle Kotlin DSL
- Operator overloading e.g. Ktor
- Infix operator based Fluent style e.g. Assertion libraries
- DSLMarker and implicit receiver resolution e.g. Jetpack Compose
- For DSL users
- Adapt Kotlin DSL to existing libraries
- For DSL developers
- How to keep both usabilities of Kotlin DSL and other JVM languages
- Examples in Gradle Kotlin DSL
英語なら以下みたいな感じ。
In this presentation, I will talk about the basis and practical application of Kotlin DSL in achieving attendees will be able to develop Kotlin DSL.
I will pick up the following examples to explain how Kotlin DSL work and why Java/Groovy are not enough or not good at doing so.
- Gradle Kotlin DSL
- Ktor or DOM (like React)
- Android Jetpack Compose
Topics (just a plan)
- What's domain-specific language and Kotlin DSL?
- Let you know real examples of Kotlin DSL
- Getting started understanding and developing DSL
- What's the *primitive* DSL
- The power of *Lambda* in DSL world
- Typesafe builder and Kotlin DSL
- Syntactic extension
- Extension method e.g. Gradle Kotlin DSL
- Operator overloading e.g. Ktor
- Infix operator based Fluent style e.g. Assertion libraries
- DSLMarker and implicit receiver resolution e.g. Jetpack Compose
- For DSL users
- Adapt Kotlin DSL to existing libraries
- For DSL developers
- How to keep both usabilities of Kotlin DSL and other JVM languages
- Examples in Gradle Kotlin DSL
おまけ
昨日の勉強会で Nkzn さんに「Gradle Kotlin DSLの話聞きたい」と言われたけど、45分やれる気がしないのでサクッと5分LTに送るか悩む。