2018/1/23

只要有心,人人都可以作卡米狗 - 完賽心得

# 參加感想 其實一開始參加的時候是想說反正隨時棄坑都沒關係,至少我有開始過。但沒想到讀者比我預想的還要多,情況有點不受控制,我似乎不得不把質跟量都作出來,不然就會辜負這些讀者。不過也感謝大家的支持,我才能順利完賽,在沒有任何文章存稿的情況下參賽,連我都不相信我能完賽。 # 讀者群的設定 因為卡米狗粉都是沒有接觸資訊領域,不會寫程式的人,所以在我寫文的一開始,就把讀者群設定在電腦只有開過 IE、只安裝過 MMORPG 的等級。要從檔案總管和記事本教起,這件事比我一開始想像中的還要累。在講到任何知識之前,我都得要先想一下,我應該要假設讀者已經學過了嗎?如果我這裡跳過不講,讀者會不會放棄治療,一輩子卡關在這裡呢?還是說我不應該講這麼細節的東西,應該讓讀者用肌肉記憶就好?我是覺得如果我不講,讀者放棄治療的機率很高啦。 對於 iT邦幫忙既有的讀者來說,我設定的讀者群程度可能就太淺了,抱歉占用到你們的版面。不過,我從一開始就不是打算寫給你們(工程師們)看的。 # 關於選題 只要有心,人人都可以作卡米狗,這個選題已經說明了讀者群的設定就是麻瓜。而聊天機器人說穿了就是個只有後端的網站,製作難度肯定低於架網站,我只需要確保每個讀者都懂 HTTP 協定,並且會架 HTTP Server 即可。主要目標是讓讀者看完之後能夠有基礎的網站概念,開始能看得懂工程師寫的技術文章,以及知道遇到問題時要在 GOOGLE 輸入什麼關鍵字的能力。 # 關於文章內容的編排 我首篇先講什麼是聊天機器人,並以卡米狗舉例說明,當然也是為了置入一波卡米狗。 在我作任何教學之前,我會希望讀者能夠先知道為什麼他要學這個,所以我選擇採用從上而下的講解方式,先講最大的框架是由什麼構成,接下來再去認識細節和實作的部分,而每一個實作的部分都是遇到才教。我就是怕我一教難的你們就跑了。 如果我今天第一篇開頭就說,我們要用 sublime、ruby、rails、git、heroku 哦~先安裝吧,然後前面10篇都在安裝,這樣的編排真的有人讀得下去嗎?我很懷疑。我認為要讓讀者能夠在初期就取得巨大的成就感,讀者才會有信心能夠跟著文章走下去。所以我在第三篇就讓讀者建立一個 Line chatbot 帳號,而且可以講一些廢話。後面花了20篇的篇幅在教怎麼作出跟 Line@ 提供的後台一模一樣的東西。 不過這樣的篇排有個缺點,就是不能跳著讀。 # 目錄 大致的切分如下: ### 基本觀念的建立 從聊天機器人帶到 Webhook,再帶到 HTTP 協定以及 Web Server。 [第一天:認識聊天機器人](https://ithelp.ithome.com.tw/articles/10192259) [第二天:認識卡米狗](https://ithelp.ithome.com.tw/articles/10192575) [第三天:作一隻最簡單的 Line 聊天機器人](https://ithelp.ithome.com.tw/articles/10192928) [第四天:認識 Webhook](https://ithelp.ithome.com.tw/articles/10193212) [第五天:認識 Line Messaging API Webhook](https://ithelp.ithome.com.tw/articles/10193441) [第六天:認識網站](https://ithelp.ithome.com.tw/articles/10193664) [第七天:認識網頁伺服器](https://ithelp.ithome.com.tw/articles/10193904) ### 開發環境的建立 從 Web Server 帶到 Rails,再帶到 Command Line、Sublime Text [第八天:安裝 Rails 和認識小黑框](https://ithelp.ithome.com.tw/articles/10194156) [第九天:作一個最簡單的 Rails 網站](https://ithelp.ithome.com.tw/articles/10194359) [第十天:認識文字編碼](https://ithelp.ithome.com.tw/articles/10194586) [第十一天:認識文字編輯器](https://ithelp.ithome.com.tw/articles/10194805) ### HTTP 協定的深入了解 從各個角度了解 HTTP,從瀏覽器發送和接收、也從網站伺服器發送和接收 [第十二天:從瀏覽器認識 HTTP 協定](https://ithelp.ithome.com.tw/articles/10194805) [第十三天:認識 Ruby 的資料型態](https://ithelp.ithome.com.tw/articles/10195196) [第十四天:最基本的 Rails 運作流程](https://ithelp.ithome.com.tw/articles/10195380) [第十五天:從 Rails 認識 HTTP 協定](https://ithelp.ithome.com.tw/articles/10195578) [第十六天:做一個最簡單的爬蟲](https://ithelp.ithome.com.tw/articles/10195760) ### 發布環境的建立 介紹發布環境,帶到 Heroku 和 Git [第十七天:怎麼讓別人連到我作好的網站?](https://ithelp.ithome.com.tw/articles/10195920) [第十八天:發布網站到 Heroku](https://ithelp.ithome.com.tw/articles/10196129) [第十九天:發布網站到 Heroku (續)](https://ithelp.ithome.com.tw/articles/10196250) ### LINE API 的串接 基礎知識備齊,終於來到正題。讀者設定為一般工程師的話,第一篇大概會從這邊開始寫起。 [第二十天:串接 Line Messaging API Webhook](https://ithelp.ithome.com.tw/articles/10196397) [第二十一天:讓 Line Bot 回覆訊息](https://ithelp.ithome.com.tw/articles/10196544) [第二十二天:用 Line Messaging API 實作關鍵字回覆](https://ithelp.ithome.com.tw/articles/10196672) ### 資料庫的操作 缺乏的一塊基礎知識,因為得在這個階段才能感受到為什麼需要資料庫,所以選擇在這個時候才講。寫給工程師看的話,這兩篇大概就略過了。 [第二十三天:認識資料庫](https://ithelp.ithome.com.tw/articles/10196781) [第二十四天:認識資料庫(續)](https://ithelp.ithome.com.tw/articles/10196895) ### 學習成果的應用 這是大家想看的部分 [第二十五天:卡米狗學說話](https://ithelp.ithome.com.tw/articles/10197013) [第二十六天:卡米狗推齊](https://ithelp.ithome.com.tw/articles/10197128) [第二十七天:卡米狗見人說人話,見鬼說鬼話](https://ithelp.ithome.com.tw/articles/10197234) [第二十八天:建立管理後台](https://ithelp.ithome.com.tw/articles/10197333) [第二十九天:卡米狗發公告](https://ithelp.ithome.com.tw/articles/10197440) [第三十天:卡米狗查天氣](https://ithelp.ithome.com.tw/articles/10197544) # 關於開發環境 選擇在 windows 上開發 rails,而不是選在 macbook 上開發,是因為我認為大多數一般人家裡沒有 macbook,為了降低進入障礙,所以選擇在 windows 上開發,我的卡米狗從一開始就是在 macbook 上開發的,而在我寫文之前,我沒有用過 windows 開發過 rails。選擇用 windows 開發,在後期確實是導致比較多的障礙。不過讀者們會因為這樣而去安裝 linux 或者買一台 macbook 嗎? # 關於瀏覽量 老實講,最前面的三篇文章我有在卡米狗上面發公告宣傳,成效不錯。但每次發公告,好友人數就掉1%是蠻傷的,應該要作個訂閱機制,針對那些有在 LINE 上訂閱系列文的人,我再每天 PUSH 就好。不過文章寫到一半也沒那個心力去加功能就是了。不過後面有兩篇莫名4千多,我是懷疑有別人在洗我的瀏覽量。 # 最後 在這裡感謝那些留言給我的人,不論你們是提出問題,或回報錯誤,或感謝我,你們都能幫助到我。之後可能會把在這三十篇裡面沒提到的,關於 Line Messaging API 部分也講一講,像是 [imagemap message](https://developers.line.me/en/docs/messaging-api/message-types/#imagemap-messages) 和 [template message](https://developers.line.me/en/docs/messaging-api/message-types/#carousel-template) 這種比較酷炫的功能。 以下開放許願,我考慮有時間的時候再回來講講。

沒有留言: