重複性的操作讓給計算機執行

2021-09-22 21:50:03 字數 2879 閱讀 1133

最近,我指導了某新員工對某個軟體版本進行測試,該軟體的主要功能是從資料庫中掃瞄出滿足條件的資料以執行相關操作。具體而言,資料庫中有10個表(tb_test0~tb_test9),程式要周期性地從第1個表到第10個表中查詢資料。為了驗證程式處理的資料條數總條數是否正確,需要經常性地手動從這10個表中查詢資料條數,並與程式處理的資料條數進行比較。

在每一輪的測試中,這位新員工的做法是在軟體執行之前,先依次手動執行10條sql語句從這10個表中查詢資料條數並記錄下來,然後將這10個資料加起來的結果存放到電腦上;當軟體執行之後,將儲存的結果與程式日誌中的結果進行比較,看兩者是否相等。按照他的這種做法,如果測試了100輪,那麼就要手動執行100組如下的sql語句:

select count(*) from tb_test0

select count(*)

from tb_test1

select count(*) from tb_test2

select count(*)

from tb_test3

select count(*) from tb_test4

select count(*)

from tb_test5

select count(*) from tb_test6

select count(*)

from tb_test7

select count(*) from tb_test8

select count(*)

from tb_test9

如此重複勞動是否有必要呢?我問該新員工是否有更好的做法來避免這種重複的勞動?他覺得應該有,但是還沒有想到。

我們都知道,與人相比,計算機更適合做重複性的操作。具體到本文中提到的這個問題,可以考慮編寫乙個資料庫指令碼(更具體來說是乙個儲存過程)來從10個表中查詢資料條數,我們每次只要用很簡單的語句來呼叫這個指令碼就能夠得到資料總條數。

根據我的這個想法,該新員工編寫了如下指令碼:

create procedure pr_countnum

asdeclare

@numoftable0

int,

@numoftable1

int,

@numoftable2

int,

@numoftable3

int,

@numoftable4

int,

@numoftable5

int,

@numoftable6

int,

@numoftable7

int,

@numoftable8

int,

@numoftable9

int,

@totalnum

intbegin

select

@numoftable0=count(*) from tb_test0

select

@numoftable1=count(*) from tb_test1

select

@numoftable2=count(*) from tb_test2

select

@numoftable3=count(*) from tb_test3

select

@numoftable4=count(*) from tb_test4

select

@numoftable5=count(*) from tb_test5

select

@numoftable6=count(*) from tb_test6

select

@numoftable7=count(*) from tb_test7

select

@numoftable8=count(*) from tb_test8

select

@numoftable9=count(*) from tb_test9

select

@totalnum = @numoftable0+@numoftable1+@numoftable2+@numoftable3+@numoftable4+@numoftable5+@numoftable6+@numoftable7+@numoftable8+@numoftable9

select

@totalnum

endgo

print

'create procedure pr_countnum ok'

go

每次執行軟體之前,我們只需要執行如下語句:

exec pr_countnum;
即可得到10個表中的資料總條數。

在實際的研發工作中,為什麼我們要盡量將重複性的操作讓給計算機執行呢?我認為有如下原因:

第一,為了節約寶貴的研發時間。大家都知道,軟體行業的從業人員經常加班,他們不是活雷鋒,不是他們想加班,而是手上確實有很多事情做不完讓他們不得不加班。在時間如此寶貴的情況下,如果你還把時間浪費在做大量重複的事情上,豈不是可惜?把重複的事情交給機器做,至少可以讓我們將主要精力集中在重要的、有創意的事情上,做出來的產品的質量也更好。

第二,為了減少出錯的機會。人和機器不一樣,機器把某件事情重複做上n遍都不會出現問題,而人重複做某件事情的次數越多,出錯的概率就越大。特別是涉及到數字的操作,當你重複做上10遍的時候,可能還一切正常,當你重複做上50遍的時候,可能頭就已經暈了,這時得到的結果就會有問題了。

第三,為了體現研發人員的素質。就像前面提到的,乙個將某個操作手動執行100遍的人和乙個呼叫自己編寫的指令碼100遍的人,你會覺得誰的素質更高呢?當然是後者。在每天的工作中,我們會和很多的人打交道,如果你給他們留下了好的印象,那麼後續的工作也更好開展了。

在實際的軟體研發工作中,我們要合理利用資源,力爭多、快、好、省地完成自己的工作。

計算機執行命令全集

winver 檢查windows版本 wmimgmt.msc 開啟windows管理體系結構 wupdmgr windows更新程式 winver 檢查windows版本 wmimgmt.msc 開啟windows管理體系結構 wupdmgr windows更新程式 wscript windows指...

關於計算機執行的理解

不管是什麼結構,計算機歸根結底的任務就是計算。複雜到天氣預報,矩陣分解,mapreduce或者編輯乙個文件等任何操作,最終都會轉換成為二進位制計算 與門或門非門計算。現在計算機關心的是如何把這些巨複雜的計算機人物化簡轉化為二進位制操作。現在計算機為了實現這個功能,才用了馮諾依曼結構。為了永久儲存,需...

在遠端計算機執行PowerShell命令

檢查powershell remoting是否啟用 在windows server 2008 r2上以管理員身份執行powershell,然後輸入 1 enter pssession computername localhost 返回如下截圖 說明該版本預設是沒有啟用powershell remot...