「開發者必讀」為什麼你的"開發速度"和"產品性能"都比不過競品?

2020-12-06 艾瑞網

物理學家牛頓曾經說過:If I have seen further, it is by standing on the shoulders of giants。

荀子在《勸學》中也說過:假輿馬者,非利足也,而致千裡;假舟楫者,非能水也,而絕江河。君子生非異也,善假於物也。

他們所表達的意思其實是一致的,很多事情僅僅靠自己的力量是難以解決的,但如果我們懂得利用工具就能夠輕鬆完成。

在項目開發中也是如此,開發者們也要懂得"善假於物"和"站在巨人的肩膀上",合理的使用第三方工具,一樣可以實現事半功倍的效果。

隨著移動網際網路的發展,大部分中小企業比拼的不僅僅是產品功能,而是產品交付速度、質量、性能以及針對特定場景的定製能力。因此,對於底層技術和架構而言,完全可以藉助垂直領域的第三方工具,提高開發速度,並得到更好的產品性能。

以企業最普遍的場景 —— 表格為例,與大家探討,第三方工具是如何幫助開發人員解放生產力,又是如何幫助他們優化產品性能和用戶體驗,從而保證為最終用戶提供更具價值和更高質量的產品。

一、前言

大家應該都知道,很多企業的 IT 業務是從一張表格開始的。團隊溝通中的信息共享大量依賴於表格,文檔、報告、憑證以及基礎數據的匯總分析,大部分都需要依靠表格的形式來進行決策的支持。

而隨著企業數位化轉型的迫切需要,遠程辦公模式已正式開啟,純在線的表格產品儼然成為了很多企業必備的工具之一。但綜合性的協同辦公產品大部分將更多的精力投入在了文檔工具的優化當中,對於表格場景並沒有投入足夠多的時間與精力;另一方面表格產品看似很簡單,但背後其實涉及到很多的技術實現,以及產品團隊對於表格場景的熟悉度處理,目前的泛用性在線表格工具都很難具備相應的經驗與能力。

因此,如果想要在企業 OA 系統中實現類似 Excel 的在線表格分析功能,為了避免耗費大量的開發精力卻只得到一個"雞肋產品",最好的辦法就是接入更專業的前端表格控制項作為輔助。雖然,這類控制項數量眾多,但經過我的調查研究,能把"表格技術"這一細分場景發揮到極致的產品屈指可數。

究其原因,這些產品大多未攻克以下四個技術難點。

二、表格控制項的四大技術難點

B/S 作為 Web 興起之後的一種網絡結構模式,統一了客戶端,將系統功能實現的核心部分集中到伺服器上。

但隨之而來的問題是多瀏覽器差異、瀏覽器沙箱機制、內存訪問受限、客戶端性能低下等。作為數據載體的表格,最直接的影響就是經常會被"吐槽"卡頓,UI 界面"假死",界面操作不流暢等。

引起這些問題的癥結在於瀏覽器渲染引擎的基礎原理:當界面元素越多,瀏覽器的渲染時間會顯著增長,內存消耗會越大。這對於強計算邏輯的前端表格控制項來說,無疑是棘手的難題。

由此可見,開發一款前端表格控制項需要攻克這四個技術難點:性能、內存消耗、可靠性和操作體驗。

1、性能

現代應用程式為了追求更好的用戶體驗,需要對 UI 界面反覆優化,而頻繁的修改界面 UI 元素,將引發多次瀏覽器重繪。在這個過程中,UI 元素的創建及修改,會激活內部垃圾回收機制,影響數據處理效率。

除此之外,前端開發環境的多樣化、各類高 DPI 設備、手機、平板、4K 顯示屏、企業大屏等,這些無不加重了企業應用系統的處理負擔。

為此,業內目前最佳的解決方案是使用 Canvas 繪製模型。

Canvas 主要用於在網頁上繪製圖像,可以將其理解為畫布,開發者們在這個畫布上構建想要的效果。它與在瀏覽器中運行的其他應用有所不同,由於 Canvas 只在屏幕上特定的區域執行並顯示效果,可以說它的功能是獨佔的,因此不太會受到頁面上其他內容的影響,反之也是如此。

作為一種不依賴於瀏覽器解析的方式,使用 Canvas 繪製模型不僅可以解決性能問題,和 DOM 相比還提供了不失真的頁面列印,做到所見即所得。

2、內存消耗

隨著前端工程化的高速發展,各種前端工程腳手架日漸成熟,WebComponent 標準被提上日程,企業開始由 C/S 向 B/S 應用轉型。為了優化內存,這就要求前端開發者,需要面對單線程處理複雜業務數據的挑戰。

對於表格控制項這類鬆散的文檔結構,業內目前的最佳實踐是採用稀疏矩陣存儲模型(Sparse Array)來保存數據。

稀疏矩陣在機器學習方面是很常見的。由於稀疏矩陣含有許多數值為零的元素,可以用來壓縮矩陣對象的內存臺面空間,或者加速多數機器學習程序。

而在表格場景中,相較於傳統的鏈式存儲或數組存儲,稀疏矩陣存儲構建了基於行索引的數據字典,在鬆散布局的表格數據中,稀疏矩陣只會對非空數據進行存儲,而不需要對空數據開闢額外的內存空間。

這種特殊的存儲策略,不僅節省了內存消耗,也使得數據片段化變得更加容易。藉助這個特性,開發者甚至可以隨時替換或恢復整個存儲結構中的任何一個級別的節點,實現高效的數據回滾和數據恢復。

3、可靠性

傳統前端表格應用計算的特點,是沒有穩定的框架計算器、語言計算精度差、表格計算依賴複雜。

隨著企業數字系統應用的越來越深入,業務計算方式也變的越來越複雜,靈活度要求也越來越高。為了解決這個問題,必須了解計算引擎的計算流程後進行相應的可靠性優化。



如圖所示是計算引擎在構建計算依賴鏈時的一個簡單的流程圖。表達式樹從計算存儲模型中找到對應的根節點以及根節點標識,隨後遍歷整個表達式樹,找出其他依賴標識,構建依賴關係。

當整個依賴鏈中的任意節點發生變化時,如果沿著這條依賴鏈,可以查找依賴節點並進行重算,那麼在這個過程中,沒有在依賴鏈中的節點是不會發生重算計算的,也就是我們所說的沒有髒值運算。

進行這樣的機制優化後,可以大幅提升表格產品的運算速度,從而提供更好的使用體驗和更加精準的運算結果。

4、操作體驗

隨著業務場景的豐富,表格系統需要承載更多的功能。例如觸摸支持、富文本支持、前端 Excel 導入導出、JSON 存儲等。

我們以觸摸支持為例,隨著大屏時代的來臨,觸摸操作成為了一項愈發普遍的使用場景。對於觸摸來說,很多時候最難的並不是技術實現,而是對於場景的理解。用手機操作技術文檔,單擊單元格時,對應的位置是放大還是不放大?

對於不同的場景,用戶需要的反饋是不同的,對於一款優秀的前端表格控制項來說,這的確是技術難點,但卻值得每一位開發者深入思考,並積極尋求優化方案。

在一切以用戶體驗為中心的網際網路時代,任何開發活動都應該以改善用戶體驗為終極目標,產品優化當然也不例外,並且,產品優化最忌陷入純粹為了追求技術極限而優化的境地。

而上述四個技術難點,在我和葡萄城的 SpreadJS 產品技術團隊詳細溝通後,也得到了充分的驗證,因為,這同樣是他們的客戶在實際應用場景中最常面臨的問題。

SpreadJS 純前端表格控制項,由業內最早進行表格產品研發的技術團隊——葡萄城推出,如今已完美復刻了 Excel 的 UI 布局、數據透視表、450多種計算公式和182種形狀,只要是涉及到 Excel 文件上信息化系統的場景,他們的產品功能都已經覆蓋到了。



而用戶之所以敢於用 SpreadJS 替代傳統 Excel,正是基於其產品層面已經完成了大量的優化和迭代任務。據我了解,SpreadJS 在性能優化方面除了引入了 Canvas 繪製模型,還率先使用了雙緩存畫布技術,從而解決了常見的閃屏問題;此外還提供了支撐複雜邏輯運算的計算引擎,可以幫助開發者打造一個長久穩定且可靠的應用系統。

想要在產品層面進行優化,一方面需要"吃透"表格產品的底層技術邏輯,另一方面需要有大量實際的場景應用實踐,這恰恰想要做獨立開發的企業或者泛用性工具平臺所不具備的,而藉助 SpreadJS 這類專注於垂直領域的表格控制項工具,則可以達到事半功倍的效果。

三、結語

正如我們前面所說,開發一款前端表格控制項最難的不是技術,還有對表格產品的熟悉程度。因為純技術的問題,在很多時候是難不住開發者的,靠時間與精力的投入總能彌補。然而,一款真正優秀的產品最重要的一點,則是對於應用場景,以及用戶使用體驗的細節把控。

就像在表格類工具中有一個算投資回報率的公式,幾乎沒有人知道這個公式用 Excel、Google Doc 算出來的結果是不一致的。而這個小到會被所有人忽略的細節,也是 SpreadJS 的研發團隊告訴我的。

隨著社會的發展,市場需要更靈活、效率更高的開發者解決方案,企業也要同時追求"開發速度"與"產品性能",這在傳統的開發思路中是不可兼得的,但如果做到善假於物,藉助第三方工具平臺則可以完全實現。

付出一些成本換來更大的發展機會與空間,誰又能說不是一筆好買賣?

如需了解更多文中提到的 SpreadJS 產品信息,可訪問產品官網了解更多,https://www.grapecity.com.cn/developer/spreadjs 。


相關焦點

  • 「競品分析」的理念、流程、方法、工具
    本文將對競品分析的「道、法、術、器」(即競品分析的理念、流程、方法、工具)做系統性介紹,可以為你解答以下關鍵問題:競品分析與市場分析有什麼區別?為什麼要做競品分析?市場分析、競品分析、產品分析、產品體驗分析在「分析目的」、「產品數量」、「分析維度」三個方面都是有所區別的,是一個從宏觀到微觀的過程。1、市場分析以尋找市場機會,幫助產品定位為目標,較宏觀,對具體的產品沒有深入分析,產品數量較多。
  • 新品叫板Quest 2,愛奇藝智能的底牌「追光」與「哥倫布計劃」是什麼?
    該方案採用完全自主研發模式,整個過程充滿艱辛和坎坷,在經歷了25個月的連續攻堅後,「追光」方案成功實現了毫米級精準定位、毫秒級的延時速度等苛刻的技術指標,並將其應用於奇遇3追光手柄的落地。 值得一提的是,「追光」還加入了手勢的追蹤技術,能夠以300mW的功耗實現30FPS對2種常用手勢和16種指令的識別,可同時追蹤21個關鍵點和26個自由度,並保證毫米級的識別精度和毫秒級的識別延遲。
  • 2020,穿山甲要幫遊戲開發者重新定義「變現」
    在業務的大幅增長之下,穿山甲宣布品牌升級,定位「全球開發者成長平臺」。我在此次活動中,重點聽了主辦方在遊戲分會場中的分享。穿山甲的海外遊戲商務負責人鍾樂揭示了另一個核心數據:去年8月到今年8月,穿山甲給遊戲開發者的分成提升了230%。我相信,開發者能從廣告平臺這裡實現收入增長,一定有「宅經濟」的助推。不過,穿山甲對此則有另一種觀察角度:將挑戰轉變為機遇。
  • 百度地圖、高德地圖都用POI吸引你,不過它到底是什麼?
    本文作者將簡單地聊聊自己對於地圖產品中POI的了解和看法。作為一個標準的路痴,以前信奉的一句話是「地圖長在嘴巴上」,到一個不熟悉的地方,多問幾個人,總能到達目的地。後來,隨著智能機的普及與地圖產品的完善,更傾向於去地圖軟體中查找想要去的地方。畢竟大多數人掌握的信息都沒有地圖產品全面。
  • 2020 年了,為什麼還有人用愛發電,做不賺錢的工具型小程序
    今天的主角——工具小程序「CityOnRail」就是其中之一,它在性能上有出色的地方,但卻並不是成功變現的那一波。是什麼樣的小程序,能讓開發者廣下「英雄帖」?「CityOnRail」是一個地鐵小程序,中國有地鐵的 37 個城市都在這個小程序上有自己的地鐵線路圖。
  • 英偉達「黃氏定律」:AI晶片性能每年翻倍|硬核時間
    進入 AI 時代,算法和模型的重要性越來越高。比起解決簡單問題的速度,如何讓機器融入這個世界,成為更關鍵的命題。汽車行業的絕對熱點——自動駕駛,就是人工智慧的一大考驗。如今的汽車行業,英偉達儼然成為了博世、大陸一般的供應鏈巨頭。超越英特爾成為「全球最聰明公司(市值最高的晶片設計公司)」之後,英偉達在「為一切裝上大腦」的道路上越跑越快。
  • 影響汽車銷量的因素都有哪些?「漏鬥模型」解析汽車購買決策
    為什麼很多汽車品牌很好、性能很好銷量卻不理想?影響汽車銷量的因素到底有哪些?為了更加全方位有條理性的分析這個問題,我們可以用「汽車購買決策的漏鬥圖」來一步步分析。
  • 想做好產品功能,還有個「親親原則」?
    一、避免功能蔓延 功能蔓延的缺點 大多時候,不斷向產品中加入新功能,不僅會導致成本增加,還無法按計劃藍圖完成設計。如果出現這個情況,你就惹「功能蔓延」上身了。 新增功能,其實並不難,特別是在軟體或網頁開發過程中。
  • 「大眾點評點餐」小程序開發經驗07:發布與推廣
    文|李超李超,美團點評前端開發工程,2年工作經驗,主要負責「點評點餐」web版、「點評點餐」微信小程序開發。知曉程序(微信號zxcx0101)分享的「大眾點評小程序開發經驗」系列文章,都在介紹如何開發微信小程序。在這篇文章裡,我們主要介紹發布、運維和推廣的細節,讓大家對小程序開發的整體流程有更全面的認識。
  • 手把手代練競品分析(上)
    編輯導讀:現在競品分析除了是產品經理和互動設計的基本要求技能之外,設計師也需要掌握競品分析。因為只有把相關對標產品都了解透徹,把用戶了解透徹,設計才能站在給商業賦能的高度去更好的包裝產品。本文作者圍繞競品分析展開了深入分析,希望對你有幫助。
  • 「創作開運禮」美系豪華汽車品牌:林肯緣何鬥不過凱迪拉克?
    強勁性能後輪驅動大馬力後驅車是美系車的「標籤」,因為這一車系的量產車特點非常突出,那就是幾乎不考慮燃油經濟性,而是純粹的追求駕駛樂趣。雖然這種特徵隨著雙積分的壓力也在逐漸轉變,但相比同級競品仍然能凸顯出這一特點,比如凱迪拉克CT5/CT6。
  • 從「帶屏音箱」到「智能屏」,小度在家的兩年進化史
    最新發布的旗艦級產品小度在家智能屏 X8,重新定義了「帶屏音箱」,並開啟了「智能屏」時代。2018 年 3 月發布的第一代帶屏音箱——小度在家,由李彥宏親自站臺,並以「百倍易用」來形容它的產品賣點。彼時,中國市場從未有過此類產品。而屏幕和音箱的創新結合,讓小度在家和小度助手(DuerOS)收穫了不少殊榮,包括 CES ASIA 2018 最佳智能家居產品獎、2018 德國 IF 設計大獎、2018 中國設計紅星獎等。
  • 蘋果減稅,是「大發善心」還是「另有所圖」?
    中小開發者的「蘋果稅」降了。11 月 18 日,蘋果宣布針對 App Store 推出一項新政策,決定為中小開發者,免除一半的「蘋果稅」。所有在 App Store 上年銷售額不超過 100 萬美元的開發者,都可以申請這一「優待」,蘋果將只抽取收入的 15% 作為佣金,而不是之前的 30%。
  • 小米、OPPO等十大手機廠商聯手的「快應用」,為什麼註定會失敗?
    快應用聯盟中最活躍的小米在 11 月 28 日公布了一個數字:小米快應用的註冊開發者終於突破了 1 萬,而小米是快應用聯盟中最活躍,用力最多的成員。另外,不管在媒體曝光、投資人關注度還是用戶認知上,快應用這個看上去像含著金湯匙出生的「孩子」,都無法和小程序相提並論。
  • 自己動手「焊」鍵盤,使用Python編寫,一鍵放連招不在話下
    從此以後,「窮苦玩家」也能在 MOBA 遊戲裡一鍵放連招了,不知這樣算不算硬體外掛?「氪金玩家」請出門右轉購買宏編程鍵盤。近日,一位中國開發者在 GitHub 上開源了一個帶有 USB 和藍牙的手工「焊」接 Python 鍵盤的代碼。
  • 產品經理的福音?亞馬遜推出Honeycode,零代碼即可開發軟體
    「我們打造 Honeycode 的初衷是讓業務人員、分析師、項目經理等成員輕鬆地創建一個定製應用程式,無需編寫任何代碼就能解決問題。電子表格界面是個很好的接入方式,因為大部分人都足夠熟悉。」許多低代碼 / 無代碼工具也具備允許開發人員「逃避代碼」的功能,但短暫的逃避代碼不是最終目的所在。
  • B端產品如何做競品分析?
    一般的技術實力,從三個方面了解:影響用戶體驗的技術,例如:H5混合式開發, 對方的頁面響應速度非常快,但佔用資源少;技術專利,了解對方專利技術有哪些,都是屬於哪一方面。比如技術性專利,很有含金量,但是外觀性專利則含金量不足;技術門檻,了解技術門檻可以更加明確,如果自己要進入對方領域,難度有多少。
  • 這個小團隊「神作」頻出的寶藏品類,可能不再香了
    可這都是老黃曆了。在我看來,就算是在獨立遊戲領域裡,解謎類型的風頭也已經過去了,開發者難以在相同的賽道裡重現過去同等規模的成績。百萬級別的單機產品越發稀有,近幾年達成這等銷量的解謎作品,有《Gris》和《小小夢魘》。《Gris》今年8月,《波西亞時光》的開發商帕斯亞科技推出了一款3D解謎遊戲,叫做《永進》。遊戲歷時四年研發,期間數次回爐重造。
  • GitHub重大更新:在線開發上線,是時候卸載IDE了
    現在,你在手機、平板上都可以直接進行開發。雲端開發不能更美好了,用上 Codespaces 後,不僅可以把 IDE 卸載掉,什麼 Conda、Docker 都可以刪了「大誤」。在今年 GitHub 的第一個虛擬會議——Satellite 上,GitHub 發布了由 Visual Studio 提供技術支持的在線 IDE 工具——Codespaces。
  • 競品分析很重要,但很多人的方法不正確
    一、為什麼要做競品分析?1. 證明/證偽已有的設計思路一般來說,在接到一個需求和任務時,設計師的腦海裡總會冒出一些點子。我會首先把能想到的做法全部記錄下來,不管正確還是錯誤,不管有沒有重複,不管有沒有條理。然後,我們需要從中篩選出那些有價值、可行的點子。那麼問題來了,篩選的依據是什麼?一定不能是憑自我感覺。