Do you want a better understanding of Buffer in Node.js? Check this out.
串流平台、串流平台,常聽人這樣形容netfliex 、 spotify ,但一直不明白到底是啥意思,剛好最近在接觸檔案上傳的任務,藉此認識到 stream binary 概念,爬了許多文章,找到這篇,作者用很平近人好懂的方式,解釋 Binary Data 、Buffer 、Stream 的概念,激推
以下紀錄我的理解重點
什麼是 Binary Data ?
To store or represent a piece of data, a computer needs to convert that data to its binary representation
Binary Data 使用Google 翻譯就是 二進位資料,我對 Binary Data 理解是,他是資料的最小型態由許多01組成,每個0、1 都是一個bit ,一如我們在瀏覽器看到12這個數字,但是在電腦理解和處理則是 1100 ,你會發現原來你在畫面上看到12數字,其實是電腦編碼 1100 後的結果,顯示在畫面上.
以上數字只是其中一個舉例,我們日常的檔案如 圖片、影音等其他不同類型的資料.
什麼是 Stream ?
The whole concept is, you have a huge amount of data to process, but you don’t need to wait for all the data to be available before you start processing it.
我的理解是有順序的,把資料從一端送到另一端去,以上引述作者原文,我的理解是,其實為了讓使用體驗更好,使用資料串流的技術,將一份切割成為細塊,然後有順序的遞送到顯示端,顯示端也不需要等到完整資料到齊,可以根據順序,先來先處理,這樣的好處是讓使用者可以節省時間及早操作資源,實際應用如Youtube,載入多少看多少
從生活經驗發想,假如今天來去吃餐廳,點了一份套餐,有湯、沙拉、飲料、主菜,通常在完成點之後,餐廳會先送湯品、沙拉讓你先開始享受,爭取時間處理主菜,等到你吃得差不多了,主菜也吃差不多,剛好可以送上讓你享受,所這樣我可以說,送餐的過程使用了串流的概念,把餐點切割成幾個部分,依序遞送到客戶端,讓客戶節省時間、及早存取資源.
什麼是 Buffer ?
Buffer 中文是緩衝區,作者舉一個例子,我覺得滿貼切的
作者提到,客運站通常會有個設定,就是需要等待車上的乘客都到齊了、發車時刻到了,才會出發,但在過程中乘客可能不會都準時抵達,因此會需要有個等待區,讓顧客依序就位,準備出車,通常是車子上的車位.
所以在這裡等待區的概念就是 buffer ,用於暫存資料,依序等待被處理,乘客就是被切割成小塊的資料,通常資料是暫存在電腦的記憶體中
所以這個上傳檔案的任務有什麼關係?了解了帶來了什麼好處?
最近的任務有需要做轉檔案的任務,在查看doc 時候,發現他是需要先取得檔案的buffer,然後再進行轉檔案,因此理解了這個概念,我可以知道,只要我成功取得buffer 就可以執行後續轉檔案,不需要透過doc範例必須讀取實際檔案