晃晃悠悠入行工作8年有余,技術(shù)棧和崗位角色也是換了又換,確實一事無成,但又慶幸老婆孩子熱炕頭,同時心里還有對科技和行業(yè)的熱情,對未來雖然有焦慮,但手藝人勤勞能養(yǎng)家糊口的信心還是有。逐步在找自己熱愛的行業(yè),喜歡的方向,不愿意只是為了一份工作就麻木的干著。關(guān)于可視化,兜兜轉(zhuǎn)轉(zhuǎn),我又繞回來了,謹(jǐn)此記錄學(xué)習(xí)的心路歷程。
從小喜歡玩游戲,游戲帶給我近視眼之外,也給我留下了很多美妙的回憶。關(guān)于游戲制作倒是了解得不多,但是直觀得感受總是有的。后面上了大學(xué),偶然接觸到PhotoShop和Flash,還是狠著心學(xué)了一陣,然最后在我手上也只能改變一點拙劣的效果,審美的缺漏可不是突擊工具就能學(xué)會的,只好暫時放棄,到后面學(xué)習(xí)java,也是從swing能做更具象的界面程序有了興趣,自己一陣倒騰出了各種小游戲,也是很愉快的一段經(jīng)歷。后面工作猶如普通玩家一路打怪,沒神裝,更沒外掛,一直在三四流徘徊。機(jī)緣巧合,公司業(yè)務(wù)方向由后端轉(zhuǎn)向前端,也經(jīng)手了幾次技術(shù)棧升級,然普通的UI效果終是很快滿足不了自己的好奇心,加上業(yè)務(wù)需要,開始做一些簡單圖表,開始做一些普通圖表無法做到的工具,也開始嘗試一些更有視覺沖擊力的技術(shù)。
18年之后漸漸有了一些忙里偷閑的時間,同時也運(yùn)用Canvas等技術(shù)為自己賺到了第一桶金,即使現(xiàn)在拿出來看,雖然有很多可以重構(gòu)提升的地方,但依然有不少黑科技,至少在當(dāng)時無法用任何現(xiàn)成的開源的工具或框架來完成,因此也積累了一套數(shù)據(jù)可視化的方法論。如何加載數(shù)據(jù),存儲數(shù)據(jù),遍歷或快速查找數(shù)據(jù),如何做數(shù)據(jù)與視圖的映射,怎樣做更純粹的離屏渲染(OffscreenCanvas),怎樣做圖元的繪制與拾取,怎樣做圖元的碰撞檢測,以及怎樣做局部刷新等……我相信這是一個新的起點,至少大部分普通的前端是沒有這樣的機(jī)會。
既然不滿足于Echarts無腦式的配置,也知道了Zrender的繪制基礎(chǔ)以及Echarts的封裝,就更能做一些簡單的圖形化工具。后面隨著大屏和各類看板的興起,又一路學(xué)習(xí)了DataV、PowerBi等成熟工具的使用,也逐漸接觸到 WebGis的操作,同時主導(dǎo)了一次Threejs基礎(chǔ)Demo的實施,此時對可視化的概念又稍微加深了一層。
同樣緣分總是靜悄悄的來,后面接觸到AntV來做圖表,簡單說,看上去寫了更多的代碼才出來的效果是比配置一下選型的Echarts能給程序員帶來更大的成就感,然后著手了一個中型項目,幾乎把AntV3的坑踩了一遍,雖然有很多坑,雖然文檔不盡完善,但是有幾點非常贊的例由,也推薦一下:
1、Antv出了很多圖表的基礎(chǔ)理論知識,教你如何處理可視化中的問題,而不是一味的給個配置說明,這相當(dāng)有幫助,讓你有機(jī)會能看到更深層次的處理邏輯。
2、Antv G2系列基于G 框架,有一套圖形語法,可以更靈活的去定制,并且嵌入應(yīng)用程序中,同時有了第一條的理論支撐,會吸引你去看在實際的代碼中如何去解決這下理論問題。
3、Antv的文檔最初確實不夠友好,有些問題也確實帶來了明顯的不友好,但是更新速度還是比較快,一直在路上的感覺挺好。
經(jīng)過這一輪摸爬滾打,公司的圖表庫也逐漸從Highcharts遷移到了Antv系列,甚至逐漸有了圖表規(guī)范和漸漸有了圖表庫。
在折騰完二維的圖表之后,剛好公司有三維項目,雖然是Unity3d做的,一時興起,在2020年國慶期間把基礎(chǔ)的u3d搗騰出了,不過后面在公司正式運(yùn)行項目時,資源太大我的機(jī)器直接無法啟動,沒辦法,至少暫時放棄重量級選手,兜兜轉(zhuǎn)轉(zhuǎn),我又回到輕量級webgl框架threejs之上來折騰。
一路走來,挺有緣分的吧,也好久沒寫點文字了,所以想單獨(dú)開一個系列,聊聊可視化,從Threejs開始……