Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Criando sua própria DSL utilizando expressões l...
Search
Bernardo do Amaral Teodosio
August 31, 2019
Programming
1
170
Criando sua própria DSL utilizando expressões lambda em Kotlin (Kotlin Everywhere Campinas 2019)
Bernardo do Amaral Teodosio
August 31, 2019
Tweet
Share
More Decks by Bernardo do Amaral Teodosio
See All by Bernardo do Amaral Teodosio
Criando sua própria DSL utilizando expressões lambda em Kotlin (GDG Campinas AndroidFest 2018)
berteodosio
0
160
Criando sua própria DSL utilizando expressões lambda em Kotlin
berteodosio
0
400
Kotlin - uma breve introdução
berteodosio
0
150
Other Decks in Programming
See All in Programming
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
1.8k
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
110
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
290
CSC305 Lecture 11
javiergs
PRO
0
310
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
EMこそClaude Codeでコード調査しよう
shibayu36
0
460
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
3
860
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
920
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
110
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
460
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
260
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Agile that works and the tools we love
rasmusluckow
331
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
RailsConf 2023
tenderlove
30
1.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Done Done
chrislema
185
16k
A better future with KSS
kneath
239
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Transcript
Criando sua própria DSL utilizando expressões lambda em Kotlin Bernardo
do Amaral Teodosio
Kotlin/Everywhere Campinas Bernardo do Amaral Teodosio Ber / Bers /
Berns
Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions "Repassar e retornar ações e/ou
comportamentos"
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/run time/kotlin/jvm/functions/Functions.kt
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions
Kotlin/Everywhere Campinas Higher Order Functions java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/Function23;
… Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.Function23" ¯\_(ツ)_/¯
Kotlin/Everywhere Campinas Higher Order Functions Mas o que isso quer
dizer?
Kotlin/Everywhere Campinas Higher Order Functions Mas o que isso quer
dizer?
Extension functions
Kotlin/Everywhere Campinas Extension functions
Dissecando algumas higher order functions da standard library
Kotlin/Everywhere Campinas apply { }
Kotlin/Everywhere Campinas apply { }
Kotlin/Everywhere Campinas apply { } "Calls the specified function [block]
with `this` value as its receiver and returns `this` value."
Kotlin/Everywhere Campinas apply { }
Kotlin/Everywhere Campinas let { }
Kotlin/Everywhere Campinas run { }
Infix functions
Kotlin/Everywhere Campinas Infix functions
Kotlin/Everywhere Campinas Infix functions
DSLs Domain-specific languages "A computer language that's targeted to a
particular kind of problem, rather than a general purpose language that's aimed at any kind of software problem" - Martin Fowler SQL CSS
Kotlin/Everywhere Campinas Block Builder
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Kotlin/Everywhere Campinas Escrevendo uma DSL para o BB
Estamos contratando! movile.com/jobs
Kotlin/Everywhere Campinas Obrigado! github.com/berteodosio Bernardo do Amaral Teodosio
[email protected]
linkedin.com/in/berteodosio
medium.com/@berteodosio speakerdeck.com/berteodosio