Hello World
CodeTengu Weekly 碼天狗週刊
如果命運的齒輪沒有出差錯,CodeTengu Weekly 都會在 UTC+8 時區的每個禮拜一 AM 10:00 出刊。每週會由三位 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到感興趣的東西,可能下一期就有了。當然你也可以瀏覽一下前幾期的內容。
目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,最近在讀 Wool
- @saiday - Imnotyourson - 有什麼意見進來 Run time 講啊
- @tzangms - Oceanic / 人生海海 - 最近真的都在玩薩爾達
- @fukuball - ImFukuball - 有新工作了,但歡迎直接挖角
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien - 》〉》我們要找 iOS 工程師《〈《
- @uranusjr - Smaller Things - 聽說 Pinkoi 少了個棒球記者所以現在去應徵前端應該有機會!?Shadowverse:
uranusjr - @kkdai - 態度萬歲 - Learning Deeply....
- @yhsiang - AMIS / MAICOIN 徵才中,歡迎聯繫!
- @johnlinvc - 挑戰自動化家中電器
- @drumrick - 歡迎加入台灣 Kaggle 交流區
- @wancw
- @allanlei
- @theJian
你也可以關注我們的 Facebook、Twitter、GitHub 或 Open Source 專案,有很多 weekly 看不到的內容。有任何建議也歡迎來 Gitter 聊聊。
@saiday
The Best Career Advice from Dev Chats
分享一下文章裡面 Teach What You Know 的重點。
- 資深工程師的其中工作內容是要產生更多資深工程師
- 資深工程師不只是可以拿更高的薪水跟閃避那些枯燥的工作;透過傳遞經驗,團隊才可以成長得更快速
Getting to know Kotlin’s Extension functions: some caveats to keep in mind
最近寫了幾個 Kotlin 的 extension,覺得自己很 Kotlinic(有這個詞嗎?)。用在了以往會用 Utility static method 的情境跟透過 extension 支援 Nullable Receiver 的特性在那些不得不對 nullable type 檢查並處理的邏輯統一跟易讀。
Kotlin extension 比較值得留個印象的是它是 static dispatch 的,因為是 compile time 加入的語言特性,如果把它當成一般的 dynamic dispatch 可能某一天你會花很久的時間才搞懂你的 function 沒被呼叫是因為這個原因。
放這篇文章是因為他講的 Static vs dynamic dispatching 很易懂,如果上面那一段沒有很清楚的人可以看一下。
Android KTX - Android development with Kotlin - Kotlin Expertise Blog
接續 Kotlin extension 的主題。
Android KTX 是 Android Jetpack 的其中一部分,Google 這幾年在做 Android 的開發基礎組件這件事做得很認真,一直有在推出新的框架跟 best practice。
Android KTX 全名是 Android Kotlin extensions,實際上就是 Google 幫你寫了一堆針對 Android SDK API 的 Kotlin extension 在不改變原本 API 的情況下透過 KTX 讓你開發 Android 更快速。
Android KTX 簡介
Jake Wharton 在 Google I/O '18 的 Android KTX 主題
Handling mutable models in Swift
處理可變動跟未完整的 data model 是開發 client 很常見跟經典的一個問題,透過 Swift 的語言特性我們可能有新的設計選擇。
當你在明確知道這不是 nil 卻為了要應付 compiler 而 guard 或 unwrap 時,表示你 model 的設計可以改進了。
作者提出了一種 Partial immutability + Observing mutations 的方式來設計 data model。
iOS-factor
致敬 The Twelve-Factor App 的 iOS 版本。The Twelve-Factor App 是針對 web service, SaaS 的開發跟部署的大方向參考手冊。
直接引用他的介紹:
It aims to provide a collection of best practices for building high-end iOS applications. Each topic is covered by a factor, which describes an ideal state of how a certain category of the iOS app development process could look like.
嘿對沒錯,這個計畫又是 @KrauseFx 發起的
@johnlinvc
bufferbloat
Bufferbloat 指的是 router 沒辦法好好同時處理大量資料上下載和即時的資料,造成即時的資料(像是線上遊戲)有比較大的 latency (lag)。
可以用 speedtest 測測看自己的 router 有沒有設定好。
這個網站提供了一些處理方法,像是改刷 DD-WRT 之類的。想吃更多雞🐔的朋友可以參考一下。
Sobert : a Ruby Type checker
預計在東京奧運時發布的 Ruby 3 有三個目標
- Ruby3x3: 在 optcarrot (NES 模擬器) 跑的速度是 Ruby 2.0 3 倍。
- Concurrency: 加入一個好用的非同步機制。
- Type Check: 讓不須編譯的 Ruby 能在程式執行前就找出錯誤。
Stripe 用 C++(才夠快XD)寫了一個 Ruby 的 Type Checker,有興趣的人可以玩玩看。 目前還在他們內部使用,等到夠穩定才會開源。
Black: Python Code Formatter
在Python 這邊,繼 Google 的 YAPF 之後, Facebook 也出了一個 Python formatter,叫做 Black。名字的是來自福特汽車的福特當年說的一句話:
Any customer can have a car painted any color that he wants so long as it is black.
所以和 YAPF 不同, Black 幾乎沒有選項可以調整。讓大家又少了一些在開會時可以討論的話題。