nevin 積分 7 編輯於

謝謝koji找我來討論

自從進來mozilla除了在 local 寫一些test, 就沒再寫kotlin了( 但這即將轉變..嘿嘿...)

對我來講最爽的地方(對不起我很嫩 錯了請盡量更正)

  1. 可以不用一堆file, 一個 file 可以有多個public class/ interface (之前用clean architecture )

  2. Function as first class citizen. 這個web世界已經有的在Java需要一堆interface才能達成.

  3. Extension function 可以不用寫一堆extend class 但只改一點點的肥肥

  4. lamda 可以寫出很優雅的 side effect free code. state 可以留在scope內不用到處追code下debug

  5. Extension function expression 可以讓client端程式很優雅 (2~5好像都講同一件事 XD)

  6. 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 吧 然後應用的話我是

  1. 把 data model 改成用 data class

  2. 把 Utility class 改成用 extension function

  3. 有發生過ClassCastException跟NullPointerException 的class ->按右鍵, translate to kotlin

  4. 把 Presenter / dump view 按右鍵, translate to kotlin

  5. 把 chain call . status check 寫成 lamda

  6. 重新思考架構, 也許有的地方不需要任何architecure...

  7. 看一些functional prgoramming 的東西

  8. 看一些kotlin library 怎麼寫的

  9. 有興趣的話可以研究一下 redux-java / redux-kotlin , 對於寫Java/Android也會蠻有幫助

  10. Jake wharton 一樣有許多kotlin的talk, Antonio Leiva的書從另外一個角度切入也不錯,

  11. 用kotlin 寫一些 test, 思考一下 test 的架構

對了有人要一起去kotlinconf2 的嗎

這是文章的子討論串,你可以回到上層查看所有討論和文章