自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

報(bào)表沒完沒了怎么辦?

企業(yè)動(dòng)態(tài)
應(yīng)用系統(tǒng)軟件項(xiàng)目中有一個(gè)普遍現(xiàn)象,就是報(bào)表總也做不完。不管是領(lǐng)導(dǎo)需要的宏觀數(shù)據(jù)統(tǒng)計(jì)重點(diǎn)的變化,還是業(yè)務(wù)部門的計(jì)算口徑的變化,都會(huì)造成報(bào)表需求的頻繁變更。報(bào)表項(xiàng)目組就要不斷修改現(xiàn)有報(bào)表,還會(huì)新增很多報(bào)表。潤乾的很多用戶提出,能不能發(fā)明一種軟件工具,來解決報(bào)表永遠(yuǎn)做不完的問題?

[[214182]]

應(yīng)用系統(tǒng)軟件項(xiàng)目中有一個(gè)普遍現(xiàn)象,就是報(bào)表總也做不完。不管是領(lǐng)導(dǎo)需要的宏觀數(shù)據(jù)統(tǒng)計(jì)重點(diǎn)的變化,還是業(yè)務(wù)部門的計(jì)算口徑的變化,都會(huì)造成報(bào)表需求的頻繁變更。報(bào)表項(xiàng)目組就要不斷修改現(xiàn)有報(bào)表,還會(huì)新增很多報(bào)表。潤乾的很多用戶提出,能不能發(fā)明一種軟件工具,來解決報(bào)表永遠(yuǎn)做不完的問題?

從本質(zhì)上說,報(bào)表本身就存在業(yè)務(wù)穩(wěn)定性差的特點(diǎn),這是造成報(bào)表開發(fā)沒完沒了的本質(zhì)原因。也就是說,這個(gè)問題是需求頻繁變化造成的,是一種常態(tài)。因此,要試圖適應(yīng)而不是解決這個(gè)問題,具體的辦法就是建立長期應(yīng)對(duì)機(jī)制。也就是說,在應(yīng)用系統(tǒng)開發(fā)完成之后,保持***成本的報(bào)表維護(hù)人員來解決報(bào)表需求的變更和新增。

如果能夠不依賴于開發(fā)商的專業(yè)程序員來解決沒完沒了的報(bào)表需求,對(duì)于甲方和開發(fā)商而言,都是***方案。非專業(yè)的程序員,或者是甲方自己的技術(shù)人員兼職來做這件事,成本很低,可持續(xù)性卻很高。

但是,要實(shí)現(xiàn)這樣的長期機(jī)制,還有幾個(gè)難題需要解決:

1、 由于有報(bào)表工具的支持,報(bào)表的呈現(xiàn)環(huán)節(jié)開發(fā)已經(jīng)很容易了。但是,報(bào)表數(shù)據(jù)計(jì)算環(huán)節(jié)還需要編程序(Java、C#、復(fù)雜SQL、存儲(chǔ)過程等),是低成本維護(hù)人員很難完成的任務(wù)。

2、 開發(fā)商為報(bào)表的數(shù)據(jù)計(jì)算部分編寫的代碼,和應(yīng)用系統(tǒng)的其他部分是耦合在一起的。一旦調(diào)整,還需要開發(fā)商的專業(yè)程序員才能解決。

3、 Java等編程工具的環(huán)境配置復(fù)雜,低成本維護(hù)人員沒辦法自主完成。

4、 SQL對(duì)于復(fù)雜計(jì)算實(shí)現(xiàn)起來是比較困難的,存儲(chǔ)過程本身也比較難寫,還需要較高的數(shù)據(jù)庫權(quán)限,存在安全風(fēng)險(xiǎn)。遇到庫外文件的情況,比如Excel等,SQL和存儲(chǔ)過程也沒辦法直接計(jì)算。

所以,建立長期機(jī)制必須要做到:

1、 報(bào)表開發(fā)要徹底工具化。不僅是呈現(xiàn)層的工具化,報(bào)表數(shù)據(jù)計(jì)算層也要工具化,降低對(duì)開發(fā)人員的要求。不必做復(fù)雜的環(huán)境配置(數(shù)據(jù)源等),也可以編寫簡單的代碼來實(shí)現(xiàn)復(fù)雜計(jì)算。對(duì)于多樣性數(shù)據(jù)源,比如Excel、文本文件等,也必須支持簡單腳本計(jì)算。

2、 報(bào)表模塊要徹底獨(dú)立化。數(shù)據(jù)計(jì)算層也要和呈現(xiàn)層一樣,完全和應(yīng)用系統(tǒng)解耦合,實(shí)現(xiàn)獨(dú)立維護(hù)。報(bào)表需求變更和新增的時(shí)候,僅僅修改報(bào)表模塊就可以了,不會(huì)影響應(yīng)用系統(tǒng)其他部分。

有了報(bào)表工具,報(bào)表的呈現(xiàn)層已經(jīng)可以做到工具化和獨(dú)立化了。結(jié)合潤乾的專業(yè)計(jì)算產(chǎn)品集算器,可以實(shí)現(xiàn)報(bào)表開發(fā)過程的徹底工具化和報(bào)表模塊的徹底獨(dú)立化,建立長期應(yīng)對(duì)機(jī)制,***解決報(bào)表沒完沒了的難題。

報(bào)表工具集合集算器的方案結(jié)構(gòu)圖如下:

集算器可以降低報(bào)表后端計(jì)算的開發(fā)難度,徹底實(shí)現(xiàn)報(bào)表開發(fā)過程工具化。

集算器是一種高級(jí)語言,潤乾公司提供了集算器的集成開發(fā)環(huán)境IDE。類似于Java的集成開發(fā)環(huán)境Eclipse,集算器的IDE也提供了調(diào)試執(zhí)行、單步執(zhí)行、設(shè)置斷點(diǎn)等代碼調(diào)試方式:

 

圖中的腳本,是從oracle數(shù)據(jù)庫取部分的訂單數(shù)據(jù),和Excel中的部分?jǐn)?shù)據(jù)合并分組匯總后過濾出訂單金額小于10000的數(shù)據(jù),返回給報(bào)表。從圖中可以看到,集算器采用了過程計(jì)算編程方式,相比SQL無法嚴(yán)格分步驟寫腳本的方式要更容易編寫。有經(jīng)驗(yàn)的程序員都知道,SQL用來實(shí)現(xiàn)很零碎的多步運(yùn)算很不方便,特別是與次序相關(guān)的運(yùn)算,程序員常常要把數(shù)據(jù)從數(shù)據(jù)庫中取出來用Java等完成。而集算器則正好在這方面做了強(qiáng)化,在分步計(jì)算、集合化、有序計(jì)算和對(duì)象引用等幾方面做了完善,對(duì)于常用的日期和字串等運(yùn)算,也比大部分SQL提供了更豐富的方法。B1單元格只需要一個(gè)函數(shù)就可以讀取Excel文件中的數(shù)據(jù),這是SQL無法直接實(shí)現(xiàn)的。

Java等高級(jí)語言沒有提供批量數(shù)據(jù)計(jì)算的類庫,寫個(gè)簡單的SUM也要好幾行,更何況分組、連接等運(yùn)算,而對(duì)于過濾、匯總用到的通用表達(dá)式計(jì)算,基本上是大多數(shù)應(yīng)用程序員無法完成的任務(wù)了。而且Java其實(shí)也沒有通行的結(jié)構(gòu)化數(shù)據(jù)對(duì)象,只JDBC有個(gè)幾乎沒有計(jì)算能力的ResultSet。直接用Java實(shí)現(xiàn)報(bào)表數(shù)據(jù)準(zhǔn)備非常繁瑣。集算器則提供了大量與結(jié)構(gòu)化計(jì)算相關(guān)的基礎(chǔ)對(duì)象和方法,分組匯總這些只要一句,而且是解析執(zhí)行的動(dòng)態(tài)語言,可以進(jìn)行隨意的表達(dá)式計(jì)算。使用集算器完成報(bào)表數(shù)據(jù)準(zhǔn)備工作要比Java容易得多,代碼也要短小很多,實(shí)現(xiàn)了復(fù)雜計(jì)算的簡單開發(fā)。報(bào)表開發(fā)者只需要寫腳本,不用管理數(shù)據(jù)連接等環(huán)境等等問題,可以實(shí)現(xiàn)非專業(yè)程序員、甚至用戶自己的運(yùn)維人員獨(dú)立完成報(bào)表開發(fā)過程的目標(biāo)。

集算器集成開發(fā)環(huán)境還提供了方便調(diào)試的功能。圖中單擊A4單元格,在IDE右邊就可以所見即所得的看到A4的計(jì)算結(jié)果,非常有利于發(fā)現(xiàn)每個(gè)步驟的問題。IDE下方可以直觀的看到系統(tǒng)信息輸出,隨時(shí)查看腳本的異常。

集算器可以優(yōu)化報(bào)表應(yīng)用結(jié)構(gòu),使得報(bào)表模塊可以獨(dú)立維護(hù),徹底實(shí)現(xiàn)獨(dú)立化。

集算器可以降低與業(yè)務(wù)系統(tǒng)其他模塊的耦合度。集算器編寫的腳本是獨(dú)立的dfx文件,不會(huì)和應(yīng)用系統(tǒng)其他部分的Java程序形成耦合關(guān)系。這樣就可以把報(bào)表模塊單列出來,而不必和應(yīng)用程序綁死在一起。獨(dú)立的報(bào)表模塊可以單獨(dú)去維護(hù),雖然業(yè)務(wù)穩(wěn)定性差,但是頻繁的修改不影響主應(yīng)用程序。

計(jì)算方法的調(diào)整和報(bào)表模板的修改一樣無需重啟服務(wù)器,真正實(shí)現(xiàn)整個(gè)報(bào)表系統(tǒng)的熱切換。因?yàn)閳?bào)表系統(tǒng)業(yè)務(wù)不穩(wěn)定造成的系統(tǒng)重啟減少到零。

 

這樣,從報(bào)表計(jì)算層到呈現(xiàn)層完全獨(dú)立出來了。用報(bào)表工具修改報(bào)表模板,上傳覆蓋之前的模板即可;用集算器修改報(bào)表計(jì)算腳本文件,上傳服務(wù)器,覆蓋舊的腳本文件即可。因?yàn)楹蛻?yīng)用系統(tǒng)其他模塊沒有任何關(guān)系,所以無需開發(fā)商的專業(yè)程序員到現(xiàn)場(chǎng)修改。非專業(yè)程序員或者用戶自己的維護(hù)人員就可以解決沒完沒了的報(bào)表難題。 

責(zé)任編輯:龐桂玉 來源: 潤乾
相關(guān)推薦

2018-05-24 14:32:12

內(nèi)存漲價(jià)DRAM

2021-01-17 23:09:29

Windows 10Windows微軟

2011-05-22 19:21:30

網(wǎng)絡(luò)安全技術(shù)周刊

2009-08-24 08:33:39

2021-10-14 11:11:58

WiFi電腦網(wǎng)絡(luò)

2022-03-02 14:00:46

Nest.jsExpress端口

2012-12-03 09:37:39

ForefrontExchange

2022-05-17 10:41:20

接口JSON數(shù)據(jù)

2019-06-14 08:00:00

垃圾郵件郵件傳輸代理開源

2013-12-10 10:04:15

編程生產(chǎn)方式

2009-11-03 08:56:02

linux死機(jī)操作系統(tǒng)

2022-12-19 11:31:57

緩存失效數(shù)據(jù)庫

2024-04-22 08:17:23

MySQL誤刪數(shù)據(jù)

2017-02-21 13:11:43

SDN網(wǎng)絡(luò)體系SDN架構(gòu)

2022-05-19 08:01:49

PostgreSQL數(shù)據(jù)庫

2020-03-29 08:56:07

文件系統(tǒng)磁盤Java

2018-01-28 20:39:39

戴爾

2022-07-05 11:48:47

MySQL死鎖表鎖

2019-10-12 09:50:46

Redis內(nèi)存數(shù)據(jù)庫

2015-10-22 09:09:59

BAT投資VC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)