要回答這個(gè)問(wèn)題,首先要明確啥程度算“零編碼”?
以 Excel 為例,如果把寫(xiě) Excel 公式(包括復(fù)雜一些的)看做零編碼;而把寫(xiě) Excel VBA 看做編碼的話(huà),
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千多家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏(yíng)平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為婁底企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),婁底網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
報(bào)表開(kāi)發(fā)是可以零編碼的!
但是,這有個(gè)前提:在數(shù)據(jù)(集)準(zhǔn)備好的情況下才可以零編碼!
為什么這么說(shuō)?
我們知道報(bào)表開(kāi)發(fā)主要分兩個(gè)階段:
第一階段是為報(bào)表準(zhǔn)備數(shù)據(jù),也就是把原始數(shù)據(jù)通過(guò) SQL/ 存儲(chǔ)過(guò)程加工成數(shù)據(jù)集;
第二階段是使用已準(zhǔn)備的數(shù)據(jù)編寫(xiě)表達(dá)式做報(bào)表呈現(xiàn)。在報(bào)表工具提供的 IDE 里可視化地畫(huà)出報(bào)表樣式,然后再填入一些把數(shù)據(jù)和單元格綁定的表達(dá)式就可以完成報(bào)表呈現(xiàn)了,雖然表達(dá)式可能比較復(fù)雜,但相對(duì)硬編碼要簡(jiǎn)單得多(Excel 公式和 VBA 的關(guān)系)。所以說(shuō)這個(gè)階段是能做到“零編碼”的。
那報(bào)表數(shù)據(jù)準(zhǔn)備怎么辦?
很遺憾,這個(gè)階段沒(méi)法零編碼,一直以來(lái)只能硬編碼,想想我們報(bào)表里寫(xiě)的嵌套 SQL、存儲(chǔ)過(guò)程、JAVA 程序就知道了。為什么報(bào)表工具發(fā)展這么多年報(bào)表呈現(xiàn)已經(jīng)完全工具化而報(bào)表數(shù)據(jù)準(zhǔn)備的手段還這樣原始呢?因?yàn)檫@個(gè)階段太復(fù)雜了,不僅涉及計(jì)算邏輯的算法實(shí)現(xiàn),還涉及報(bào)表性能(要知道大部分報(bào)表性能問(wèn)題都是數(shù)據(jù)準(zhǔn)備階段引起的)。
那報(bào)表數(shù)據(jù)準(zhǔn)備是不是沒(méi)辦法了呢?
雖然不能做到零編碼,但可以朝著簡(jiǎn)單化的方向努力,將數(shù)據(jù)準(zhǔn)備階段也工具化,這樣可以使用工具提供的便利來(lái)簡(jiǎn)化報(bào)表數(shù)據(jù)準(zhǔn)備階段的工作,從而進(jìn)一步簡(jiǎn)化報(bào)表的開(kāi)發(fā)。
那怎么實(shí)現(xiàn)報(bào)表數(shù)據(jù)準(zhǔn)備工具化?
要實(shí)現(xiàn)這個(gè)目標(biāo)并不容易,像上面提到要考慮的內(nèi)容有點(diǎn)多,大體來(lái)說(shuō)數(shù)據(jù)準(zhǔn)備工具至少要滿(mǎn)足這幾方面:
1. 具備完備的計(jì)算能力
說(shuō)的有點(diǎn)拗口,掰開(kāi)了其實(shí)在說(shuō)既然在工具里做數(shù)據(jù)計(jì)算,那得讓我什么都能算吧,不能原來(lái) SQL/JAVA 寫(xiě)的放到這里就不行了,該有的計(jì)算方法和類(lèi)庫(kù)都應(yīng)該有,最好用起來(lái)還比較簡(jiǎn)單(比原來(lái)硬編碼難就沒(méi)意義了),專(zhuān)業(yè)的說(shuō)法叫:計(jì)算體系是完備的;
2. 支持熱切換
這點(diǎn)是相對(duì) JAVA 來(lái)說(shuō)的,通過(guò)數(shù)據(jù)準(zhǔn)備工具生成的算法應(yīng)該是解釋執(zhí)行的,不能每次改完報(bào)表還要重啟應(yīng)用,即時(shí)修改即時(shí)生效;
3. 具備多源混算能力
通過(guò)數(shù)據(jù)準(zhǔn)備工具可以同時(shí)連接多種數(shù)據(jù)源(RDBMS、NOSQL、TXT、Excel、Hadoop、HTTP、ES、Kafka 等等)進(jìn)行計(jì)算,混合計(jì)算,這個(gè)數(shù)據(jù)源讀個(gè)表、那個(gè)數(shù)據(jù)源加載個(gè)文件,兩部分?jǐn)?shù)據(jù)可以 join 到一起混算。現(xiàn)在我們的數(shù)據(jù)源太多了,報(bào)表常常會(huì)跨數(shù)據(jù)源取數(shù),支持了異構(gòu)源混算以后,原來(lái)還要考慮諸如數(shù)據(jù)是不是先入到一個(gè)庫(kù)里的事情就不用管了,那叫一個(gè)清爽;
4. 高性能
直接簡(jiǎn)化數(shù)據(jù)準(zhǔn)備的工作還不夠,實(shí)現(xiàn)再簡(jiǎn)單跑不快也不行。所以,還要高性能,至少不能比原來(lái)跑的慢吧,大家都是講道理的人;
以上是我認(rèn)為數(shù)據(jù)準(zhǔn)備工具必備的能力,其他還有一些能力不是特別重要,但如果有最好了。包括:
* 有沒(méi)有易用的編輯調(diào)試環(huán)境,可以很方便地調(diào)試算法;
* 為了更快能不能并行計(jì)算
* 有沒(méi)有標(biāo)準(zhǔn)接口可以讓其他程序或工具調(diào)用
等等,實(shí)際要用的時(shí)候照著這些特點(diǎn)去找就行了,有益無(wú)害。
說(shuō)了這么多,總結(jié)來(lái)說(shuō),“零編碼制作報(bào)表”的確更像一句口號(hào),沒(méi)法真正做到,但可以不斷努力接近這個(gè)目標(biāo),求其上得其中嘛。
參考資料:
【數(shù)據(jù)蔣堂】第 43 期:報(bào)表開(kāi)發(fā)的現(xiàn)狀
報(bào)表提效資料匯總(體系結(jié)構(gòu)和性能優(yōu)化)
網(wǎng)頁(yè)標(biāo)題:零編碼制作報(bào)表可能嗎?
本文網(wǎng)址:http://www.chinadenli.net/article38/ighdpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、用戶(hù)體驗(yàn)、網(wǎng)站排名、服務(wù)器托管、App設(shè)計(jì)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)