2020年度總結 | 葡萄城軟體開發技術回顧
本文由葡萄城技術團隊原創並首發
轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
2020年是不平凡的一年,雖然疫情為整個社會都帶來了巨大的衝擊,但IT技術人們卻從未停止過創新和發展的步伐。
葡萄城是全球領先的軟體開發技術提供商。在專註軟體開發技術的40年中,葡萄城逐漸形成了吸納全球頂尖技術人才的分散式研發架構,並先後研發出各類開發控制項、商業智慧報表工具、低程式碼開發平台等,引領開發技術的發展。
在2020年,葡萄城仍然秉承著「賦能開發者」使命,用技術至上的工匠精神在前後端技術方面都有著一些創新。下面,就讓我們一同來回顧一下吧。
前端(JavaScript、TypeScript):
(圖片來源於網路)
1. Canvas繪製模型:使用 HTML5 Canvas 繪製引擎,而非DOM拼接的方式展示表格數據,避免了重複創建和銷毀DOM元素時的性能損耗,在畫布的繪製過程中,打破了DOM元素渲染對UI的諸多限制,可以繪製種類更為豐富的UI元素,如線形、特殊圖形等,通過畫法邏輯,還可以實現更加精準的UI介面渲染,解決了瀏覽器差異造成的樣式誤差。
2. 雙快取繪製技術:將不易改變的主體圖層繪製在快取的Canvas中,在發生改變需要更新圖層時,只需要將快取Canvas中的主體圖層直接通過影像克隆的方式繪製在主Canvas上,大幅優化了頁面繪製性能。
3. 稀疏矩陣存儲策略:相較於傳統的鏈式存儲或數組存儲,稀疏矩陣存儲構建了基於行索引的數據字典,在鬆散布局的表格數據中,稀疏矩陣只會對非空數據進行存儲,而不需要對空數據開闢額外的記憶體空間。
4. 前端技術的前瞻性研究:技術團隊自WebAssembly發布就開始了投入研究工作,面對可能對前端類似高負載運算等場景帶來極大性能提升的全新開放技術,開發團隊對其做了大量的性能分析和適配性研究。
以上技術應用於葡萄城純前端表格控制項SpreadJS,純前端在線報表控制項ActiveReportsJS等產品。
後端(.NET、.NET Core、Java):
(圖片來源於網路)
1. 減少垃圾回收:消除了單元格的概念,使用double 存儲數字、文本、布爾和錯誤類型,將行存儲改成列存儲,並結合 C# 的泛型,用字典存儲值類型的數據,以此克服垃圾回收的影響,提升處理性能。
2. 共享存儲及樣式壓縮:所謂共享存儲,就是把整個軟體中重複的數據對象只生成一份,放在一個全局的地方,每個對象用一個數字做ID,其它地方只存這個ID,這樣做可以用來降低記憶體消耗。進一步減少觸發GC回收的次數,從而提高程式執行效率。
3. 充分利用高速快取: CPU在讀取數據的時候,會先從最近的快取中讀,如果沒命中,才從下一級快取中讀,然而,越高速的存儲介質離CPU越近,速度越快,因此,提升CPU的快取命中率對改善性能意義重大。
4. 框架整體遷移:在過去的2020年,全面將服務端技術棧從.NET Framework遷移到.Net Core。大規模的重構和遷移,為了使得更多開發者能夠基於國產化作業系統使用。
5. 微服務架構及自研運算引擎:藉助Akka實現 Server + N Workers之間的通訊,達到集群和分散式部署的能力;其中自主研發的高性能大數據運算引擎(COT),更可將分析億級數據達到秒級。
以上技術應用於葡萄城服務端高性能表格組件GcExcel、企業級低程式碼開發平台活字格、嵌入式商業智慧和報表軟體Wyn Enterprise等多個產品。
在過去的2020年,葡萄城相繼通過十數次的版本發布迭代,將上述創新的前後端技術反映在產品中與廣大用戶見面,為開發者大大提升了開發效率。
銘記初心,持續為開發者賦能
開發者是各項軟體技術的創造者,是軟體產業發展的核心力量。葡萄城以「賦能開發者」為使命,就是希望能夠全面的支援和賦能一切具有創新精神的開發者,幫助大家創新開發模式,提升開發效率。
因此,除了在產品和技術方面精心打磨,2020年葡萄城也在服務和社群方面做了大量建設。
面向開發者推出的葡萄城公開課,完全免費,課程內容涵蓋實戰開發經驗、未來技術發展、軟體項目落地等話題,講師由葡萄城用戶、研發團隊和產品經理等擔綱;葡萄城新手訓練營,針對初次了解產品和技術的客戶推出,通過三到五天的集中學習,採用直播授課、互動答疑、動手練習等多種方式,幫助用戶快速體驗產品,構建技術整體概念,為後續工作的開展打下堅實的基礎。
而在技術社區方面,我們持續耕耘部落格園等社區的技術部落格,參加中國.NET開發者峰會等技術會議。2020年我們相繼獲得了「最佳技術團隊」、「中國技術品牌影響力企業」、「中國低程式碼領軍企業」等社區榮譽獎項,同時有超過200w的用戶閱讀過葡萄城的社區技術文章。
2020年,克難求進;2021年,未來可期。
這裡也打個小廣告吧,葡萄城正在招聘開發和技術人員:
了解職位資訊請點擊//www.grapecity.com.cn/career/socialrecruitment,歡迎你加入我們,一起為開發者賦能,簡歷直送:[email protected],會有HR小姐姐和您取得聯繫。