去年稍微摸了一下 Kotlint Multiplatform,總讓我一直想到 LLVM。
當時的需求是有一段業務邏輯,需要在 SpringBoot Server/Android/iOS 三個平台上面做同樣的處理,但不希望寫三份。如果當時採用 KMP 就能用一份源碼生出三個平台都能用的 library。就當下來說滿符合我們的需求,最後沒採用是因為它的版號仍然是 beta,公司覺得有風險。
就我對其他跨平台方案的粗淺理解(實在不太想花時間去理解這類方案了),多是希望開發者在一個抽象層上實作,藉以避開各個平台的差異。KMP 則是僅提供 Primitive Class,再去生出各個平台的函式庫。
原文認為會有 ego 問題,要求 iOS/JS developer 去寫 Kotlin 會有難度。我覺得可以有另外一個切入點:「如果公司有 Android/iOS dev,那就讓 Android 的人多寫點 code 給 iOS 的用」,在我的角度來看應該難度沒增加。(至少當時我的 iOS dev 同事還滿期待前述的那塊邏輯他不用管 XD)
我反倒覺得 KMP 的難關在於,許諾的事情太少,但是引入的成本頗高。
譬如說,它要 Android 跟 iOS 放在同一個 Parent directory 底下,這在沒有 Mono repo 的公司就很難做到。若是獨立一個 Repo 專門處理業務邏輯,又要考慮如何把生出的 binary 放進 Android/iOS repo,這是對於開發流程的影響。另外,多一個external dependency,偶爾又要擔心版本問題。
最難的是,原本的 code base 要把業務邏輯切得夠乾淨,才能享受到 KMP 的好處,但是大公司的 code base,尤其是 client side,通常都不容易做到這點。
因為我白天用 Mac,晚上用 Linux,所以都習慣開 10 個虛擬桌面,再把 Alt + <數字> 當成切換桌面的快速鍵,接著固定把常用的那幾個程式開在特定的桌面。最後用起來也算是一個動作就切換到特定的程式畫面
最容易分心的時候,還是 compile 的當下.....orz
有時候覺得線上聚餐還滿有壓力,感覺到有點冷場的時候,我會盡量想點話題或是拋點問題出來,最後會講話的就是固定幾個人。雖然實體聚餐也是這樣,但是至少沒有被 Camera 盯著的壓力
偶爾要去公司拿東西的時候,我還會跟同事約同一天去拿,順便吃個飯聊天,聯絡一下感情
比起完全遠端,我還滿喜歡每週去一天公司的混合式
Virushuo1 這位是我在 twitter 追蹤的推友(應該是住在加拿大了),對於這件事情的意見相當強烈。他認為這件事情會藉由打擊兒童色情開始,敲開隱私的大門,接著就能用同樣的方式去掃描手機裡面有沒有其他不該出現的東西