CoffeeScript 還可以用來做什麼? -- Hubot

标签: coffeescript hubot | 发表时间:2011-10-27 16:44 | 作者:(author unknown) kylexlau
出处:http://blog.xdite.net/

Github 內部自用的機器人 Hubot 一直是個神秘的產品,常常看到內部員工在投影片內炫耀 Hubot 多麼的屌:

Hubot1

Hubot2

但往往只是聞其聲,不見其蹤。

不過要是按照 Github 內部慣例,常常在員工投影片出現的東西,往往就是下一個 release 的標的。因此大家也都是迫不及待在等 Hubot 的釋出。按照大家的假想,Hubot 應該是某種 Perl 或 Ruby 的 client,而且 Ruby 的機率可能還大的多。

但 Github 官方 blog 貼的這篇公告文章讓大家下巴掉下來:HubotCoffeeScript 寫的…….XDDDDD

(註:以防你不知道什麼是 CoffeeScript,或者是它能帶來的好處,我曾經寫過這麼一篇文章 解釋原理以及用途 )

CoffeeScript meets NodeJS

更精確的來說,Hubot 是用 NodeJS 架構作出來的一套機器人框架,而 Github 並非直接撰寫 JavaScript,他們是直接使用 CoffeeScript。整個專案的原始碼都只有 .coffee 而已。

Support Campfire 與 IRC

目前 Hubot 支援兩種 chatroom,預設是 37signals 的產品 Campfire,也有提供 IRC 的 adapter。

Provide tons of hubot-scripts example

為了避免大家不知道怎樣擴展 Hubot 的功能,Github 在專案內提供了大概十支左右的 example,也另開了一個專案 hubot-scripts,讓大家交流和 contribute。

Hosted on Heroku

你會覺得,要跑起這樣一隻 bot,也許又要找一台機器把 bot 跑起來?

Well,這次你錯了…

Hubot 的架構被設計為可以透過 HerokuProcfile 架構掛起來,也就是可以把這一隻 Bot 養在雲端 XD ( Hubot 的文件有教你怎麼作 )

小結

昨天晚上在 Twitter 上看到幾個 Rails core team member 在講 hubot-scripts 時,才突然發現 Hubot 竟然已經釋出了。早上認真想玩時,發現整個架構竟然是 CoffeeScript + NodeJS 時,內心其實有小震撼…

目前看到的幾個是 feature project 的 network program 都是以這樣的方式誕生,如 Pow、Hubot。看來 network program 應該會越來越往 NodeJS 方向傾斜過去。

BTW,今天在玩 Hubot 時,有發現幾個比較值得注意的地方。

  1. 請使用 trunk 版。雖然官方請你直接下載有版本號的打包檔,不過大概是剛釋出,bug 有一點點多,但社群都積極的在修補,這些修補檔目前都還在 master branch 上,還沒被 tag 成 release 版本。所以跑 master 通常會比較沒問題。

  2. 扔上 Heroku 時,要記得寫 Procfile,不然是不會動的。Procfile 的 sample 在 src/templates 下。記得一定要寫,然後再開 heroku ps:scale app=1。完整 Heroku 教學放在 src/templates/README.md 下。

Good Luck!

相关 [coffeescript hubot] 推荐:

CoffeeScript 還可以用來做什麼? -- Hubot

- kylexlau - Blog.XDite.net
Github 內部自用的機器人 Hubot 一直是個神秘的產品,常常看到內部員工在投影片內炫耀 Hubot 多麼的屌:. 但往往只是聞其聲,不見其蹤. 不過要是按照 Github 內部慣例,常常在員工投影片出現的東西,往往就是下一個 release 的標的. 因此大家也都是迫不及待在等 Hubot 的釋出.

为什么CoffeeScript这么美?

- Vingel - CNode社区
JavaScript让人又爱又恨, 因为它独特, 卓越, 而且不可或缺. 尽管如此, 要说JavaScript很美, 恐怕也有些勉强. JavaScript现在如日中天, 未来发展更是不可小觑. 但毕竟它的设计非常仓促1, 有些陷阱2, 有些晦涩3; 要不为啥Douglas Crockford的书名字叫《The Good Parts of JavaScript》呢.

GitHub开源Campfire机器人Hubot

- 阿韩 - 36氪
今天,著名的代码存储与分享库GitHub宣布重写Campfire机器人Hubot代码并将其开源. 许多希望自动化日常工作的开发者可以考虑使用并重新开发这款机器人. 另外你还可以免费将自己的机器人Hubot托管在Heroku上. Hubot代码可以用CoffeeScript或者Javascript编写.

3本免费CoffeeScript电子书

- Ran - 黑客志
Smooth CoffeeScript,超过200页的内容以及35个课后习题,从基础的函数式编程到面向对象,再到基于HTML5 Canvas以及WebSockets的客户端-服务器Web应用. 不需要任何编程基础,如果你已经对脚本语言有所了解,那么可以直接跳到范例章节. CoffeeScript Cookbook,这是一本多人协作的CoffeeScript书籍,集合社区之力为你提供各种CoffeeScript的便捷菜谱,如果没有找到你想要的,你也可以通过这里贡献你自己的菜谱.

[翻译]当jQuery遭遇CoffeeScript的时候——妙,不可言

- We_Get - 博客园-首页原创精华区
原作:How CoffeeScript makes jQuery more fun than ever—— Stefan Buhrmester. 转载声明:请注明原作者、翻译者以及译文链接. 译者前言:虽然对ruby不太了解,但是看到CoffeeScript诗一般的代码确实被怔住了,和jQuery之前给我的感觉是如此的相似——都是一个字,美,当jQuery遭遇到CoffeeScript时,会蹦出什么样的火花呢.

前端工具推荐-Koala,支持Less、Sass、CoffeeScript编译。

- - V2EX - 技术
越来越多的前端同学喜欢使用Less、Sass等预处理形式来编写CSS与JavaScript.这些语言确实很棒,大大提高工作效率,语法风格也很受Geek们青睐. 我也是一个Less重度使用者,之前一直用winLess编译less文件. less编译工具比较多人使用的有winless、simpless、codekit.