天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

調(diào)試高手和編程高手

  業(yè)界總是有高手之說(shuō),高手成了程序員心中之偶像,成了程序員成長(zhǎng)之目標(biāo)。但是,現(xiàn)實(shí)中人們往往對(duì)自己所了解的程序員,很難認(rèn)同為高手;人們反而對(duì)那些自己不了解的,甚至是道聽途說(shuō)的人會(huì)認(rèn)作為高手了。高手,同武林高手一樣,神秘之至。

  許多程序員都有這樣的經(jīng)歷:無(wú)論自己編寫什么很短很短的程序,一般是很難一次就能通過(guò)編譯的;通過(guò)編譯的其功能還不一定是正確的。我在很早就注意這樣現(xiàn)象了,開始的時(shí)候,我還不信這個(gè)邪,還試著編寫程序看看自己能否一次能否編譯成功,為這個(gè)事還和別人打過(guò)賭呢!這當(dāng)然是年輕時(shí)做過(guò)的事了。后來(lái)我漸漸明白了,編程出錯(cuò)是編程的一個(gè)重要的部分!出錯(cuò)是正常的,不出錯(cuò)才是不正常的。出錯(cuò)怎么辦?當(dāng)然是改錯(cuò)啦!不知道錯(cuò)在什么地方怎么辦?當(dāng)然是調(diào)試?yán)?!調(diào)試于是和編程相依相伴了。程序員不但要會(huì)編寫程序,還要會(huì)調(diào)試程序。

  程序出錯(cuò)一般有:未定義、語(yǔ)法、運(yùn)行出錯(cuò)三個(gè)方面。

  1、未定義

  未定義往往是程序員的忽略定義或定義后名稱與定義不一致造成的。

  1)要避免忽略定義這個(gè)問(wèn)題,程序員首先要養(yǎng)成嚴(yán)謹(jǐn)工作的習(xí)慣:“先定義,后使用”。

  2)解決定義名字與使用名字不一致問(wèn)題,程序員在對(duì)函數(shù)名、變量名、文件名、數(shù)據(jù)庫(kù)名、表名、字段名定義的時(shí)候,不要信手拈來(lái),象不花錢似的任意取名。一定要定下心來(lái)慢慢地斟酌,這個(gè)名字自己不但要能懂能記得,別人一看也要能懂能記得。程序員可以假設(shè)自己定義一個(gè)變量就要花出去100元錢,如果別人看不懂就要另外支付200元。有了這種名字的“有償使用”,這樣程序員就不可能亂取名了。長(zhǎng)此以往,在使用這些名字的時(shí)候程序員就會(huì)有行云流水感覺,而且很少出錯(cuò)。

  2、語(yǔ)法問(wèn)題

  1)新手編程走一步一個(gè)跟頭,走兩步兩個(gè)跟頭,主要是對(duì)語(yǔ)言的語(yǔ)法不熟悉,丟三拉四,關(guān)鍵字拚錯(cuò)等。這種情況不可怕,多看看語(yǔ)法說(shuō)明,多改改程序就會(huì)對(duì)語(yǔ)法越來(lái)越熟悉了。

  2)老程序員語(yǔ)法問(wèn)題出現(xiàn)較少。但是,很多情況下程序員在使用新語(yǔ)言編程序的時(shí)候,會(huì)采用老語(yǔ)言的語(yǔ)法,反之亦然,導(dǎo)致出錯(cuò)。例如,某人先使用C語(yǔ)言,后使用VFP。當(dāng)用VFP編程的時(shí)候,往往習(xí)慣性地在語(yǔ)句后面加上“;”,這導(dǎo)致VFP語(yǔ)法出錯(cuò)。當(dāng)熟悉VFP后,再編寫C語(yǔ)言的時(shí)候,往往在語(yǔ)句后面忘記加上“;”,導(dǎo)致C語(yǔ)言語(yǔ)法出錯(cuò)。類似常見問(wèn)題如:IF語(yǔ)句后面表達(dá)式是否要加“()”等,for 語(yǔ)句,while 語(yǔ)句,case語(yǔ)句在不同的語(yǔ)言的語(yǔ)法都有可能不同。另外,不同數(shù)據(jù)庫(kù)中的SELECT 、INSERT、語(yǔ)法都有一些不同處,這些不同之處,往往讓程序員不知所措,老是要停下來(lái)思考一下,現(xiàn)在用的是什么語(yǔ)言用的是什么語(yǔ)法。

  3、運(yùn)行問(wèn)題

  定義、語(yǔ)法這些都是顯式出錯(cuò),相對(duì)好解決。但是運(yùn)行中出現(xiàn)錯(cuò)誤就五花八門了,我試著歸納一下:

  1)運(yùn)行中程序突然中斷了并退出了。

  往往是內(nèi)存出錯(cuò)!可查變量、指針是否越界,指針是否為空等、例外沒有處理。

  2)環(huán)境問(wèn)題

  例如,數(shù)據(jù)庫(kù)密碼錯(cuò)導(dǎo)致數(shù)據(jù)庫(kù)打開不了、要打開的文件不存在、參數(shù)定義錯(cuò),參數(shù)表為空,參數(shù)表沒有缺省值等。

  3)程序的輸出的不是自己的預(yù)期結(jié)果

  往往是程序邏輯和算法存在問(wèn)題。

  4)程序不停地運(yùn)行沒有停止的跡象

  查一下循環(huán)的條件表達(dá)式是否永真、導(dǎo)致死循環(huán)。

  5)程序無(wú)法退出

  程序亂了,導(dǎo)致內(nèi)存錯(cuò),覆蓋了退出指令!

  6)程序運(yùn)行了很長(zhǎng)時(shí)間才出現(xiàn)了錯(cuò)誤

  累計(jì)誤差、數(shù)據(jù)原因造成的錯(cuò)誤等。

  出錯(cuò)是必然的,如何找出錯(cuò)誤,有些人編寫C語(yǔ)言的人只會(huì)用在可能出錯(cuò)的語(yǔ)言前后,通過(guò)顯示語(yǔ)句print來(lái)判別出錯(cuò)的原因。他們不懂debug、 sdb、 dbx等調(diào)試工具,來(lái)調(diào)試程序,他們會(huì)編不會(huì)調(diào)。我們很難想象不會(huì)調(diào)試的程序員是如何編程的,調(diào)試對(duì)于程序員如此重要,以致于可導(dǎo)致出“不會(huì)調(diào)試的程序員就不是程序員”的結(jié)論。

  現(xiàn)在的開發(fā)語(yǔ)言具有功能豐富的調(diào)試命令。無(wú)論用什么設(shè)計(jì)語(yǔ)言調(diào)試,你只要注意掌握以下幾個(gè)命令或操作,就能入門調(diào)試了:

  1、 運(yùn)行程序

  2、 設(shè)置斷點(diǎn)、取消斷點(diǎn)

  3、 運(yùn)行到斷點(diǎn)

  4、 單步跟蹤(setp into)

  5、 單步執(zhí)行(step over)

  6、 顯示變量、對(duì)象、源程序

  7、 退出調(diào)試

  你可以按此去尋找相應(yīng)的命令和操作,并熟記于心中!此法必有大用。

  通過(guò)調(diào)試,程序員可以學(xué)會(huì)如何運(yùn)用斷點(diǎn)、如何最快地找到可疑語(yǔ)句,如何很迅速地找到問(wèn)題所在從而改進(jìn)程序。而不斷地調(diào)試,使得程序員不停進(jìn)行調(diào)試操作,變成了操作高手。調(diào)試內(nèi)容可以說(shuō)千變?nèi)f化,技巧也多多,關(guān)鍵看程序員的積累。例如,循環(huán)語(yǔ)句調(diào)試的技巧、同步異步調(diào)試的技巧、中斷調(diào)試技巧、外設(shè)調(diào)試技巧、數(shù)據(jù)庫(kù)調(diào)試技巧、邊界調(diào)試技巧、例外調(diào)試技巧、屏蔽法調(diào)試技巧、替代法調(diào)試技巧、接口調(diào)試技巧等等。

  調(diào)試象開車一樣,不會(huì)開的時(shí)候,程序員有恐懼感,會(huì)開了以后,程序員特別想調(diào),開多了,程序員越發(fā)老練,調(diào)試操作越來(lái)越快、對(duì)問(wèn)題發(fā)生的原因和糾正方法也熟記于心中,技巧也油然而生,積累越來(lái)越多。

  好的程序員不但調(diào)試自己的程序,而且會(huì)幫助其他程序員解決調(diào)不出來(lái)的程序的問(wèn)題。程序員在幫助別人的時(shí)候,更能盡顯調(diào)試才華,成為真正的調(diào)試高手。

  調(diào)試總的目標(biāo)是為了糾正程序的錯(cuò)誤。但是,調(diào)試也可用于其他的用途。例如,我經(jīng)常會(huì)先把函數(shù)的調(diào)用語(yǔ)句給寫好,但是不寫函數(shù)體,這樣每次編譯都會(huì)出現(xiàn)函數(shù)沒有發(fā)現(xiàn)的提示。我不寫函數(shù)體的目的,就是讓每次編譯的時(shí)候提示我還有多少函數(shù)沒有編寫。讓我對(duì)這個(gè)函數(shù)加深印象,給我有時(shí)間思考這個(gè)函數(shù)如何編寫。當(dāng)其他語(yǔ)句編寫完后,我再一個(gè)一個(gè)把沒有編寫的函數(shù)內(nèi)容補(bǔ)上,這個(gè)時(shí)候編寫就快的多了。有的時(shí)候,我還喜歡看到幾十條上百條的出錯(cuò)提示,然后,我感覺于一個(gè)改錯(cuò)就能消滅幾十個(gè)錯(cuò)誤的快感之中,然后再改再調(diào),直到無(wú)錯(cuò)。調(diào)試成了我娛樂(lè)編程的一部分。 

  通過(guò)調(diào)試你也會(huì)發(fā)現(xiàn):編程水平直接影響到調(diào)試。如果程序很具有模塊性,調(diào)試起來(lái)就很快,幾個(gè)或十幾個(gè)單步執(zhí)行就會(huì)到達(dá)程序的任何地方,如果程序本身邏輯性不強(qiáng),變量命名不準(zhǔn)確、一個(gè)函數(shù)內(nèi)語(yǔ)句有數(shù)十條數(shù)百條,那你幾百個(gè)單步執(zhí)行都到達(dá)不了你想要達(dá)到的地方,程序調(diào)試起來(lái)就會(huì)很麻煩,而且不容易定位出錯(cuò)的地方。所以調(diào)試高手往往會(huì)改進(jìn)自己的編程,使得編程水平日益提高,成為編程高手。

it知識(shí)庫(kù)調(diào)試高手和編程高手,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲美女视频高清在线看 | xart欧美一区在线播放 | 暖暖在线观看播放视频 | 天美传媒在线完整免费观看网站 | 青娱乐国产精品视频 | 甜性涩爱dvd | 国产精品视频在线自在线 | 日韩内射美女人妻一区二区三区 | 国产欧美一区二区精品性色tv | 亚洲中文无码AV在线观看 | proburn中文破解版下载 | 国产欧美一区二区精品久久久 | 免费国产成人高清在线看软件 | 亚洲精品视频在线免费 | 国产精品一区二区AV白丝在线 | 国产精品久久人妻无码网站一区无 | 中文字幕一区二区三区在线观看 | 国产精品亚洲污污网站入口 | 97资源总站(中文字幕) | a视频在线观看 | 亚洲伊人色综合久久天天伊人 | 亚洲精品久久久无码AV片软件 | YELLOW日本免费观看播放 | 久久九九少妇免费看A片 | 黑人 尺寸 强行害怕 痛哭 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 视频一区国产在线二区 | 亚洲精品一区国产欧美 | 成年女人色毛片免费 | 亚洲精品久久久无码一区二区 | 年轻老师毛茸茸自由性 | 少妇两个奶头喷出奶水了怎么办 | 伦理电影v男人天堂 | 1000部做羞羞事禁片免费视频网站 | 色综合色综合久久综合频道 | 国产成人综合网在线观看 | 亚洲综合国产在不卡在线 | 欧美一区二区三区激情视频 | 久久婷婷五月免费综合色啪 | 香蕉水蜜桃牛奶涩涩 | 色久天|