從騰訊入職到離職,我僅用了三週:做大數據的同事看不起做報表的

這是很多年前的事情了,從騰訊入職到離職,我用了三週,理由很簡單,做大數據的同事看不起做報表的,當然,我是做報表的那個。

做大數據的,就一定能做好報表嗎?

報表是企業IT數據建設必不可少的一環,小到一張出入單,大到公司的KPI經營看板,都是重要的數據資料。

報表怎麼開發?要麼用Excel處理,要麼IT寫PHP、Python來開發,要麼用現成的報表工具。

本文就從技術角度來對比下3種常用報表開發模式,分別是Excel報表、代碼開發、報表工具

通常一個報表製作的流程:業務需求—>報表原型設計—>需求確認—>數據整理校對—>報表開發—>需求變更與維護。

這其中和報表開發模式關聯最大的就是報表原型設計、報表開發以及需求變更維護,下面就從這三個角度來對比梳理。

1、報表原型設計

原型設計多爲產品需求中所用,這裏借用下概念。如果把企業的報表也當作一個產品來看的話,那一個個提上來的報表需求實際上也可當產品需求來看,事實上現在有些公司有數據產品經理一崗,數據報表設計的工作也在他們的範疇。

爲什麼要做報表原型設計,舉例一個場景:比如以前我做一個填報頁,人力部門提過來的,用來錄入員工信息,當時只是做了一個簡單的頁面,大概填入10個信息字段,但是展現的格式修改了3、4次。

到後面需求不斷變更,先是不斷的增加填報的信息內容;後面發現發現數據端那邊更改了數據結構導致數據錯亂、填不進去;

然後又要開通信息修改的權限;再到後面需要做工資跳轉頁、增加多sheet填報。前前後後圍繞這張報表修改了數十次需求。這其中有一部分原因就是沒有做好需求的確認以及報表需求的原型設計。

工具怎麼輔助原型設計呢?

Excel做報表開發沒有原型設計的說法,大部分人做報表就是先將數據從數據庫中導出來,對數據做個大致的預覽,然後思考做成什麼樣的報表樣式,然後再Excel中畫就是了。Excel由於數據也同樣存儲在表中,所以操作簡單,所見即所得。

用代碼開發報表,就比較麻煩了,比如純java代碼開發報表,沒有前端界面,報表做成什麼樣都僅是存在於開發人員腦海中,至於格式什麼的,也需要手動代碼調。最大的問題是報表要適配不同分辨率的電腦、手機,所以用代碼開發還是比較麻煩的。

報表工具開發報表,比如FineReport他是有報表設計器的,類似Excel設計界面,可以直接在設計器中設計報表樣式。或者初期溝通需求的時候也可以用Excel簡單設計下樣式。

但是對於一些複雜的需求,比如移動端報表、多sheet頁報表、可視化大屏類報表,Excel不能滿足這些報表需求,原型自然也設計不出,所以能夠直接畫出原型的報表工具更適合。

2、報表的技術開發

Excel在本地做報表可以,人人會用,上手沒難度,但用Excel性能上依靠你的電腦,數據量大容易崩潰,所以從數據庫導數據需得悠着點。

企業級報表Excel我是覺得沒法做的,你要對接數據庫,還有做報表維護,還要收集數據,散亂的Excel表格會處理到崩潰。最煩的是如果數據發生變更,那牽一髮動全身。所以Excel的表格作用有實時性,基本隔一段時間數據就不對了。

用代碼開發報表也能很快的解決點對點的需求,但是作爲長期報表開發工作,基本就是堆人力寫代碼。還有一種方式是自研報表工具,比如java有一些對接Excel的報表功能庫,也有可視化圖表庫,但是一些難題如打印報表、複雜的數據計算、複雜格式的報表展示依然做不好,個人覺得自研報表工具坑很多,需要投入很大人力,勞心勞力!

報表工具相對成熟穩定,畢竟是花錢解決以上不能解決的問題。FineReport類似excel的設計方式是這個工具比較突出的優點(像我們做報表的,其實很多都不是真的程序員,做開發有點太難),然後只要會SQL和一些簡單的JS,配合它各種報表設計模式,基本能實現各種複雜的報表樣式。

尤其數據字典、實際值和顯示值等的設計更是切入快速開發的要害,這些放在別的語言和體系下往往要大量代碼才能實現,在finereport裏反正就是有現成的功能。

3、報表需求的變更及維護

前面好多次提到報表需求更改,做報表最煩聽到的就是報表要修改、要調整、不好用之類的話語。改報表也是個頭疼的問題。

Excel改報表需求需要找到先更新源數據,導出來然後複製再更改,基本逢改就要重做一次。

FineReport更改報表需求主要是對報表模板運維。技術上能節省時間,比如數據更新,因爲是直接連數據源,可以自定義設置更新T+1或者實時,這個主要看數據庫/數據倉庫的支撐。

然後維護這塊,FineReport作爲報表系統是部署到服務器上的,可以讓不同人員在遠程報表服務器上對模板進行設計、修改、維護操作,簡化模板的運維難度。

另外,還有報表體系的使用和運維。時間越久就會有越來越多的報表,需要依據業務人員的使用數據對報表進行迭代與優化,及時淘汰棄用的報表,對常用的模板進行展現樣式、交互效果、性能層面的調優,這一塊也是報表工具的優勢。

最後,總結一下,三種報表開發模式:Excel報表、代碼開發、報表工具的優劣勢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章