Kursplan
Introduksjon
Gjennomgang av Kotlin grunnleggende
Bruke avanserte funksjoner i Kotlin
- Bruke nøstede funksjoner for å gjenbruke funksjonalitet i Kotlin
- Bruke infix-notasjonen for å kalle funksjoner i Kotlin
- Declarering av anonyme funksjoner i Kotlin
- Bruke inline-modifikatoren for effektivitet i Kotlin
- Implementering av returer og lokale returer ved bruk av avanserte funksjoner i Kotlin
- Implementering av hale-rekursjon for optimalisering i Kotlin
- Bruke operatoroverbelasting i Kotlin
- Bruke lambdas med mottakere for å skape restriksjoner på DSL's i Kotlin
- Påkalle instanser i Kotlin
- Bruke funksjonelle konstruksjoner i Kotlin
- Funksjonssammensetning
- Currying
- Andre konstruksjoner
- Sammenfattning av avanserte funksjonelle aspekter av Kotlin
Undersøke klassescenarier i Kotlin
- Implementering av felt i Kotlin
- Bruke "lateinit"-modifikatoren i Kotlin
- Forstå nøstede og indre klasser i Kotlin
- Definere "statiske metoder" i Kotlin ved bruk av Companion Objects
- Skjule klassekonstruktører i Kotlin
- Markere klasser som forseglet i Kotlin
- Bruke typealiaser i Kotlin
- Sammenfattning av avanserte funksjoner i Kotlin for klasser
Implementering av delegering i Kotlin
- Forstå konseptet med medlemsdelegering i Kotlin
- Delegere medlemsfunksjoner til en annen klasse i Kotlin
- Delegere egenskaper i Kotlin for koderesuseffektivitet
- Bruke bygde inn delegerte egenskaper i Kotlin
- Delegere lokale egenskaper i Kotlin for koderesuse
- Implementere utvidelsesegenskaper i klasser i Kotlin
- Sammenfattning av de ulike aspektene av delegering i Kotlin
Få en dypere forståelse av generics i Kotlin
- Forstå generiske begrensninger
- Forstå varians og invarians i generics
- Bruke "out"-modifikatoren for å uttrykke kovarians i generics i Kotlin
- Uttrykke kontravarians i Kotlin
- Undersøke konseptet med typeprojeksjoner og stjerneprojeksjoner i Kotlin
- Sammenfattning av avanserte generics i Kotlin
Metaprogrammering i Kotlin
- Oversikt over refleksjon
- Bruke Java refleksjon med Kotlin ved hjelp av refleksjons-API
- Bruke Kotlins refleksjons-API
- Håndtere type-sletting i Kotlin
- Bruke reified generics i Kotlin
- Definere egendefinerte anmerkninger i Kotlin
- Sammenfattning av metaprogrammering og introspeksjonsteknikker i Kotlin
Utføre asynkron programmering i Kotlin
- Forstå problemet med asynkron programmering
- Implementere asynkron programmering og korutiner i Kotlin
- Implementere Async og Await i Kotlin ved bruk av korutiner
- Implementere Yield i Kotlin
- Forstå fordelene med korutiner over reactive extensions
- Sammenfattning av korutiner i Kotlin
Sammenfattning og konklusjon
Krav
- En forståelse av grunnleggende Kotlin
Målgruppe
- Utviklere interessert i å oppnå en dypere kunnskap om Kotlin-programmering
Referanser (7)
Intensitet på et kurs, dekning av emner. Kompliserte emner er forklart på et godt nivå, så selv om det er noen hvite flekker igjen i dem (som DSL) -- vil det ikke være vanskelig å gå videre alene da jeg allerede har en felles forståelse av grunnlaget og i det minste vet hvordan jeg skal forme spørsmålene mine til Google.
Alexey Baryshnev - C.T.Co SIA
Kurs - Advanced Kotlin Programming
Maskinoversatt
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.