慶祝 Ktor 1.0 發布,分享 JetBrains 日講稿及程式碼
- 2020 年 2 月 20 日
- 筆記
非常值得慶祝的是,??Ktor 1.0 正式發布了??,Ktor 中文站也已更新。

Ktor 是 JetBrains 官方出品的互聯應用框架。 使用該框架非常易於開發非同步的伺服器與客戶端,並且能夠充分利用 Kotlin 以及協程的優勢。
Ktor 中文站是官方英文站的中文翻譯(目前還在翻譯中,歡迎組團一起)。 初學者可以從快速入門入手來學習與了解 Ktor,這一章大多數內容均已翻譯。
上周六,有幸在 JetBrains 開發者日上分享了《Ktor——Kotlin 多平台非同步 Web 框架實踐》 ,這兩天也把講稿及相關 demo 整理了下。
講稿可在這裡下載:
鏈接: https://share.weiyun.com/5UqjtTc 密碼: eauq37 我猜你還想看 Benny 分享的講稿,傳送門在這裡:??2018 JetBrains 開發者大會見聞??
這份講稿比當天用的那份要新一些(其中的截圖也能看出是 11 月 20 日的),補充了當場提到但沒有在講稿中列出的 Ktor 適用場景: 多平台項目,同時開發客戶端與服務端,比如同時開發 WebSocket 或者直接套接字通訊的客戶端與伺服器。
CallID 與 Call Logging MDC 的 demo 在這裡:
https://github.com/hltj/ktor-callid-demo
介面聚合服務 demo 在這裡:
https://github.com/hltj/kaggregator-demo
最後出場的這個是原打算在分享中講的開源縮略圖服務 Kthumbor,終於完成了第一個可用版。服務框架使用 Ktor,100% Kotlin 開發,見下圖:

另外,在 Kthumbor 項目中採用了測試驅動開發的方式(其中測試框架使用的是 KotlinTest),先寫測試用例後寫實現。 目前只實現了最簡單的生成指定寬高內的縮略圖的功能,後續還會實現放大、剪裁等功能,最終會實現一個生產級可用的縮略圖服務。
Kthumbor 的源程式碼在這裡:
https://github.com/hltj/kthumbor
歡迎回饋與交流。 需要說明的一點是,我並不想做純雷鋒,該項目採用 AGPL-3.0 協議發布,因此可以用於商業目的,但是任何修改都需要以同樣協議(AGPL-3.0)開源出來。
關於分享中講到的點以及 Kthumbor 項目,有機會再展開來看。


