Kursplan
Introduktion
Repetition av grundläggande Kotlin
Använda avancerade funktioner i Kotlin
- Använda kapslade funktioner för att återanvända funktionalitet i Kotlin
- Använda infiksnotationen för att anropa funktioner i Kotlin
- Deklarera anonyma funktioner i Kotlin
- Använda inline-modifieraren för effektivitet i Kotlin
- Implementera retur och lokala returer när man arbetar med avancerade funktioner i Kotlin
- Implementera svansrekursion för optimering i Kotlin
- Använda operatoröverladdning i Kotlin
- Använda lambdar med mottagare för att skapa begränsningar på DSL:er i Kotlin
- Anropa instanser i Kotlin
- Använda funktionskonstruktioner i Kotlin
- Funktionskomposition
- Kurrying
- Andra konstruktioner
- Sammanfattning av avancerade funktionsaspekter i Kotlin
Granska klassscenarier i Kotlin
- Implementera fält i Kotlin
- Använda "lateinit"-modifieraren i Kotlin
- Förstå kapslade och inre klasser i Kotlin
- Deklarera "statiska metoder" i Kotlin med hjälp av companionobjekt
- Dölja klasskonstruktorer i Kotlin
- Markera klasser som sealed i Kotlin
- Använda typealiasar i Kotlin
- Sammanfattning av avancerade funktioner för klasser i Kotlin
Implementera delegation i Kotlin
- Förstå konceptet med medlemsdelegation i Kotlin
- Dela ut medlemsfunktioner till en annan klass i Kotlin
- Dela ut egenskaper i Kotlin för effektiv återanvändning av kod
- Använda inbyggda delegerade egenskaper i Kotlin
- Dela ut lokala egenskaper i Kotlin för effektiv återanvändning av kod
- Implementera extension-egenskaper i klasser i Kotlin
- Sammanfattning av de olika aspekterna av delegation i Kotlin
Få djupare förståelse för generiska typer i Kotlin
- Förstå generiska begränsningar
- Förstå varianter och invariant i generiska typer
- Använda "out"-modifieraren för att uttrycka kovarians i generiska typer i Kotlin
- Uttrycka kontravarians i Kotlin
- Utforska konceptet med typprojektioner och stjärneprojektioner i Kotlin
- Sammanfattning av avancerade generiska typer i Kotlin
Metaprogrammering i Kotlin
- Översikt över reflektion
- Använda Java-reflektion med Kotlin med hjälp av Reflektions-API:t
- Använda Kottins Reflektions-API
- Hantera typsuddning i Kotlin
- Använda reified generiska typer i Kotlin
- Deklarera anpassade annotationer i Kotlin
- Sammanfattning av metaprogrammerings- och introspektionstekniker i Kotlin
Föra ut asynkron programmering i Kotlin
- Förstå problemet med asynkron programmering
- Implementera asynkron programmering och coroutines i Kotlin
- Implementera async och await i Kotlin med hjälp av coroutines
- Implementera yield i Kotlin
- Förstå fördelarna med coroutines gentemot reaktiva extensioner
- Sammanfattning av coroutines i Kotlin
Sammanfattning och slutsats
Krav
- Förståelse för grundläggande Kotlin
Målgrupp
- Utvecklare som är intresserade av att få djupare kunskap i Kotlin-programmering
Vittnesmål (7)
Kursens intensitet, täckning av ämnen. Komplicerade ämnen förklaras på en bra nivå, så även om det finns några vita fläckar kvar i dem (som DSL) -- kommer det inte att vara svårt att fortsätta själv eftersom jag redan har en gemensam förståelse för grunden och åtminstone vet hur jag ska forma mina frågor till Google.
Alexey Baryshnev - C.T.Co SIA
Kurs - Advanced Kotlin Programming
Maskintolkat
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
Kurs - 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
Kurs - Advanced Kotlin Programming
live communication and good answers to questions
Alexander Semyonov - C.T.Co SIA
Kurs - Advanced Kotlin Programming
Execute exercises in mode online, it is cool. Fast answer about additional questions
Oleg Sushik - C.T.Co SIA
Kurs - Advanced Kotlin Programming
Positive approach
Arseniy - C.T.Co SIA
Kurs - 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.