謝謝koji找我來討論
自從進來mozilla除了在 local 寫一些test, 就沒再寫kotlin了( 但這即將轉變..嘿嘿...)
對我來講最爽的地方(對不起我很嫩 錯了請盡量更正)
可以不用一堆file, 一個 file 可以有多個public class/ interface (之前用clean architecture )
Function as first class citizen. 這個web世界已經有的在Java需要一堆interface才能達成.
Extension function 可以不用寫一堆extend class 但只改一點點的肥肥
lamda 可以寫出很優雅的 side effect free code. state 可以留在scope內不用到處追code下debug
Extension function expression 可以讓client端程式很優雅 (2~5好像都講同一件事 XD)
smart cast, NPE free. 這個習慣了就回不去java了. 光這點就很值得用這個語言了
7.沒有遇過跟其他library 不work的問題. (幾乎是)無痛移轉 , call stack 清楚精準.
8.好上手, 大概100小時候就改完前公司30%的 Android code ( Custom View + MVP)
缺點的話(抱歉我到1.1以後就沒再寫了) 除了compile慢了一點(個人經驗30%), 沒有其他的
唯一的意外就是Java call Kotlin的時候常要查一下, 因為Kotlin call Java幾乎無感, 但反過來的話就必須要對這個語言有點了解才有辦法. 常常是在這種地方才會發現 "啊!原來Kotlin幫我做了這麼多事啊,難怪比Java 好用"
最好的學習方式就是看 pdf1 吧 然後應用的話我是
把 data model 改成用 data class
把 Utility class 改成用 extension function
有發生過ClassCastException跟NullPointerException 的class ->按右鍵, translate to kotlin
把 Presenter / dump view 按右鍵, translate to kotlin
把 chain call . status check 寫成 lamda
重新思考架構, 也許有的地方不需要任何architecure...
看一些functional prgoramming 的東西
看一些kotlin library 怎麼寫的
有興趣的話可以研究一下 redux-java / redux-kotlin , 對於寫Java/Android也會蠻有幫助
Jake wharton 一樣有許多kotlin的talk, Antonio Leiva的書從另外一個角度切入也不錯,
用kotlin 寫一些 test, 思考一下 test 的架構
對了有人要一起去kotlinconf2 的嗎