第112篇
極客時間《許式偉的架構(gòu)課》課程筆記。
跨平臺桌面程序開發(fā)
會導(dǎo)致桌面開發(fā)產(chǎn)生巨大差異性的兩個關(guān)鍵因素
1耗绿、操作系統(tǒng)
- 不同的操作系統(tǒng)抽象的界面程序框架并不一致,不一致必然導(dǎo)致開發(fā)工作量的增加
- 放棄某個操作系統(tǒng)鹅心,就意味著放棄某個流量入口锅移,也就意味著放棄這些用戶
2熔掺、屏幕尺寸
- 相同操作系統(tǒng)在不同尺寸屏幕上的交互范式也會存在很大差異性
操作系統(tǒng)
PC 本地:Windows,macOS非剃,Linux 等等瞬女;
PC Web:Chrome,Safari努潘,F(xiàn)ireFox 等等;
Mobile 本地:Android坤学,iOS 等等疯坤;
Mobile Web:小程序,PWA 等等
屏幕尺寸
大屏:PC深浮、筆記本压怠,Pad 等等;
中屏:手機(jī)飞苇;
小屏:手表菌瘫。
跨平臺解決方案
Web開發(fā)
B/S 架構(gòu)的復(fù)雜性
- 多用戶:用戶數(shù)據(jù)不再保存在client(Browser)端,而是存在server端
- 更高的數(shù)據(jù)可靠性要求:數(shù)據(jù)在server端之后布卡,數(shù)據(jù)的可靠性由軟件廠商負(fù)責(zé)
- 更多可能的分工安排:web應(yīng)用兩大流派雨让,胖前端和胖后端
客戶端和服務(wù)端
- 客戶端也就是瀏覽器端,瀏覽器界面框架沒有窗口系統(tǒng)忿等,通過HTML+CSS描述界面
- HTML+CSS可以理解為viewmodel層栖忠,因為 HTML DOM 從數(shù)據(jù)角度完整描述了界面的樣子, View 層已經(jīng)被瀏覽器自己實現(xiàn)了
- MVC框架在瀏覽器下變成了MVMP模式贸街,全稱為 “Model-ViewModel-Presenter”
- 事件響應(yīng)過程:瀏覽器的 View 收到交互事件庵寞,事件委托(delegate)給 ViewModel 層,并且通過 HTML DOM 暴露出來薛匪。通過修改 HTML 元素的事件響應(yīng)屬性捐川,一般名字叫 onXXX(比如 onclick),可以獲得事件的響應(yīng)機(jī)會
- Model 層的數(shù)據(jù)變化(DataChanged)事件:在標(biāo)準(zhǔn)的 MVC 模式中逸尖,Model 層的數(shù)據(jù)變化是通知到 View 層古沥,但在瀏覽器下 DataChanged 事件由 Presenter 層更新界面(Update View),操作的是 ViewModel
- Server 端最底層的是一個多租戶的 Model 層(Multi-User Model)冷溶,它實現(xiàn)自動化(Automation)所需的 API
- Multi-User Model 層之上是 Web 層渐白。Web 層基于會話(Session-based),因為它負(fù)責(zé)用戶的接入逞频,每個用戶登錄后纯衍,會形成一個個會話(Session)
- Web 層又分為 Model 層和 ViewModel 層。 也叫Session-based Model和 Session-based ViewModel
- 在服務(wù)端苗胀,Session-based Model 和 Session-based ViewModel 并不發(fā)生直接關(guān)聯(lián)襟诸,它們通過自己網(wǎng)絡(luò)遙控瀏覽器這一側(cè)的 Model 和 ViewModel瓦堵,從而響應(yīng)用戶的交互
- Session-based Model 是 Multi-User Model 層的轉(zhuǎn)譯。把多租戶的 API 轉(zhuǎn)譯成單租戶的場景
- Session-based ViewModel 是一些 HTML+JavaScript+CSS 文件歌亲,是真正的 Web 業(yè)務(wù)入口