幾個有意思的開源庫/工具

1. Hound (Code Search)

github.com/etsy/hound

自從工作後每天都都嚴重依賴於公司內部的Code Search工具,簡直就是面對Code Search編程,所以下班後想自己寫Side Project的時候沒有Code Search特別不習慣,於是Google一下搜到了這個工具。從效果來看,只能說還行,易用程度跟Github上的代碼搜索差不多,在排序方便有很多可以改進的地方,但是最大的優勢是容易配置:直接下載到本地,寫一個配置文件,馬上就可以開始用了。感興趣的人可以點擊上面的鏈接自己試用。

2. Promise (NodeJS)

promisejs.org

作為在NodeJS方面十足的新手,看到這個庫的時候我簡直感動得要哭了。之前寫Node項目的時候都是各種深度嵌套的callback,代碼縮進都看得眼睛瞎了。使用這個庫之後,你可以把:

do_A(function() { // Callback when A is done. do_B(function(){ // Callback when B is done. do_C(function(){ // Callback when C is done. do_D(function() { ... }); }); });});

寫成

do_A().then(function() { return do_B();}).then(function() { return do_C();}).then(function() { return do_D();})...

這樣就把原來深度嵌套(Nested)的邏輯平坦化(Flat)了。雖然還是不是很Flat,但已經比之前好很多了。

3. Heroku Proxy

github.com/manuks/proxy

這個是之前嘗試調用我司Messenger API的時候(developers.facebook.com)用到的。因為API Callback網址必須是non-self-signed SSL證書,也就是說必須花錢搞個SSL證書才可以調,所以就用了這個Proxy,通過在Heroku(一個部署網站的平台)上面部署一個代理,用Heroku的SSL證書通過了驗證,並且把請求轉發到我自己的開發伺服器上,用於開發測試。

這是一個很簡單的功能,但是想到這麼做的人真是很有想法~

4. Cassandra

cassandra.apache.org

最近在做一個小Project開始試用Cassandra作為存儲層,發現Cassandra的Data Model跟之前搭小網站用開的MySQL非常不一樣,搭建Schema的思路也非常不一樣。最大的感覺是多了一些限制,但是帶來的好處就是Scalability(雖然我那可憐的小Project也沒多大的Scale。。。),有種戴著腳鐐跳舞的感覺。如果對Distributed Storage Sytem和NoSQL感興趣的話不妨一試,會有特別的體驗。

另外Cassandra的論文也值得一讀(雖然現在系統已經出現了很大改變,但原版論文還是包含了很多有意思的東西):

cs.cornell.edu/projects

(附圖與文章內容無關)

推薦閱讀:

SparkSQL的3種Join實現
下一波計算浪潮
分散式計算和並行計算的區別與聯繫在哪裡?
MapReduce中的map做兩層for循環,效率特別低?
spark的shuffle和Hadoop的shuffle(mapreduce)的區別和關係是什麼?

TAG:分布式计算 | 开源软件 |