顯示具有 firebase 標籤的文章。 顯示所有文章
顯示具有 firebase 標籤的文章。 顯示所有文章

2016年11月6日 星期日

Redux 簡介:我終於看穿它了

Redux 把資料放在 store 中,它是個資料庫,但 Redux 不用常見的 SQL 介面,要開發者自訂指令介面。這介面有簡單的標準,他只接受 Action = {type, payload} 物件的輸入。在傳統的資料庫中,下了 SQL 資料庫就會照指令,來更新資料庫,但在 Redux 中,開發者需要自行寫一個 Reducer 來處理輸入的 Action 指令。和傳統資料庫不同的是,這個 Redux 資料庫變了之後,Redux 會 push 變動了的資料到訂閱者 (一個 Javascript 物件),行為就像是 Baas 服務 (parse, firebase) 常見的 push message。Redux 和傳統關聯式資料庫最大的不同點是,Redux 用 JS 物件或變數來儲存資料;傳統資料庫因為有大量相關的資料,所以用資料表 (data array, data table) 來儲存。這讓 Redux 的狀態樹一直呈現很難視覺化的情況,目前樹狀結構最好的視覺化就是,Browser 的 dev tool 了。如果能把 Redux state 架構轉成 html,也許會有很好的效果也不一定。 另一個選項是 D3.js 的 Simple Tree。

簡單的資料庫列表比較
Redux 和 Firebase 的資料儲存方式很相近,可以很好的一起運用整合。也許進一步把 client 的資料再切為,Server Data 和 View Data 的設定會更好。Server Data will always synced with Firebase.

另外一提,Redux 實際上就只是個資料庫 (Model),只有 input & outpt,哪有什麼 middleware… in the middle of what?Redux-middleware 實際上是一部分的 controller,跟 Redux 無關啊。React 也包含 Controller。畫成圖來表示






Flux 把傳統的 MVC 切成了上行和下行,形成了一個循環資料流,它最大的優點是有 paper 支持的 Single Source of Truth。想像一下 bug 在房間亂跑好抓還是... bug 繞著固定的圈圈跑,bug 繞圈圈跑的話,在原地等 bug 跑過來就抓到了。

總結一下,說穿了 Redux 就是一個啥功能都沒有的資料庫設計規範。也因此,他的文件很長、相關模組很多。

2015年12月6日 星期日

Firebase:前端工程師的神兵利器

Firebase.com 像其他的「後端即服務」( Baas, backend as a service ) 一樣,不過他的 Tutorial 超簡單,你只要會用 node 的 npm 大概就夠了。

Firebase官方超簡短教學,看了這個我就被吸引住了。

React 讓人解決 MVC 中的 View。Firebase 讓人不用建 server、遠端登入,只需要用 web user  interface 就建出以 Json 為格式的即時資料庫、Rest Web API、One command deploy ( firebase deploy )、社交帳號的管理 ( Oauth 介面的 Facebook、Google、Twitter blah blah 的登入管理) ,還有靜態 CDN 資料發佈、Custom domain mapping ( 這個要花一點時間等 DNS Propagate )。

Firebase.com 去年被 Google 買走、Parse.com 前年被 Facebook 買走、Apple 也推出了自家的 CloudKit,這些「後端即服務」的公司,讓你 不用再管 Server & 資料庫。你只需要有整理資料的能力 ( Structure Data ) 和前端設計的能力,就能當全端工程師了 :)

各家都有基本的免費流量,一個月 100 GB ~ 2TB 都有,但一旦升級之後就會變很貴喔 要小心。簡單說,以後 Hackathon 不用找後端工程師了,也不要再傻傻的去 github 找看都看不懂的 Hackathon Starter Kit。

---
真心覺得,Startup 剛開始用 Baas 就好,省 Server 和後端工程師的錢。