幾個有意思的開源庫/工具
https://github.com/etsy/hound
自從工作後每天都都嚴重依賴於公司內部的Code Search工具,簡直就是面對Code Search編程,所以下班後想自己寫Side Project的時候沒有Code Search特別不習慣,於是Google一下搜到了這個工具。從效果來看,只能說還行,易用程度跟Github上的代碼搜索差不多,在排序方便有很多可以改進的地方,但是最大的優勢是容易配置:直接下載到本地,寫一個配置文件,馬上就可以開始用了。感興趣的人可以點擊上面的鏈接自己試用。
2. Promise (NodeJS)
https://www.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
https://github.com/manuks/proxy
這個是之前嘗試調用我司Messenger API的時候(https://developers.facebook.com/products/messenger/)用到的。因為API Callback網址必須是non-self-signed SSL證書,也就是說必須花錢搞個SSL證書才可以調,所以就用了這個Proxy,通過在Heroku(一個部署網站的平台)上面部署一個代理,用Heroku的SSL證書通過了驗證,並且把請求轉發到我自己的開發伺服器上,用於開發測試。
這是一個很簡單的功能,但是想到這麼做的人真是很有想法~
4. Cassandra
http://cassandra.apache.org
最近在做一個小Project開始試用Cassandra作為存儲層,發現Cassandra的Data Model跟之前搭小網站用開的MySQL非常不一樣,搭建Schema的思路也非常不一樣。最大的感覺是多了一些限制,但是帶來的好處就是Scalability(雖然我那可憐的小Project也沒多大的Scale。。。),有種戴著腳鐐跳舞的感覺。如果對Distributed Storage Sytem和NoSQL感興趣的話不妨一試,會有特別的體驗。
另外Cassandra的論文也值得一讀(雖然現在系統已經出現了很大改變,但原版論文還是包含了很多有意思的東西):
https://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf
(附圖與文章內容無關)
推薦閱讀:
※SparkSQL的3種Join實現
※下一波計算浪潮
※分散式計算和並行計算的區別與聯繫在哪裡?
※MapReduce中的map做兩層for循環,效率特別低?
※spark的shuffle和Hadoop的shuffle(mapreduce)的區別和關係是什麼?