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

傑華園發表於2020-11-27

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

做大資料的,就一定能做好報表嗎?

報表是企業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報表、程式碼開發、報表工具的優劣勢。

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21472864/viewspace-2737486/,如需轉載,請註明出處,否則將追究法律責任。

相關文章