Summary
In this chapter, we reviewed the best practices in Kotlin, as well as some of the caveats of the language. Now, you should be able to write more idiomatic code that is also performant and maintainable.
You should make use of the scoping functions where necessary, but make sure not to overuse them as they may make the code confusing, especially for those newer to the language.
Be sure to handle nulls and type casts correctly, with let()
, the Elvis
operator, and the smart casts that the language provides. Finally, generics and sealed
classes and interfaces are powerful tools that help describe complex relationships and behaviors between different classes.
In the next chapter, we'll put those skills to use by writing a real-life microservice Reactive design pattern.