Návrh Školení
Úvod
Přehled základů Kotlinu
Využití pokročilých funkcí v Kotlinu
- Použití vnějších funkcí k opakování funkcionality v Kotlinu
- Použití infixové notace ke zavolání funkcí v Kotlinu
- Deklarování anonymních funkcí v Kotlinu
- Použití inline modifikátoru pro efektivitu v Kotlinu
- Implementace vrácení a lokálních vracení při práci s pokročilými funkcemi v Kotlinu
- Implementace rekurze koncem funkce pro optimalizaci v Kotlinu
- Použití přetížení operátorů v Kotlinu
- Použití lambd s přijímači k vytvoření omezujících pravidel pro DSL v Kotlinu
- Zavolání instancí v Kotlinu
- Využití funkcionálních konstrukcí v Kotlinu
- Spojení funkcí
- Kurýrování
- Jiné konstrukce
- Závěr pokročilých funkcionálních aspektů Kotlinu
Prozkoumání scénářů tříd v Kotlinu
- Implementace polí v Kotlinu
- Použití modifikátoru "lateinit" v Kotlinu
- Pochopení vnějších a vnitřních tříd v Kotlinu
- Definování „statických metod“ v Kotlinu pomocí průvodců (companion objects)
- Skrývání konstruktorů tříd v Kotlinu
- Označení tříd jako uzavřené (sealed) v Kotlinu
- Použití typových aliasů v Kotlinu
- Závěr pokročilých funkcí Kotlinu pro třídy
Implementace delegace v Kotlinu
- Pochopení konceptu členové delegace v Kotlinu
- Delegování členských funkcí jiné třídě v Kotlinu
- Delegování vlastností v Kotlinu pro efektivní opakování kódu
- Použití vestavěných delegovaných vlastností v Kotlinu
- Delegování lokálních vlastností v Kotlinu pro efektivní opakování kódu
- Implementace rozšířujících vlastností tříd v Kotlinu
- Závěr různých aspektů delegace v Kotlinu
Pořádné pochopení generických typů v Kotlinu
- Pochopení omezení generických typů
- Pochopení variance a invarianty v generických typech
- Použití modifikátoru „out“ k vyjádření covariance (kovariance) v generických typech v Kotlinu
- Vyjádření contravariance (kontravariance) v Kotlinu
- Prozkoumání konceptu typových projekcí a hvězdičkových projekcí v Kotlinu
- Závěr pokročilých generických typů v Kotlinu
Metaprogramování v Kotlinu
- Přehled reflexe (reflection)
- Použití Java reflexe s Kotlinem pomocí API reflexe
- Použití API reflexe v Kotlinu
- Zpracování typového vykreslování (type erasure) v Kotlinu
- Použití reifikovaných generických typů (reified generics) v Kotlinu
- Definování vlastních anotací v Kotlinu
- Závěr technik metaprogramování a introspekce v Kotlinu
Provádění asynchronního programování v Kotlinu
- Pochopení problému asynchronního programování
- Implementace asynchronního programování a korerutin (coroutines) v Kotlinu
- Implementace async a await v Kotlinu pomocí korerutin (coroutines)
- Implementace yield v Kotlinu
- Pochopení předností korerutin nad reaktivními rozšířeními (reactive extensions)
- Závěr korerutin v Kotlinu
Závěr a ukončení kurzu
Požadavky
- Pochopení základů Kotlinu
Cílová skupina
- Vývojáři, kteří se chtějí dozvědět více o pokročilém programování v Kotlinu
Reference (7)
Intenzita kurzu, pokrytí témat. Složitá témata jsou vysvětlena na dobré úrovni, takže i když v nich zbyla nějaká bílá místa (jako DSL) - nebude těžké pokračovat sám, protože už mám společné chápání základů a alespoň vědět, jak formulovat své otázky, abych Google.
Alexey Baryshnev - C.T.Co SIA
Kurz - Advanced Kotlin Programming
Přeloženo strojem
A format - lot of new info, but it felt pretty understandable and comfortable to learn, most of it I managed to remember and use when necessary at the next topics.
Alina Karpovich - C.T.Co SIA
Kurz - Advanced Kotlin Programming
Trainer competence, wide subject knowledge. I have learned a lot new stuff, received valuable comments and answers to my questions.
Ilya Ginter - C.T.Co SIA
Kurz - Advanced Kotlin Programming
live communication and good answers to questions
Alexander Semyonov - C.T.Co SIA
Kurz - Advanced Kotlin Programming
Execute exercises in mode online, it is cool. Fast answer about additional questions
Oleg Sushik - C.T.Co SIA
Kurz - Advanced Kotlin Programming
Positive approach
Arseniy - C.T.Co SIA
Kurz - Advanced Kotlin Programming
I liked exercises and questions where we should think like a compiler. Sometimes it feels like you understand topic we are discussing and with exercise we could make sure not only that we feel that way but really understood. In case exercise was difficult for someone, solution was provided by clear steps what and why we do to make this working. Also by going further with these exercises it was really nice that we looked at previous ones understanding how we can improve something that was already done by one solution.