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 就是一個啥功能都沒有的資料庫設計規範。也因此,他的文件很長、相關模組很多。
在使用者經驗分層中,每層都是息息相關的,如果哪一層壞了,整個就壞了。所以從上圖我們可以知道:要做好資訊架構,我們必須做好設計研究、對內容有了解、對功能有能力去實作;要展現好的資訊架構,我們必須做好互動、介面、資訊、視覺設計,不然光只有好的架構,使用者經驗不會好。所以... 工作的時間到了。
參考:
1. Eight Principles of Information Architecture, 2010 - Dan Brown
2. Information Architecture 100, 2013 - 長谷川敦士
3. The Elements of User Experience, 2010 - Jesse James Garrett
4. Information Architecture: blueprints for the web, 2009 - Christina Wodtke and Austin Govella
高中的時候,有個留級的朋友問我,你會不會覺得唸這些東西一點用都沒有。書呆子的我,帶著疑惑問:「為什麼會這樣覺得?」但現在過了 15 年,我真的很想問那時候的我,為什麼不會這樣覺得。
工程和管理的訓練是解決問題,而設計師受的訓練是發現真正的問題。
--- from 設計的心理學 by Donald A. Norman
var last = function(xs) {
var sx = reverse(xs);
return first(sx);
}
var last = compose(first, reverse);
last([1,2,3]) //3
另一個例子,chain backwardly
var wordCount = function(str){
var words = split(' ', str);
return length(words);
}
var wordCount = compose(length, split(' '));
wordCount("There is a way to save the world") //8