「口罩查詢服務開發經驗」 AMA 聯訪全記錄

AMA 是 iT 邦幫忙所舉辦的 Ask Me Anything 活動,用文字留言與回覆來取代直播問答,資訊(例如超連結)和記錄(例如開發過程)的呈現和保存更為完整。本週二( 2020/05/05 )的中午時分,非常榮幸受到 David Tung 董老師和 AMA 小編 Tina 的邀請,參加「 5 位大大齊聚 AMA 分享口罩查詢服務開發經驗,把握被增幅的好機會一起來聊聊吧!」的活動,其中涵蓋了 3 支聊天機器人、 2 支 App 、 1 個網站,與多位大大同台一起解答網友們的提問。

iT 邦幫忙的 AMA 活動頁面: 5 位大大齊聚 AMA 分享口罩查詢服務開發經驗,把握被增幅的好機會一起來聊聊吧!
iT 邦幫忙的 AMA 活動頁面: 5 位大大齊聚 AMA 分享口罩查詢服務開發經驗,把握被增幅的好機會一起來聊聊吧!


節錄我自己的問答部分,留做記錄。

Q1:請各位先作個自我介紹,好讓邦友認識你。

大家好,我是陳佳新 ,臉書社團 Chatbot Developers Taiwan 台中分舵負責人,自 2019 年 8 月起,每個月與社群志工合辦「中部人的 Chatbots Meetup 聊天機器人小小聚」開發者聚會活動。靠著參加程式競賽獲勝的獎金,以兒子們的小名在故鄉彰化創辦軟體公司奇步應用。專長是 LINE 聊天機器人,熟悉 Beacon 數位集章、 AR 虛擬實境、 LIFF 網頁應用,曾以作品「彰化旅行+」獲得政府競賽冠軍。

Q2:請問開發這次的口罩查詢應用,與其它一般的商用應用是否有所區別?各位大師花了多少時間開發出第一版?第一版出現後,一直到穩定的版本,大概又花了多少時間?最近這幾年,在資訊領域,常常被提及的「敏捷開發」概念,在各位大師此次開發口罩應用的過程中,是否有所幫助?「敏捷開發」 真的能夠加速開發嗎?還是其實與開發速度無關呢?

二月初的時候,看到網友大神們自發性地運用駭客松精神開發了許多口罩應用,終於等到開放資料集,於是捲起袖子也打照了一個,運用的是自己最熟悉的 LINE 聊天機器人技術,大約從晚上 10 開始製作,花了四個鐘頭,到隔天凌晨 2 點,製作了第一個版本,其中覺得最困難的部分是 GPS 座標的距離換算。往後的幾天每天都在衝刺呀,持續收集反餽,持續加入新功能。

Q3:我們知道,您對於 LINE Bot 開發技術相當熟悉。除了這個口罩查詢 LINE Bot 之外,你也曾開發其他 Line Bot 獲得大獎?聽說是很高的獎金嗎?怎麼會有這樣的機會呢?(對有興趣的開發人員,是否有所建議?)此外,您這次開發的口罩查詢 LINE Bot 似乎用了非常多的 emoji ,是有什麼特別的考量嗎?這樣開發起來,會不會比較麻煩呢?

LINE 是國人每天都在使用的手機 App 之一,只需要加為好友就能夠使用,在推廣上很方便,因此非常適合作為服務的入口,而且大部分的功能也都能夠在 LINE 的聊天視窗或者 LIFF 網頁裡面實現。

說到「尋找口罩」為什麼只使用 emoji ,主要訴求是大量運用最合適的圖示(例如:成人、兒童、電話),讓重要資訊在文字當中更能夠脫穎而出、一目了然,於是捨棄了卡片式的左右輪播的排版方式。

另外剛好 David 提到比賽的部分,政府和民間每年都有許多有趣的競賽,非常推薦有志之士參加,我們自己經常使用 LINE 聊天機器人技術去實現點子,因為如同前面說的,非常容易推廣,去年有幸獲得創業歸故里競賽的冠軍,幾乎所有知道的 LINE 技術都用上了,包括 LINE Beacon 。

Q4:儘管各位大師都是非常有經驗的開發人員,但這次的需求來的又急又快,且具有許多的不確定性。不知道開發中是否有遇到哪些困難點?各位大師又是用什麼工具技巧來解決?面對需求的不確定性,或是緊急的需求,各位大師對開發人員有什麼建議?

在開發的過程,我使用「精實創業」的原則,先打造 MVP 最小可行產品,所以我首先要驗證的是能否從開放資料集裡面抓出健保特約藥局的 GPS 座標,再去換算與目前所在位置的距離,上網找了好幾篇資料,發現需要用到三角函數(因為地球是圓的),有了距離就可以畫出方圓 10 公里的範圍,篩選出還有口罩的藥局,這個部分距離換算和篩選的作業花了不少時間。

補充說明,我每次有新功能,都會發一篇介紹貼文到臉書,親朋好友就在在下方留言許願,一旦實作出來,就可以滿足到更多有同樣需求的人。所以是看留言和反應,沒有特別用工具管理。 ^_^

Q5:我們知道開發口罩相關應用,資料來源都肯定是透過政府單位的 Open Data 而來,此次串接 Open Data 的過程順利嗎?是否有什麼需要注意的事情可以和讀者們分享?另外,面對系統必須常常更新口罩剩餘數量這件事情,各位大師是怎麼處理的?是需要在程式碼當中做一個 schedule job 嗎?還是怎麼處理定時的更新呢?

因為 github 那份資料集更新很快很即時,大約 30 秒就會更新,所以初期都是 on demand ,有用戶查詢就會去撈一遍資料集,確實曾經也遇過幾次資料集掛掉的情形,所以後來會用 crontab 每分鐘去撈一份副本,當 LINE 聊天機器人查詢 github 沒資料時,會轉而撈這份沒那麼即時但也夠用的資料。

Q6:各位大師能否談談您學習程式設計的經驗?從開發第一個系統到今天,經過了幾年的時間?資訊領域瞬息萬變,面對這麼多新的技術,你會不會覺得疲憊?您覺得開發人員應該廣泛的學習?還是挑一兩個領域深入研究?除了工作之外,每個月大概花多少時間在學習新技術上?

每天都會逛幾個社團,每個月也會定期參加幾場小聚,可以從網友的問題討論、從 Keynote 和閃電秀講者的身上學到很多知識,再挑有興趣或者跟工作有相關的部分去深入鑽研。

Q7:為什麼選擇做 LINE Bot ?而不是用 App 或其他的平台?(像是 Telegram, FB Messanger…etc.)開發 LINE Bot 會不會花很多時間?該怎麼決定要提供什麼功能呢?

嘿啊,同意樓上 Ian 大大說的「選擇做 LINE Bot 主要考量點是, LINE 是台灣民眾很熟悉的 APP ,介面操作熟悉度自然不是問題,再者實作在 LINE Bot 上,並不用花太多時間做使用者介面的設計,最後則是要讓使用者隨手可用,在手機介面上相較於 Web , LINE 的介面會有比較好的操作及顯示性,而 APP 則是要面臨上架審核耗時的問題,所以也不在考量之內。」,再來是長輩們可能不會安裝 App ,也不會開瀏覽器,但是會掃碼加好友,所以就決定用 LINE 聊天機器人來做了。

Q8:對了,您的 LINE Bot 聊天視窗下方,為什麼沒有一般常見的漂亮的圖文選單( Rich Menu )呢?是否有特別的考量?

哈哈,單純是因為趕著上線,沒有太多時間和精力製作圖片,再來是這樣可能比較有駭客松的氣氛(咦),所以使用 Quick Reply 快捷按鈕來取代漂亮的圖文選單。 ^_^

Q9:開發這類的 GPS 應用時有遭遇到什麼困難或者有趣的事情嗎?

我是大約凌晨 2 點開發完,隔天就從彰化開車南下去屏東,在嘉義附近經過北迴歸線時,突然發現篩選出來的健保特約藥局全都錯亂了,才驚覺 GPS 座標轉換距離的公式有誤(正負號的問題),趕緊在後車廂打開電腦 debug ,哈哈。

Q10:各位開發大師能否簡單介紹一下各自選擇的開發技術?我相信主要原因肯定是因為熟悉,但除了熟悉之外,是否還有其他原因讓您選用這個技術?對於目前的資訊技術人員來說?好像跨平台與跨領域變成了某種潮流?一個開發人員是否真的需要同時熟悉前後端、或是同時學習 Desktop/Web/Mobile 領域?還有 IoT ?雲端?這些不同領域的技術,是否在未來都是「一個」開發人員所必要的?

我的架構是用 PHP + MySQL 來開發 LINE 聊天機器人,雲端主機在東京,手機跨平台的問題, LINE 已經幫忙解決了。選擇用 LINE 是因為受眾用戶的年齡層很廣泛、只要加好友就能使用,在推廣上相當便利。

↓ 請幫我按 5 次 Like ,感恩 ↓