欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          「開發(fā)者必讀」為什么你的“開發(fā)速度"和"產(chǎn)品性能”都比不過(guò)競(jìng)品?

            物理學(xué)家牛頓曾經(jīng)說(shuō)過(guò):If I have seen further, it is by standing on the shoulders of giants。

            荀子在《勸學(xué)》中也說(shuō)過(guò):假輿馬者,非利足也,而致千里;假舟楫者,非能水也,而絕江河。君子生非異也,善假于物也。

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

            在項(xiàng)目開發(fā)中也是如此,開發(fā)者們也要懂得”善假于物”和”站在巨人的肩膀上”,合理的使用第三方工具,一樣可以實(shí)現(xiàn)事半功倍的效果。

            隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,大部分中小企業(yè)比拼的不僅僅是產(chǎn)品功能,而是產(chǎn)品交付速度、質(zhì)量、性能以及針對(duì)特定場(chǎng)景的定制能力。因此,對(duì)于底層技術(shù)和架構(gòu)而言,完全可以借助垂直領(lǐng)域的第三方工具,提高開發(fā)速度,并得到更好的產(chǎn)品性能。

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

            一、前言

            大家應(yīng)該都知道,很多企業(yè)的 IT 業(yè)務(wù)是從一張表格開始的。團(tuán)隊(duì)溝通中的信息共享大量依賴于表格,文檔、報(bào)告、憑證以及基礎(chǔ)數(shù)據(jù)的匯總分析,大部分都需要依靠表格的形式來(lái)進(jìn)行決策的支持。

            而隨著企業(yè)數(shù)字化轉(zhuǎn)型的迫切需要,遠(yuǎn)程辦公模式已正式開啟,純?cè)诰€的表格產(chǎn)品儼然成為了很多企業(yè)必備的工具之一。但綜合性的協(xié)同辦公產(chǎn)品大部分將更多的精力投入在了文檔工具的優(yōu)化當(dāng)中,對(duì)于表格場(chǎng)景并沒有投入足夠多的時(shí)間與精力;另一方面表格產(chǎn)品看似很簡(jiǎn)單,但背后其實(shí)涉及到很多的技術(shù)實(shí)現(xiàn),以及產(chǎn)品團(tuán)隊(duì)對(duì)于表格場(chǎng)景的熟悉度處理,目前的泛用性在線表格工具都很難具備相應(yīng)的經(jīng)驗(yàn)與能力。

            因此,如果想要在企業(yè) OA 系統(tǒng)中實(shí)現(xiàn)類似 Excel 的在線表格分析功能,為了避免耗費(fèi)大量的開發(fā)精力卻只得到一個(gè)”雞肋產(chǎn)品”,最好的辦法就是接入更專業(yè)的前端表格控件作為輔助。雖然,這類控件數(shù)量眾多,但經(jīng)過(guò)我的調(diào)查研究,能把”表格技術(shù)”這一細(xì)分場(chǎng)景發(fā)揮到極致的產(chǎn)品屈指可數(shù)。

            究其原因,這些產(chǎn)品大多未攻克以下四個(gè)技術(shù)難點(diǎn)。

            二、表格控件的四大技術(shù)難點(diǎn)

            B/S 作為 Web 興起之后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上。

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

            引起這些問題的癥結(jié)在于瀏覽器渲染引擎的基礎(chǔ)原理:當(dāng)界面元素越多,瀏覽器的渲染時(shí)間會(huì)顯著增長(zhǎng),內(nèi)存消耗會(huì)越大。這對(duì)于強(qiáng)計(jì)算邏輯的前端表格控件來(lái)說(shuō),無(wú)疑是棘手的難題。

            由此可見,開發(fā)一款前端表格控件需要攻克這四個(gè)技術(shù)難點(diǎn):性能、內(nèi)存消耗、可靠性和操作體驗(yàn)。

            1、性能

            現(xiàn)代應(yīng)用程序?yàn)榱俗非蟾玫挠脩趔w驗(yàn),需要對(duì) UI 界面反復(fù)優(yōu)化,而頻繁的修改界面 UI 元素,將引發(fā)多次瀏覽器重繪。在這個(gè)過(guò)程中,UI 元素的創(chuàng)建及修改,會(huì)激活內(nèi)部垃圾回收機(jī)制,影響數(shù)據(jù)處理效率。

            除此之外,前端開發(fā)環(huán)境的多樣化、各類高 DPI 設(shè)備、手機(jī)、平板、4K 顯示屏、企業(yè)大屏等,這些無(wú)不加重了企業(yè)應(yīng)用系統(tǒng)的處理負(fù)擔(dān)。

            為此,業(yè)內(nèi)目前最佳的解決方案是使用 Canvas 繪制模型。

            Canvas 主要用于在網(wǎng)頁(yè)上繪制圖像,可以將其理解為畫布,開發(fā)者們?cè)谶@個(gè)畫布上構(gòu)建想要的效果。它與在瀏覽器中運(yùn)行的其他應(yīng)用有所不同,由于 Canvas 只在屏幕上特定的區(qū)域執(zhí)行并顯示效果,可以說(shuō)它的功能是獨(dú)占的,因此不太會(huì)受到頁(yè)面上其他內(nèi)容的影響,反之也是如此。

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

            2、內(nèi)存消耗

            隨著前端工程化的高速發(fā)展,各種前端工程腳手架日漸成熟,WebComponent 標(biāo)準(zhǔn)被提上日程,企業(yè)開始由 C/S 向 B/S 應(yīng)用轉(zhuǎn)型。為了優(yōu)化內(nèi)存,這就要求前端開發(fā)者,需要面對(duì)單線程處理復(fù)雜業(yè)務(wù)數(shù)據(jù)的挑戰(zhàn)。

            對(duì)于表格控件這類松散的文檔結(jié)構(gòu),業(yè)內(nèi)目前的最佳實(shí)踐是采用稀疏矩陣存儲(chǔ)模型(Sparse Array)來(lái)保存數(shù)據(jù)。

            稀疏矩陣在機(jī)器學(xué)習(xí)方面是很常見的。由于稀疏矩陣含有許多數(shù)值為零的元素,可以用來(lái)壓縮矩陣對(duì)象的內(nèi)存臺(tái)面空間,或者加速多數(shù)機(jī)器學(xué)習(xí)程序。

            而在表格場(chǎng)景中,相較于傳統(tǒng)的鏈?zhǔn)酱鎯?chǔ)或數(shù)組存儲(chǔ),稀疏矩陣存儲(chǔ)構(gòu)建了基于行索引的數(shù)據(jù)字典,在松散布局的表格數(shù)據(jù)中,稀疏矩陣只會(huì)對(duì)非空數(shù)據(jù)進(jìn)行存儲(chǔ),而不需要對(duì)空數(shù)據(jù)開辟額外的內(nèi)存空間。

            這種特殊的存儲(chǔ)策略,不僅節(jié)省了內(nèi)存消耗,也使得數(shù)據(jù)片段化變得更加容易。借助這個(gè)特性,開發(fā)者甚至可以隨時(shí)替換或恢復(fù)整個(gè)存儲(chǔ)結(jié)構(gòu)中的任何一個(gè)級(jí)別的節(jié)點(diǎn),實(shí)現(xiàn)高效的數(shù)據(jù)回滾和數(shù)據(jù)恢復(fù)。

            3、可靠性

            傳統(tǒng)前端表格應(yīng)用計(jì)算的特點(diǎn),是沒有穩(wěn)定的框架計(jì)算器、語(yǔ)言計(jì)算精度差、表格計(jì)算依賴復(fù)雜。

            隨著企業(yè)數(shù)字系統(tǒng)應(yīng)用的越來(lái)越深入,業(yè)務(wù)計(jì)算方式也變的越來(lái)越復(fù)雜,靈活度要求也越來(lái)越高。為了解決這個(gè)問題,必須了解計(jì)算引擎的計(jì)算流程后進(jìn)行相應(yīng)的可靠性優(yōu)化。

          「開發(fā)者必讀」為什么你的“開發(fā)速度"和"產(chǎn)品性能”都比不過(guò)競(jìng)品?

            如圖所示是計(jì)算引擎在構(gòu)建計(jì)算依賴鏈時(shí)的一個(gè)簡(jiǎn)單的流程圖。表達(dá)式樹從計(jì)算存儲(chǔ)模型中找到對(duì)應(yīng)的根節(jié)點(diǎn)以及根節(jié)點(diǎn)標(biāo)識(shí),隨后遍歷整個(gè)表達(dá)式樹,找出其他依賴標(biāo)識(shí),構(gòu)建依賴關(guān)系。

            當(dāng)整個(gè)依賴鏈中的任意節(jié)點(diǎn)發(fā)生變化時(shí),如果沿著這條依賴鏈,可以查找依賴節(jié)點(diǎn)并進(jìn)行重算,那么在這個(gè)過(guò)程中,沒有在依賴鏈中的節(jié)點(diǎn)是不會(huì)發(fā)生重算計(jì)算的,也就是我們所說(shuō)的沒有臟值運(yùn)算。

            進(jìn)行這樣的機(jī)制優(yōu)化后,可以大幅提升表格產(chǎn)品的運(yùn)算速度,從而提供更好的使用體驗(yàn)和更加精準(zhǔn)的運(yùn)算結(jié)果。

            4、操作體驗(yàn)

            隨著業(yè)務(wù)場(chǎng)景的豐富,表格系統(tǒng)需要承載更多的功能。例如觸摸支持、富文本支持、前端 Excel 導(dǎo)入導(dǎo)出、JSON 存儲(chǔ)等。

            我們以觸摸支持為例,隨著大屏?xí)r代的來(lái)臨,觸摸操作成為了一項(xiàng)愈發(fā)普遍的使用場(chǎng)景。對(duì)于觸摸來(lái)說(shuō),很多時(shí)候最難的并不是技術(shù)實(shí)現(xiàn),而是對(duì)于場(chǎng)景的理解。用手機(jī)操作技術(shù)文檔,單擊單元格時(shí),對(duì)應(yīng)的位置是放大還是不放大?

            對(duì)于不同的場(chǎng)景,用戶需要的反饋是不同的,對(duì)于一款優(yōu)秀的前端表格控件來(lái)說(shuō),這的確是技術(shù)難點(diǎn),但卻值得每一位開發(fā)者深入思考,并積極尋求優(yōu)化方案。

            在一切以用戶體驗(yàn)為中心的互聯(lián)網(wǎng)時(shí)代,任何開發(fā)活動(dòng)都應(yīng)該以改善用戶體驗(yàn)為終極目標(biāo),產(chǎn)品優(yōu)化當(dāng)然也不例外,并且,產(chǎn)品優(yōu)化最忌陷入純粹為了追求技術(shù)極限而優(yōu)化的境地。

            而上述四個(gè)技術(shù)難點(diǎn),在我和葡萄城的 SpreadJS 產(chǎn)品技術(shù)團(tuán)隊(duì)詳細(xì)溝通后,也得到了充分的驗(yàn)證,因?yàn)?,這同樣是他們的客戶在實(shí)際應(yīng)用場(chǎng)景中最常面臨的問題。

            SpreadJS 純前端表格控件,由業(yè)內(nèi)最早進(jìn)行表格產(chǎn)品研發(fā)的技術(shù)團(tuán)隊(duì)——葡萄城推出,如今已完美復(fù)刻了 Excel 的 UI 布局、數(shù)據(jù)透視表、450多種計(jì)算公式和182種形狀,只要是涉及到 Excel 文件上信息化系統(tǒng)的場(chǎng)景,他們的產(chǎn)品功能都已經(jīng)覆蓋到了。

          「開發(fā)者必讀」為什么你的“開發(fā)速度"和"產(chǎn)品性能”都比不過(guò)競(jìng)品?

            而用戶之所以敢于用 SpreadJS 替代傳統(tǒng) Excel,正是基于其產(chǎn)品層面已經(jīng)完成了大量的優(yōu)化和迭代任務(wù)。據(jù)我了解,SpreadJS 在性能優(yōu)化方面除了引入了 Canvas 繪制模型,還率先使用了雙緩存畫布技術(shù),從而解決了常見的閃屏問題;此外還提供了支撐復(fù)雜邏輯運(yùn)算的計(jì)算引擎,可以幫助開發(fā)者打造一個(gè)長(zhǎng)久穩(wěn)定且可靠的應(yīng)用系統(tǒng)。

            想要在產(chǎn)品層面進(jìn)行優(yōu)化,一方面需要”吃透”表格產(chǎn)品的底層技術(shù)邏輯,另一方面需要有大量實(shí)際的場(chǎng)景應(yīng)用實(shí)踐,這恰恰想要做獨(dú)立開發(fā)的企業(yè)或者泛用性工具平臺(tái)所不具備的,而借助 SpreadJS 這類專注于垂直領(lǐng)域的表格控件工具,則可以達(dá)到事半功倍的效果。

            三、結(jié)語(yǔ)

            正如我們前面所說(shuō),開發(fā)一款前端表格控件最難的不是技術(shù),還有對(duì)表格產(chǎn)品的熟悉程度。因?yàn)榧兗夹g(shù)的問題,在很多時(shí)候是難不住開發(fā)者的,靠時(shí)間與精力的投入總能彌補(bǔ)。然而,一款真正優(yōu)秀的產(chǎn)品最重要的一點(diǎn),則是對(duì)于應(yīng)用場(chǎng)景,以及用戶使用體驗(yàn)的細(xì)節(jié)把控。

            就像在表格類工具中有一個(gè)算投資回報(bào)率的公式,幾乎沒有人知道這個(gè)公式用 Excel、Google Doc 算出來(lái)的結(jié)果是不一致的。而這個(gè)小到會(huì)被所有人忽略的細(xì)節(jié),也是 SpreadJS 的研發(fā)團(tuán)隊(duì)告訴我的。

            隨著社會(huì)的發(fā)展,市場(chǎng)需要更靈活、效率更高的開發(fā)者解決方案,企業(yè)也要同時(shí)追求”開發(fā)速度”與”產(chǎn)品性能”,這在傳統(tǒng)的開發(fā)思路中是不可兼得的,但如果做到善假于物,借助第三方工具平臺(tái)則可以完全實(shí)現(xiàn)。

            付出一些成本換來(lái)更大的發(fā)展機(jī)會(huì)與空間,誰(shuí)又能說(shuō)不是一筆好買賣?

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

          特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)