DSL (Domain Specific Language) adalah bahasa mini yang dioptimalkan untuk satu domain masalah tertentu — HTML, SQL, build script, atau routing HTTP. Kotlin menyediakan kombinasi fitur — extension function, receiver function type, trailing lambda, dan @DslMarker — yang memungkinkan kita membangun DSL internal yang type-safe dengan sintaks deklaratif. Pada section ini kita akan melacak perjalanan dari konsep dasar DSL, pola builder dengan receiver lambda, pembatasan scope dengan anotasi @DslMarker, hingga praktik merancang DSL internal yang idiomatik dan siap produksi.
Pelajari konsep DSL (Domain Specific Language), perbedaan internal vs external DSL, dan bagaimana Kotlin memungkinkan DSL type-safe dengan receiver function types.
Buka → # Type-Safe BuildersBangun builder type-safe dengan receiver lambda, pelajari buildList, buildMap, buildString, dan bagaimana cara merancang builder DSL sendiri.
Buka → # DSL dengan @DslMarkerCegah scope leak di DSL bersarang dengan anotasi @DslMarker — pelajari masalah implicit receiver dan bagaimana Kotlin menyelesaikannya.
Buka → # Internal DSL DesignPraktik terbaik merancang DSL internal: API surface, extension functions, infix notation, operator overloading, dan trade-off antara fleksibilitas dan kekakuan.
Buka →