摘要: 要點(diǎn):絕對(duì)不應(yīng)該在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù)。
閱讀全文
摘要: 有兩個(gè)相同的棧,一個(gè)里面放著自大到小排列的數(shù),棧頂?shù)臄?shù)最小,另一個(gè)棧是空的.
不允許利用其它的數(shù)據(jù)結(jié)構(gòu),只能利用這兩個(gè)棧,要求把第一個(gè)棧里的數(shù)字反過來,從
小到大排列,結(jié)果還放在原來的那個(gè)棧里面。
閱讀全文
摘要: 單元測(cè)試(模塊測(cè)試)是開發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測(cè)代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件(或者場(chǎng)景)下某個(gè)特定函數(shù)的行為。例如,你可能把一個(gè)很大的值放入一個(gè)有序list 中去,然后確認(rèn)該值出現(xiàn)在list 的尾部。或者,你可能會(huì)從字符串中刪除匹配某種模式的字符,然后確認(rèn)字符串確實(shí)不再包含這些字符了。
單元測(cè)試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責(zé)任編寫功能代碼,同時(shí)也就有責(zé)任為自己的代碼編寫單元測(cè)試。執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為和我們期望的一致。
要進(jìn)行充分的單元測(cè)試,應(yīng)專門編寫測(cè)試代碼,并與產(chǎn)品代碼隔離。個(gè)人認(rèn)為,比較簡(jiǎn)單的辦法是為產(chǎn)品工程建立對(duì)應(yīng)的測(cè)試工程,為每個(gè)類建立對(duì)應(yīng)的測(cè)試類,為每個(gè)函數(shù)(很簡(jiǎn)單的除外)建立測(cè)試函數(shù)。
閱讀全文
摘要: 測(cè)試用例就是測(cè)試數(shù)據(jù)及與之相關(guān)的功能的一個(gè)特定集合,它是為驗(yàn)證被測(cè)試程序(為測(cè)試程序路徑或驗(yàn)證是否符合特定功能等方面的需求)而設(shè)計(jì)的。在單元測(cè)試過程中,測(cè)試用例的設(shè)計(jì)應(yīng)與復(fù)審工作相結(jié)合,根據(jù)設(shè)計(jì)的測(cè)試用例選取不同的測(cè)試數(shù)據(jù),將增加發(fā)現(xiàn)各類錯(cuò)誤的可能性;另外,根據(jù)項(xiàng)目的具體情況確定測(cè)試用例項(xiàng)。如:測(cè)試用例編號(hào)、用例輸入、用例預(yù)期輸出、被測(cè)單元的版本號(hào)、實(shí)際輸出等。單元測(cè)試用例的設(shè)計(jì)既可以使用白盒測(cè)試也可以使用黑盒測(cè)試,但以白盒測(cè)試為主,黑盒測(cè)試側(cè)重于功能,白盒測(cè)試側(cè)重于邏輯。
白盒測(cè)試進(jìn)入的前提條件是測(cè)試人員已經(jīng)對(duì)被測(cè)試對(duì)象有了一定的了解,基本上明確了被測(cè)試軟件的邏輯結(jié)構(gòu)。具體過程就是針對(duì)程序邏輯結(jié)構(gòu)設(shè)計(jì)和加載測(cè)試用例,驅(qū)動(dòng)程序執(zhí)行,檢查在不同點(diǎn)程序的狀態(tài),以確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。
一般來說,為了度量測(cè)試的完整性,測(cè)試工作中通常要求達(dá)到一定的覆蓋率要求。因?yàn)橥ㄟ^覆蓋率的統(tǒng)計(jì)可以知道測(cè)試是否充分,對(duì)軟件的哪個(gè)部分所做的測(cè)試不夠,指導(dǎo)我們?nèi)绾卧O(shè)計(jì)增加覆蓋率的測(cè)試用例。這樣就能夠提高測(cè)試質(zhì)量,盡量避免設(shè)計(jì)無效的用例。
在白盒測(cè)
閱讀全文
摘要: 最常見的通配符是?和*。其中,?可以代表一個(gè)字符(不能沒有),*可以代表任意多個(gè)字符(可以為空)。
首先是?,根據(jù)?的功能,?表示任意字符,也就是說在匹配過程中,?永遠(yuǎn)匹配成功。本質(zhì)上,?并沒有修改算法,而僅僅修改了匹配規(guī)則——遇到?則一定匹配。
然而*與此不同,*的作用是匹配任意多個(gè)字符,顯然我們不能簡(jiǎn)單的修改匹配過程而滿足要求。如果我們重新思考*的作用,我們會(huì)發(fā)現(xiàn)*的另一個(gè)作用就是分割P串,即如果P=P1*P2,那么與其說*代表匹配任意多個(gè)字符,不如說P的匹配條件是在匹配P1子串后再匹配P2子串。
因此,可以寫出帶通配符的字符串匹配算法
閱讀全文
摘要: 數(shù)據(jù)庫范式是數(shù)據(jù)庫設(shè)計(jì)中必不可少的知識(shí),沒有對(duì)范式的理解,就無法設(shè)計(jì)出高效率、優(yōu)雅的數(shù)據(jù)庫。甚至設(shè)計(jì)出錯(cuò)誤的數(shù)據(jù)庫。而想要理解并掌握范式卻并不是那 么容易。教科書中一般以關(guān)系代數(shù)的方法來解釋數(shù)據(jù)庫范式。這樣做雖然能夠十分準(zhǔn)確的表達(dá)數(shù)據(jù)庫范式,但比較抽象,不太直觀,不便于理解,更難以記憶。
閱讀全文
摘要:
關(guān)系數(shù)據(jù)庫設(shè)計(jì)之時(shí)是要遵守一定的規(guī)則的。尤其是數(shù)據(jù)庫設(shè)計(jì)范式 現(xiàn)簡(jiǎn)單介紹1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介紹。 在你設(shè)計(jì)數(shù)據(jù)庫之時(shí),若能符合這幾個(gè)范式,你就是數(shù)據(jù)庫設(shè)計(jì)的高手。j
閱讀全文
摘要: 摘要:一,一個(gè)大容量的頁面文件容器;二、一個(gè)高效的HTTP下載器;三、一個(gè)完善的URL提取器;四、一個(gè)便利的結(jié)構(gòu)化數(shù)據(jù)提取器
閱讀全文
摘要: 轉(zhuǎn)自javaeye。一個(gè)高性能的Web爬蟲,必須有一個(gè)合適的網(wǎng)頁容器。該容量最大的特點(diǎn)是要能夠通過URL直接存取網(wǎng)頁內(nèi)容,并且要求有很高的性能,在一個(gè)千萬級(jí)別的容器中存取一萬次的時(shí)間應(yīng)在1分鐘左右(普通PC上)。采用拆衷的辦法,在文件系統(tǒng)的基礎(chǔ)上建立一組大文件和一組輔助文件,輔助文件實(shí)現(xiàn)通過URL定位該URL代表的網(wǎng)頁在大文件中的位置,從頁實(shí)現(xiàn)不隨文件數(shù)量增長(zhǎng)而性能變化的快速存取。以下將描述一個(gè)簡(jiǎn)潔的實(shí)現(xiàn)。
閱讀全文
摘要: 在網(wǎng)上搜集并整理了一些常用中文分詞包,后面慢慢補(bǔ)全: 庖丁解牛分詞包;LingPipe,開源自然語言處理的Java開源工具包;JE分詞包;LibMMSeg;IKAnalyzer;PHPCWS
閱讀全文
摘要: 從網(wǎng)上總結(jié)的比較好的生成隨機(jī)序列的算法:)
閱讀全文
摘要: 在做VC項(xiàng)目時(shí),用到的關(guān)于動(dòng)態(tài)鏈接庫的一些知識(shí)。
鏈接動(dòng)態(tài)鏈接庫的一些方法
閱讀全文
摘要: 這是甲骨文公司總裁Larry Ellison (Oracle CEO) 在耶魯大學(xué)Yale University 給2000級(jí)畢業(yè)生the graduating class of 2000所作的演講全文,由于他句句驚人,很冷,最后被耶魯大學(xué)保安請(qǐng)下講臺(tái)。該演講號(hào)稱歷史最牛之演講,但是否classic則不得而知,美國出版的一本大學(xué)經(jīng)典演講集未將其收入其中。
歷史上最牛的演講———甲骨文總裁拉里埃里森在耶魯大學(xué)的演講
耶魯?shù)漠厴I(yè)生們,我很抱歉---如果你們不喜歡這樣的開場(chǎng)白。我想請(qǐng)你們?yōu)槲易鲆患?事。請(qǐng)你---好好看一看周圍,看一看站在你左邊的同學(xué),看一看站在你右邊的同學(xué)。 請(qǐng)你設(shè)想這樣的情況:從現(xiàn)在起5年之后,10年之后,或30年之后,今天站在你左邊的 這個(gè)人會(huì)是一個(gè)失敗者;右邊的這個(gè)人,同樣,也是個(gè)失敗者。而你,站在中間的家伙, 你以為會(huì)怎樣? 一樣是失敗者。失敗的經(jīng)歷。失敗的優(yōu)等生。
閱讀全文
摘要: Bill Joy MIT BBS上說微軟電話面試的一道題就是“Who do you think is the best coder, and why?”。我覺得挺有意思的,也來湊個(gè)熱鬧。排名不分先后。
傳奇編程高手:
Bill Joy
John Carmack
David Cutler
Donald E. Knuth
Ken Thompson
Rob Pike
Dennis M. Ritchie
Edsger Wybe Dijkstra
Anders Hejlsberg
閱讀全文