日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

想实现多人协作的“在线Excel”?真没那么简单

發(fā)布時(shí)間:2024/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 想实现多人协作的“在线Excel”?真没那么简单 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文由葡萄城技術(shù)團(tuán)隊(duì)原創(chuàng)并首發(fā)

轉(zhuǎn)載請(qǐng)注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。

?

Excel是我們辦公中常用的工具 ,它幾乎能為我們處理大部分?jǐn)?shù)據(jù),友好的交互界面、豐富的公式函數(shù)和易于上手的圖表為我們?cè)跀?shù)據(jù)統(tǒng)計(jì)方面提供了不小的幫助,但經(jīng)過一段時(shí)期運(yùn)行,就會(huì)出現(xiàn)下面的情況:

?

?

?

這樣多分枝的混亂狀況就會(huì)難以保證文檔的安全性及權(quán)威性。

于是聰明的小伙伴想到了一個(gè)解決方案,共享出一份Excel文檔,根據(jù)人員的職級(jí)不同,設(shè)置僅可只讀和編輯的權(quán)限,同時(shí)根據(jù)為不同人制定不同規(guī)則,例如:張某每天十點(diǎn)編輯,王某每天十一點(diǎn)編輯的方式來解決沖突的問題。這種方式很聰明,從流程上解決了多副本的問題,但不能同時(shí)編輯的問題依然沒有被解決,如果一個(gè)部門的人足夠多,這樣分時(shí)的策略可能需要花一天時(shí)間才能完成一份Excel的編輯。

所以多人協(xié)作在線文檔的需求也變得越發(fā)變得強(qiáng)烈,因?yàn)樵谌粘9ぷ髦?#xff0c;與團(tuán)隊(duì)的其他人進(jìn)行文檔協(xié)作是一種再常見不過的工作方式。由于工作分工、工作進(jìn)展的不同,團(tuán)隊(duì)內(nèi)部的信息往往需要及時(shí)同步,然而伴隨著團(tuán)隊(duì)經(jīng)營規(guī)模的不斷擴(kuò)大,在線協(xié)同、多人協(xié)作,以及軟件項(xiàng)目管理等問題將會(huì)接踵而至,成為制約企業(yè)高效發(fā)展的瓶頸。

而這些問題,通常表現(xiàn)為:

  • 跨部門、地區(qū)溝通協(xié)作的不便
  • 過度依賴文件、文件夾共享的形式,不能確保文檔的安全性
  • 沒法紀(jì)錄和體現(xiàn)職工對(duì)文本文檔的意見和評(píng)價(jià)
  • 文檔記錄發(fā)生變更時(shí),無法及時(shí)通知到相關(guān)部門和員工
  • 文檔無法在線協(xié)同編輯,缺失必要的流程管控
  • 多人共同編輯一個(gè)文檔,無法留存修改記錄和歷史版本
  • ?

    針對(duì)上述問題,現(xiàn)在在市面上,已經(jīng)有了很多這類多人協(xié)作的工具,例如:國外的Google Docs、Office365,及國內(nèi)的騰訊文檔、石墨文檔、有道云協(xié)作等。

    因?yàn)檫@篇文章我們的目的是想向大家從企業(yè)IT管理者的角度出發(fā)深入研究協(xié)同辦公系統(tǒng)的形式、基礎(chǔ)和難點(diǎn)等實(shí)現(xiàn)原理,所以成品軟件我們?cè)谶@不做過多贅述。那我們正式開始吧。

    多人協(xié)作的形式:歷史與發(fā)展

    多人協(xié)作的歷史十分悠久,起源于靜態(tài)的多人協(xié)作模式,即每個(gè)人先完成自己的工作,然后再進(jìn)行匯總。

    多人協(xié)作的初期:靜態(tài)協(xié)作

    • 遞增式協(xié)作
      • 郵件:你來我往
      • 論壇:跟帖回復(fù)
    • 獨(dú)占式協(xié)作
      • 文檔傳遞
      • 微軟VSS
    • 合并式協(xié)作
      • SVN
      • Git
      • diff,patch,merge指令

    ?

    常見的靜態(tài)多人協(xié)作方式

    多人協(xié)作的發(fā)展期:從靜態(tài)到動(dòng)態(tài)

    • 靜態(tài)協(xié)作的比喻
      • 拼接畫
      • 積木
    • 靜態(tài)協(xié)作的特點(diǎn)
      • 多版本
      • 塊操作
      • 有協(xié)作動(dòng)作
    • 靜態(tài)協(xié)作的缺點(diǎn)
      • 版本碎片化
      • 缺乏時(shí)效性
      • 協(xié)作動(dòng)作成本高

    靜態(tài)多人協(xié)作的成本,會(huì)隨著加入人數(shù)和項(xiàng)目的復(fù)雜度呈幾何級(jí)數(shù)的增長。因此,對(duì)于企業(yè)來說,急需一種無協(xié)作動(dòng)作、唯一版本、版本可控的無協(xié)作成本模式,即動(dòng)態(tài)多人協(xié)作模式。

    多人協(xié)作的蓬勃期:動(dòng)態(tài)

    • 動(dòng)態(tài)協(xié)作的比喻
      • 一起畫黑板
    • 動(dòng)態(tài)協(xié)作的特點(diǎn)
      • 唯一版本
      • 原子操作
      • 無協(xié)作動(dòng)作
    • 動(dòng)態(tài)協(xié)作的優(yōu)點(diǎn)
      • 版本可控
      • 實(shí)時(shí)
      • 無協(xié)作成本
    • 典型產(chǎn)品
      • Office Online
      • 石墨
      • OnlyOffice

    多人協(xié)作的基礎(chǔ):原理與架構(gòu)

    任何信息,無論其是什么展現(xiàn)形式,如果要做到多人實(shí)時(shí)編輯與展現(xiàn),只需要實(shí)現(xiàn)以下三步而已:

  • 操作化
  • 可傳輸
  • 可還原
  • 舉例說明多人協(xié)作的實(shí)現(xiàn)方式

    操作化

    操作化,指任何信息都可以轉(zhuǎn)換為一組操作的集合。很容易理解,但它仍有不少值得思考的點(diǎn):

    • 分割與組合
      • 如何保證:信息的所有變化都可以分解為操作的集合?反之,操作如何覆蓋出信息的所有變化?
      • 分割的顆粒度如何決定?
        • 粗一點(diǎn)?
        • 細(xì)一點(diǎn)?
        • 如何兼顧解釋性與擴(kuò)展性?
    • 絕對(duì)操作與相對(duì)操作
      • 絕對(duì)操作
        • 針孔打印機(jī)的完美世界
        • 打印機(jī)時(shí)代的編輯噩夢(mèng)
      • 相對(duì)操作
        • 4K電視不是夢(mèng)
        • 為什么數(shù)字電視穩(wěn)定性不如模擬電視
    • 絕對(duì)操作與相對(duì)操作比喻:時(shí)間與空間的互換
  • 可傳輸

    可傳輸,就是指操作有辦法通過網(wǎng)絡(luò)傳輸給其他終端。實(shí)現(xiàn)動(dòng)態(tài)多人協(xié)作,需要考慮以下幾點(diǎn):

    • 傳輸內(nèi)容
      • 原始文本
        • 清晰
        • 冗余
      • 壓縮技術(shù)
        • 邏輯壓縮
        • 協(xié)議壓縮
        • 手動(dòng)壓縮
    • 網(wǎng)絡(luò)協(xié)議
      • Socket
        • TCP
        • UDP
      • HTTP
      • WebSocket
    • QoS(Quality of Service,服務(wù)質(zhì)量)
      • 快速失敗

      • 自動(dòng)回滾

      • 自動(dòng)重連

      • 自動(dòng)恢復(fù)

    可還原

    可還原,就是指接收到來自網(wǎng)絡(luò)的操作消息后,可以在本地完全一致地再次執(zhí)行該操作。可還原包括了:

  • 絕對(duì)操作的還原
    • 控制體積
    • 合理的提示
  • 相對(duì)操作的還原
    • 嚴(yán)格的順序性
    • 從源頭保障順序性
    • 順序性的補(bǔ)救
  • 本地操作的還原
    • 過濾收到的操作集合
    • 從源頭細(xì)化操作顆粒
    • 本地保存本地執(zhí)行
  • 無入侵的還原
    • 定義入侵
    • 排除入侵
    • 千人千面
  • 多人協(xié)作的難點(diǎn):亂序與沖突

    亂序

    亂序的表現(xiàn)形式如下圖,小明在客戶端執(zhí)行了一系列操作,傳遞到服務(wù)器時(shí)發(fā)生亂序,導(dǎo)致小花看到了截然不同的信息:

    ?

    ?

    ?

    為了解決亂序問題,可以嘗試以下方法:

    1. 用性能換取順序正確——基于協(xié)議

    ?

    ?

    ?

    2.?用性能換取順序正確——基于回執(zhí)

    ?

    ?

    ?

    兩種方法的優(yōu)缺點(diǎn)

  • 基于協(xié)議
    • 優(yōu)點(diǎn)
      • 可靠,歷經(jīng)考驗(yàn)
      • 簡單,無需開發(fā)
    • 缺點(diǎn)
      • 資源開銷高
      • 必須整套使用
    • 優(yōu)點(diǎn)
      • 自主可控,按需開發(fā)
      • 資源開銷可控
    • 缺點(diǎn)
      • 需要自己投入開發(fā)
      • 應(yīng)用層邏輯控制使得網(wǎng)絡(luò)復(fù)雜度向外蔓延
      • 復(fù)雜度帶來維護(hù)成本
  • 基于回執(zhí)
  • ?

    基于亂序處理方法的總結(jié)

    網(wǎng)絡(luò)不是絕對(duì)可靠的,為了實(shí)現(xiàn)相對(duì)可靠,需要付出一定的代價(jià),企業(yè)需要考慮的是:如何衡量所付出的代價(jià)與產(chǎn)出成正比。

    沖突

    比亂序更高級(jí)的一種表現(xiàn)形式,存在多向、多維度等問題。

    ?

    ?

    ?

    如何避免錯(cuò)誤的蔓延?

    原則:任何一次不一致,都會(huì)導(dǎo)致后續(xù)的操作基于錯(cuò)誤的信息進(jìn)行,從而不斷擴(kuò)大錯(cuò)誤,造成無法收拾的結(jié)果。因此,不一致是不能被容忍的。

    解決辦法:

  • 嚴(yán)格一致性:獨(dú)占
  • 最終一致性:檢查與修復(fù)
  • 非技術(shù)手段:設(shè)計(jì)與提示
  • 嚴(yán)格的一致性

    獨(dú)占就是同一時(shí)間同一范圍只能由一人操作。

  • 范圍
  • 整個(gè)表格,類似VSS
  • 工作表
  • 單元格范圍
  • 排他性
  • 獨(dú)占沖突時(shí),必有一方被彈開
  • 直到占有者解開,不然無法占用
  • 占用前無法操作
  • 原理和鎖基本一致
  • 優(yōu)點(diǎn)
  • 可以確保嚴(yán)格一致性,不會(huì)產(chǎn)生多版本的錯(cuò)誤累積
  • 比起修復(fù)恢復(fù)這類彌補(bǔ)手段,一開始就不出錯(cuò)的成本最低
  • 邏輯清楚簡單,開發(fā)維護(hù)成本低
  • 缺點(diǎn)
  • 靜態(tài)協(xié)作的味道
  • 獨(dú)占動(dòng)作嚴(yán)重影響體驗(yàn)
  • 大幅降低協(xié)作效率
  • 需對(duì)表格實(shí)現(xiàn)的 功能
  • 鎖定工作表
  • 鎖定單元格
  • 最終一致性

    基于唯一正確順序,察覺客戶端的錯(cuò)誤,撤銷錯(cuò)誤操作后重新執(zhí)行正確的操作。

  • 唯一正確
  • 服務(wù)器到達(dá)順序
  • 協(xié)作邊界分流
  • P2P+選舉算法
  • 察覺錯(cuò)誤
  • 服務(wù)器回執(zhí)id
  • 服務(wù)器回執(zhí)操作,MS
  • 撤銷錯(cuò)誤
  • 撤銷到錯(cuò)誤發(fā)生前的一步操作的結(jié)果
  • 保存副本實(shí)現(xiàn)撤銷功能
  • 利用操作版本快照
  • 重新執(zhí)行
  • 操作隊(duì)列需保存
  • 區(qū)分好無感知執(zhí)行與顯式執(zhí)行
  • ?

    針對(duì)多人協(xié)作難點(diǎn)的總結(jié)

    如何實(shí)現(xiàn)Excel相關(guān)功能是需要開發(fā)人員需要花時(shí)間去研究的,另外為了滿足需求,適配多設(shè)備和平臺(tái)的兼容性也非常重要。

    另外,多人協(xié)作表格的本質(zhì)還具有如下本質(zhì)和特點(diǎn):

    • ?Server – Clients 中心系統(tǒng),類似數(shù)值敏感的小型網(wǎng)游
    • 任何這類系統(tǒng)都是在體驗(yàn)和正確性中尋求平衡
    • 表格的數(shù)值敏感性高于網(wǎng)游,數(shù)據(jù)操作和存儲(chǔ)的挑戰(zhàn)更大
    • 表格的計(jì)算復(fù)雜度更高,尤其涉及復(fù)雜公式嵌套與全量統(tǒng)計(jì)篩選
    • Web存在天花板,所以復(fù)雜的頁游并不多見,端游較多

    ?

    最后,假如您想了解更多如何實(shí)現(xiàn)多人協(xié)作平臺(tái)相關(guān)的內(nèi)容,歡迎參加2019年12月18日(周三) 14點(diǎn)由上海佳軟CTO帶來的一場線上直播:https://live.vhall.com/483759540,相信屆時(shí)我們都會(huì)受益良多的。

    總結(jié)

    以上是生活随笔為你收集整理的想实现多人协作的“在线Excel”?真没那么简单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。