我在 kotlin讀書會的日子(六):鐵人賽團體組挑戰成功

楊舒安
4 min readOct 12, 2020

--

我的參賽主題是:「如何用 Ktor / Kotlin 開發 Chatbot

這是一次很難得的經驗,跟8位隊友一起度過30天,並完成了一項任務。

趁著記憶猶新的時候,寫下這篇準備文,開賽前一個月時就已經決定要用Chatbot當主題參加個人賽了,就開始先收集一些關於Chatbot的最新資料,例如:Line Taiwan的新手教學小短片等等。這時候的計畫是30天滿滿的Line Bot.

大約半個月後,Kotlin讀書會確定成團,我的主題也從原本只單純介紹Line Bot 變成用 Ktor 當成唯一工具,語言也限定 Kotlin,Line的部分從原本的30天整整少掉一半,變成了15天,開賽前的規劃方向大致如下:

一. 通訊軟體各介紹3-5天,包括FB, Slack, Telegram, Line (後來加入Ktor的前後端功能後,就取消FB及Slack,只留TG跟Line)

二. Ktor 相關功能介紹10-15天.包括:與各通訊軟體的串接, 付費版的Http Request功能,以及DB。(Ktor 的 Html-DSL 是在開賽後準備DB時,才決定要一起介紹的)

因為內容相當的多,所以第一天我就沒有灌水帶過,直接安裝Ktor 跟Toolbar了。為了能夠讓完全不懂Kotlin, 甚至是看不懂程式碼的朋友也能跟著學,Telegram的部分都以入門為主,在第6天時使用到Ktor的時候,kotlin語法才出現。Kotlin出現的第2天,瀏覽數瞬間少掉一半,我的心裡大概就有個底了,可能已經有人看不懂了,因此,就決定先換成另一個主題:「Line Bot」(TG Bot則是在Kotlin的寫法都介紹完後,安排在最後一天以實作的方式將專案完成)。

百家爭鳴的Line Bot, 早就已經充斥著各種程式語言了,Kotlin 這時候再進來攪局,個人是覺得有點辛苦了,但是 Ktor 可以同時寫「前後端」的功能對於Line的LIFF卻是相當方便,對於目前儼然是LINE主流功能的LIFF, 我就搭配著 Ktor Web 一起介紹,一個專案丟到雲端去,不僅可以將對話功能跟LIFF的需求全部解決,連DB也有(可惜的是我沒有把第16天的前後端串起來啊~殘念)。

最後6天,包括第31天的完賽感言,都是以Kotlin為主,這是特別安排的,有鑑於第7天的時候瀏覽數瞬間少掉一半的前車之鑑(也有可能是因為我不解說基礎語法的關係),決定將最基本的 Chat功能放在最後,實驗證明,確實是因為 kotlin 讓瀏覽數都低空飛過的XD(但是 Kotlin是主角啊,就算沒人要看,我還是要寫!!

(如上圖:Kotlin真的是「票房毒藥」啊 XD)

Ktor 在這次的比重也占了50%左右,比起30天全寫 Chatbot, 有了 Ktor 確實增加了不少新鮮感,投入聊天機器人開發的人愈來愈多了,反而會讓我原本單純寫 Chatbot 的題材沒什麼特色,改用 Ktor 後,整個主題的重心跟主角都出現了,以及第31天有提到 Ktor 的 html-DSL 功能也是一項與眾不同之處(前後端全用 Kotlin寫 --> 其他語言目前還辦不到的事情 XD)。

一年前沒想過要參加鐵人賽,參加社群純粹是想看看地球上的其他人類在做什麼,以及想跳脫原本的生活圈,改變一下思考方式,就這樣從實體小聚到線上讀書會,對我都算是前所未有的經驗。鐵人賽確定成團後,就加入Kotlin團隊,在這30天內跟其他幾位隊友以及群組內的朋友一起奮鬥,最令人興奮的,莫過於看到團體組頁面上出現「挑戰成功」這四個字啊!!

--

--

No responses yet