$30 off During Our Annual Pro Sale. View Details »

GooleIOExtended2019_Toan_English.pdf

 GooleIOExtended2019_Toan_English.pdf

Toan Tran

July 27, 2019
Tweet

More Decks by Toan Tran

Other Decks in Programming

Transcript

  1. View Slide

  2. View Slide

  3. Agenda
    1. Some background contexts
    2. First line of Kotlin
    3. Adoption process
    4. Is it easy or not?
    5. Lessons learnt
    6. Where we are now?
    7. Questions

    View Slide

  4. Background contexts (facts)
    - Starting as MVP project in 5 months
    - All Java
    - “1-man project”
    - 1+ year since Kotlin official support from Google (May 2017)

    View Slide

  5. First line of Kotlin (1)
    July 27, 2018

    View Slide

  6. First line of Kotlin (2)
    July 27, 2018

    View Slide

  7. Adoption - phase 1 - “the honeymoon”
    - Enjoy the language features: data class, extension functions,
    out-of-the-box lambda support, collection API, Null-safety!!!,
    immutability support
    - Bit by bit: testing code, data object
    - The brevity vs the verbosity - clear winner!
    - Introduce the language with weighted risks - like you are
    driving your car at 60 mph

    View Slide

  8. Adoption - phase 2 - “spreading”
    - New components are written in Kotlin
    - Converting from Java to Kotlin is encouraged (but
    optional)
    - Supported by: code review process, pair-programming

    View Slide

  9. Adoption - phase 3 - “acceleration”
    - First factor: New hire with Kotlin filter (Belarus team expanding)
    - Refactoring:
    - Convert from java to Kotlin become a mandatory
    - New components are written in Kotlin as always

    View Slide

  10. Is it easy?
    1. Java inter-ops capability
    2. Rich API collections
    3. Reading it in a similar style with Java
    4. Functional concepts

    View Slide

  11. Lessons learnt
    - Pair-programming sessions help the adoption become team-friendly and less stressful
    - Guild to share the knowledge - via Code Review, filling-water talks,

    View Slide

  12. Where we are now?

    View Slide

  13. Questions

    View Slide

  14. Next session - Firechat

    View Slide