EZTABLE IDEAS 是 EZTABLE 成員揮灑熱情和大家分享專業及創意的網誌。 EZTABLE 讓消費者 24 小時都可以在網路訂位全台灣最優質的餐廳,同時提供餐廳經營者 e 化的訂位管理系統 (雲端、iPad、智慧型手機)

Say Hello to EZBOT

十一月 06 2013 Published by under Engineering

What is EZBOT?

EZBOT

跟許多知名團隊一樣, EZTABLE 使用 HipChat 作為內部溝通工具,而 EZBOT 則是我們於某次 Hackday 時,所導入的聊天室機器人,提供許多有趣又方便的服務。

 

What can EZBOT do?

透過 HipChat 的聊天室介面,就可以直接下達指令給 EZBOT。

首先是一些基本的功能,像是自動抓取網頁 title 、計算機、天氣查詢、顯示 github status 等等

github

 

而我們也在 Hackday 時寫了好幾個有趣實用的新功能!

  • 首先是 ubike 剩餘車輛查詢:在上班的同時就可以不動聲色地開始規劃下班的運動路線!

ubike

 

  • Lunch God:每天總是在為午餐吃什麼而煩惱嗎?直接詢問午餐神吧!

lunchgod

 

  • 點餐統計系統:由於在公司常常會需要訂飲料或下午茶,因此我們就讓 EZBOT 可以自動整理大家的 order 並產生一份統計結果。

order

 

  • 奇妙的問答系統:如果對 EZBOT 說出特定的關鍵字,就會觸動 EZBOT 的話閘子開關,對你進行一番醍醐灌頂。(感謝和多提供的 MORETEXT 服務)

moretext

How do we write EZBOT?

  • HUBOT

    故事的一切要從 HUBOT 講起, HUBOT 原本是 Github 內部自己用的機器人,而後開放出來給大家使用, HUBOT 其實就像是一個 bot framework ,除了內建的一些基本功能,也很容易擴充,可以輕易地寫出新功能模組掛上去。

  • hubot-hipchat

    HUBOT 最開始只有支援 CampfireIRC 兩個聊天系統,但很快的 HipChat 就為 HUBOT 寫了 hubot-hipchat ,提供給 HipChat 使用者。

  • hubot-scripts

    hubot-scripts 是一個分享好用 HUBOT 功能的平台,我們從 hubot-scripts 挑選出適合 EZTABLE 使用的基本功能,比如最基本的網頁標題讀取或是計算機都可以在這邊找到,也可以發 Pull Request 貢獻新功能。

  • Tests

    由於 EZBOT 是一個 node.js Project ( HUBOT 也是),所以測試部分就直接用知名的 test framework: Mocha 以及 assertion library: Chai 來寫 ,同時我們也把他丟上 Travis CIContinuous Integration:(https://travis-ci.org/EZTABLE/EZBot),如此一來只要有人 commit 到 github repo 就會自動 trigger 一次測試來確保程式沒有問題。

Screen Shot 2013-11-06 at 下午12.47.22

 

  • CoffeeScript

    HUBOT是一個 100% CoffeeScript project,所以我們在開發 EZBOT 新功能的時候自然也是寫 CoffeeScript

      

    「那種感覺難以形容,如行雲流水一般,是以前寫 java 跟 C++ 時從未體驗過的清新。」

     

    by 某不願具名 EZTABLE 資深工程師 A**y

     

    值得一提的是,在 EZTABLE 平日的開發工作中,我們也是使用 CoffeeScript 來取代 javaScript , xdite 曾經寫過一篇文章來解釋CoffeeScript的優點。

  • AWS

    HUBOT 預設是可以快速 deploy 到 heroku,不過由於 EZTABLE 自家的服務幾乎都已經放在 AWS 上,所以我們就直接把 EZBOT 丟到 AWS 。

Open Source!

EZBOT 現在每天都在 EZTABLE 的 HipChat 聊天室跟大家互動,我們也決定把 EZBOT open source ,提供一個範例給有興趣的人/團隊參考,希望大家都可以用最短的時間建立自己的 Chatroom bot 。當然我們也歡迎 contribution (We welcome pull requests),不過記得要寫 test 喔XD

 

Ending

Github的員工 Zach Holman 曾經發過一篇文章解釋為何要作 HUBOT:why github hacks on side projects,僅摘錄文章中最後一句話作結。

It doesn’t matter what it is; if it improves the lives of your coworkers or makes them laugh, it helps build a stronger company culture. And that’s cool.

 

 

And that’s cool.

你喜歡我們的 hack 文化嗎?,歡迎加入 EZTABLE 一起 HACK 全世界


Related Posts Plugin for WordPress, Blogger...

No responses yet

發表迴響