chrome 安裝路徑不讓用戶干預,是一種什麼設計理念?
Windows畢竟不是Linux,還是有盤符的概念的。
Chrome的理念就是,讓絕大多數普通用戶爽。於是它悄悄地隱藏了一些細節,增加了一些「優化」。
這個理念有時候是好事,比如,如果你注意的話,如果你下載一個文件,在你選擇保存路徑的時候,Chrome其實就已經開始下載了,所以你選好路徑點擊保存的時候,下載進度條已經走了一段。
但是對於程序員來說,有時候就不是那麼友好了。
最近碰到一個坑,簡直是被Chrome給坑死了:
我最近在給公司的資料庫引擎寫Workbench,前端Angular4後端KoaJS. 測試的時候發現幾個功能表現得非常詭異,而且這幾個功能都是用長連接實現的。
查下來竟然發現是Chrome對於超過一分鐘的連接,每1分鐘會把那個request重發一次……卧槽,這個request的時間本來就需超過一分鐘,這就造成了request積壓等各種問題……
關鍵是這個愚蠢的優化還沒法禁掉,也沒法改timeout,由於KoaJS的限制,我也沒法給HTTP 100或者推什麼信息。
只能重構,把HTTP request全改非同步response,然後從websocket推結果了。
……都說程序員是控制狂愛造輪子……不受自己控制的部分搞了些自己不知道的事情把自己坑了,費了半天勁發現自己還無能為力,那還不如自己造輪子呢,起碼每個細節都是自己能夠控制的。
有盤符又怎麼樣?一沒有說一個盤符不能跨物理硬碟,二沒有說幾個盤符不能在一個物理硬碟里,三沒有說這個硬碟就非得在你的機箱裡面,四又沒有說一個盤符就不能是另一個盤符的一部分(我沒有說是文件夾)。
我覺得都一樣。
Office不僅不問你要裝到哪個目錄,還不問你要裝32位還是64位。用戶只需要雙擊安裝文件,之後的操作就都不需要用戶參與了,除非更改註冊表。方便是方便,可是有需要的用戶就會被迫更改註冊表,然後又有人問「為什麼Windows這麼繁瑣複雜」了。
所以我還是更喜歡程序能將所有的選項羅列出來。你可以有簡易安裝模式和高級安裝模式來滿足用戶的不同需求嘛。
省事唄。直接程序寫死路徑肯定比提供一個靈活的路徑要省事,節省很多代碼。
允許自定義安裝路徑就會導致自動更新時還需要使用某種方法查詢自己安裝在哪。這需要額外的工作量,是一個額外的功能。然後google一拍腦袋:咱們做的是短平快的輕量級應用,可做可不做的功能一概省略掉了!
當然,從另外一個角度來說,顯然人家google開發者都是土豪唄,不會看得起C盤用SSD,D盤用機械硬碟的窮逼用戶的。
作為我這種,非google目標客戶,表示堅持用Firefox。Chrome 這麼至關重要的東西,不就應該跟系統融為一體么?[Doge]
其實就是簡單能想到的原因:
- 根據「漏斗模型」,步驟越多每一步跳出或出現問題的人數就越多
- 淡化下載取消和錯誤頁面
- 安裝至默認路徑
- 減少可能導致用戶難以理解的辭彙
- 作為用戶,希望瀏覽器能夠儘快安裝,以便可以開始瀏覽
- 通過安裝程序界面的變化(動畫)減輕用戶等待時的焦慮
- 去掉無關緊要的介紹頁面
對於瀏覽器廠商來說,安裝至默認路徑確實減少了很多麻煩,後期升級甚至做文件遷移時默認路徑總是最容易被考慮完全的。
Firefox 55 版本起國際版的在線安裝包(Stub)已經默認不會詢問用戶安裝路徑了,中國版大概會晚幾個版本,但還是會讓用戶選擇是否設置為默認瀏覽器。這種改變需要在安裝時或官網通過一些引導讓用戶知道「改變安裝路徑需要下載完整包」這件事,也是後續我們要完善的。
一切為了簡約。
哦,行行行,你們高貴,我低劣,我不geek,我用360極速就是原罪。
下一個。
NTFS 是可以把分區 mount 到文件夾里的,所以你當 Linux 用也是可以的
說明G社程序員都是土豪,生活在比新聞聯播還幸福的烏托邦世界裡。
哪個告訴他,C盤就一定會有足夠空間給他安裝?
比如chrome特別喜歡自動更新還不讓指定存儲位置,結果就把C盤擠佔滿了。
比如喜歡在線安裝(完整包需要另外下載),誰告訴你PC就一定可以自由的訪問互聯網。
以前微軟的東西特別重,其實都有原因的。比如安裝前會檢查剩餘空間是否足夠。
互聯網公司的產品,又輕又快,不是技術上強很多,而是不必背包袱;相對的,有些場景就被他們直接忽視甚至拋棄了。
最終的理想都是要像 IOS 或 Android 的應用商店一樣,你們用戶只需要挑軟體,付錢,其它的下載和安裝的事情交給系統自己搞定。
我們很多習慣都是從 98/XP 年代帶來的。拿我自己的例子來說,以前一台個人電腦用了6個月到1年,就會因為垃圾/病毒等原因不堪重負而不得不選擇重裝系統。那個時候就學會了三分區,分別用作系統,程序和文件。分三個分區的好處,在重裝系統的時候就會體現出來。格了C盤,其它分區的文件都得以保留。那些不依賴註冊表的程序也可以繼續使用,而不用再裝一次。可見在選擇程序安裝路徑的時候多留個心眼,可以隔離未來重裝系統的風險。
但是現在是 Win10 年代了,系統的穩健性也上升到前所未有的程度。正常使用的電腦再也不用頻繁地重裝了。這樣的情況下,其實連分區都是多餘的事,更何況是選擇程序安裝路徑。
chrome瀏覽器的重要功能之一是autoupdate。通常chrome瀏覽器每六個星期release一個里程碑版本,客戶端通過autoupdate自動更新,更新完成後重啟瀏覽器新版本自動apply。為了支持autoupdate,chrome在每個平台(windows,mac,linux,mobile)都做了不同的定製。由於windows系統的歷史局限性,為了便於autoupdate,chrome避免用戶任意指定安裝目錄。autoupdate這一特性在很大程度上增加了瀏覽器的安全性,同時新的feature可以最快的deploy給所有的用戶。
以下解釋chrome os為何不允許用戶指定安裝分區(非解答該問題):chrome os是linux發行版,它的設計理念是簡單,高速,安全。作者參與過chrome os的開發,對於系統安裝以及啟動的設計有一些理解,下面來簡單介紹下。chrome os自動將系統分區並安裝。出於安全的考慮,內核、linux根目錄,以及用戶數據位於不同的分區。內核以及linux根目錄分區在系統啟動的時候會經過固件驗證(非開發者模式),保證操作系統本身並沒有被病毒以及黑客入侵。如果驗證失敗則啟動失敗。成功啟動之後,內核以及根目錄會以只讀模式載入,從而禁止用戶以及惡意用戶更改任何系統文件。用戶數據分區則會加密啟動,從而保護用戶數據。這些技術細節可以隱藏於用戶體驗,為的是能達成開始提到的三大理念。chrome os試圖從根本上來保護用戶的數據,達到系統的安全,因此引入了複雜的安全設計。雖然說的確應該給用戶選擇,但是絕大部分用戶都會並且應該裝在C盤的。先不說有固態的問題,就算是全機械硬碟裝在C盤也會快一點。那些軟體都裝在其他盤然後C盤就給一點空間的老頑固也該與時俱進改一改觀念了,瀏覽器這種日常使用頻率極高的軟體就應該裝在C盤。谷歌只是幫用戶做了一個正確的選擇,是老頑固們自己有問題,而不是谷歌有問題。
我承認有一些極少數的情況確實需要把瀏覽器裝在其他盤,我也承認給用戶選擇是對的,但是谷歌這麼做沒有問題,只是有更好的方案而已,而且我並不確定是不是「更好的」。Windows也有Symlink啊。等chrome裝好了你把它剪切到別的什麼順眼的地方,然後再symlink鏈回到原位置不就成了么。
正正常常的做法,沒啥設計理念。
瀏覽器這東西安上就能用是最好的理念,關心啥背後發生了什麼,軟體又不是神仙得供著。
不放c盤你重裝了之後還不是得折騰一番。
有啥區別。
就是讓你選了路徑,有啥用,緩存之類的各種文件夾不還是都在c盤么。
就一瀏覽器,打開就能瀏覽網頁的主,還要用戶去學各種各樣的操作並且給出各種各樣的bug來體現高大上嗎?
正正常常做個軟體還被人奇怪。
另外,安好以後你直接把文件夾拷到你想放的任何地方,打開就能用,干預啥,你愛放哪放哪。
本身這是一件方便用戶好事兒, 但是只有Chrome或者Firefox等為數不多的軟體在這麼做, 是因為在一個軟體的可靠性上, Chrome, 或者說背後的Google是值得信任的. 所以大家暫時不會對它這種行為有什麼反對.
要是Google跟百度騰訊等直接問都不問就給C盤裝一堆全家桶, 不僅自動下載還自動安裝, 你看燈塔國人民能不能告到他破產. 其實就算是在現在的國內, 直接靜默安裝+一堆全家桶的行為也不是那些大廠敢挑戰的底線, 小廠就更不要說了. 其它國家的軟體同理. 這算是用戶的一個底線, 一般組織不敢輕易挑戰.也就是一些作者都不知道的軟體有膽量這麼做. 所以但凡有名有姓的企業還是依然採取讓用戶選擇自由安裝的可能, 然後在用戶不小心手滑的時候不小心把全家桶一起裝了, 這樣做倒是可以獲利更多一些.
哪有啥理念,就是懶。Google的很多做法,要是國內公司,你們肯定大喊流氓,換了Google,你們還得分析人家是基於什麼最先進最人性化的理念。