近年來由於通訊軟體 (Messenger、LINE、WhatsApp...) 成為普遍人們最常使用的 App,總使用的時間也隨著漸漸攀高,再加上各軟硬大廠 (Amazon、Google...) 紛紛踏入語音助理的戰場,讓所謂聊天機器人與語音助理能見度越來越高,應用情境也越來越廣泛。
由於這個產業還在興起,許多通訊平台與功能求新求變,目前我鮮少看到探討 Chatbot 文章或系列文,能用軟體的角度同時兼顧到程式碼彈性、可讀性、可維護性、可測試性等等軟體的指標,並探討有利於維護龐大架構的模式,所以才興起寫這個系列的念頭,也希望藉這個機會能跟 Chatbot 開發者多多交流。
另一方面,最近正在推動開發開源 Chatbot 框架 - 「Bottender」 的 v1.0 版,這會是個比較大的改版,希望藉由寫文章的方式去持續反思程式設計,最後能推敲出更易用好維護的 API,讓自己跟大家都能更滿意。
筆者兩年前曾經在鐵人賽寫過「使用 Modern Web 技術來打造 Native App」系列文,跟這系列脈絡非常類似,只是把技術領域更擴展到 Chat 端,相信這類文章對於已經熟悉網站前後端的 JavaScript 開發者來說會非常容易上手。
Chatbot 開發者要同時擁有前端的設計敏銳度來處理複雜 Conversational UI,同於又需要擁有 Server 的知識來處理 Session、Database,或甚至處理大流量上的問題,真的是給全端工程師很大發揮空間。而許多網站、App 的工程手段套用到 Chat 領域也是非常適用。
雖然對於連續寫三十天不大有把握,但要寫完三十篇應該不難,就算沒有完賽我也會努力把這系列補完的。
這系列文章不要求讀者需要非常了解 JavaScript,也不會使用任何艱澀難懂或篇幅過長的程式碼,範例都以小巧易懂為主,但最低要求是需要讀者準備 Node.js 的執行環境,若還沒有可以自行在 Node.js 官網 或其他適合的管道進行安裝。
以下是本系列的目錄: