久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

node.js學(xué)習(xí)調(diào)式代碼的方法

時(shí)間:2021-01-05 14:13:18 學(xué)習(xí)方法 我要投稿

node.js學(xué)習(xí)調(diào)式代碼的方法

  前言

node.js學(xué)習(xí)調(diào)式代碼的方法

  你有沒(méi)有曾經(jīng)調(diào)式某段代碼時(shí),總覺(jué)得世界上有鬼?

  你有沒(méi)有曾經(jīng)調(diào)式API時(shí),總感覺(jué)是調(diào)用第三方的接口問(wèn)題或者文檔說(shuō)明不對(duì)?

  你有沒(méi)有曾經(jīng)調(diào)式一個(gè)bug 時(shí),總感覺(jué)問(wèn)題的來(lái)源是使用的方式不對(duì)?

  你有沒(méi)有在安裝一個(gè)服務(wù)時(shí),總感覺(jué)文檔或者環(huán)境不相符合?

  相信過(guò)程和方法,切勿被結(jié)果誤導(dǎo) ............

  概述

  調(diào)式代碼很多時(shí)候類(lèi)似于查案一樣,只是結(jié)果的重要程度不同,警察查案為的是人民安穩(wěn),而我們調(diào)式則是為了系統(tǒng)的安穩(wěn)。既然這樣我們就不要冤枉任何一段代碼和程序,以免他們受到不合理的懲罰。

  以下的一些過(guò)程方法都來(lái)自于個(gè)人總結(jié),從個(gè)人角度說(shuō)前人一些方法都是經(jīng)過(guò)長(zhǎng)期的經(jīng)驗(yàn)積累,當(dāng)然參考性理論性都比較強(qiáng),而作為個(gè)人的方法,則可能更適合像我等 DS 。

  測(cè)試方法

  代碼過(guò)程式調(diào)式方法

  代碼調(diào)式首先要注意的是過(guò)程,你必須要理清楚導(dǎo)致最終結(jié)果的思路,也就是作案的過(guò)程,從作案過(guò)程中的一步步跟進(jìn)得到作案結(jié)果。在作案過(guò)程分析中對(duì)于每一個(gè)疑點(diǎn)都必須打上標(biāo)記(也就是代碼中所提到的 log 信息)。經(jīng)過(guò)這樣的分析過(guò)程后,再進(jìn)行黑盒測(cè)試,添加輸入,驗(yàn)證結(jié)果。最終根據(jù)每一步的標(biāo)記來(lái)驗(yàn)證你的'判斷,從而找到原因。

  以上的方案是一種過(guò)程式的調(diào)式方式。這種方式的優(yōu)點(diǎn)不言而喻,直接可以通過(guò)一個(gè)測(cè)試就可以分析清楚整個(gè)過(guò)程,但是這種方式很耗時(shí)間,理清楚自己的代碼邏輯尚可,而想要理清楚他人邏輯代碼則可要難于上青天。

  單元測(cè)試調(diào)式方法

  單元測(cè)試的基本目的是保證某個(gè)函數(shù)、類(lèi)或者某個(gè)功能模塊的正常運(yùn)作,包括其異常情況的測(cè)試驗(yàn)證。而作為程序員最喜歡的驗(yàn)證方式莫過(guò)于“打樁”(打樁的含義就是提供假默認(rèn)數(shù)據(jù)),這種方式調(diào)式起來(lái)非常方便,但是有一個(gè)不利的地方就是無(wú)法再次利用,因?yàn)樵谖覀凃?yàn)證正常以后,很多開(kāi)發(fā)人員都會(huì)將其注釋或者刪除,因此如果我們?cè)陂_(kāi)發(fā)環(huán)境開(kāi)發(fā)完成,但我們希望在測(cè)試環(huán)境驗(yàn)證時(shí),則必須又要重新寫(xiě)一篇打樁邏輯,那么這樣看,到現(xiàn)網(wǎng)時(shí),則會(huì)更加的麻煩。既然這么多不便,你可以嘗試下面的做法。

  添加一個(gè)單元測(cè)試類(lèi),這個(gè)類(lèi)需要控制其權(quán)限,只有通過(guò)后臺(tái)登錄或者是命令行才可以執(zhí)行,該類(lèi)承載的作用就是對(duì)系統(tǒng)的關(guān)鍵邏輯進(jìn)行檢測(cè),并且做出相應(yīng)的測(cè)試輸出結(jié)果。要相信所有的接口類(lèi)都是可以通過(guò)單元測(cè)試類(lèi)去完成測(cè)試的。很多時(shí)候程序員在質(zhì)疑,這件事情是不是應(yīng)該我們做?其實(shí)還真是需要我們?nèi)プ,畢竟很多測(cè)試現(xiàn)在做的都是黑盒測(cè)試。

  這種調(diào)式方法適合在開(kāi)發(fā)過(guò)程中,并且可以保證我們現(xiàn)網(wǎng)的代碼發(fā)布后運(yùn)行正常。希望大家在計(jì)劃開(kāi)發(fā)時(shí)間時(shí)也將該過(guò)程并于開(kāi)發(fā)階段。

  快速定位法

  前面兩個(gè)那么復(fù)雜的過(guò)程太理想化了?我的代碼就只有 100 行,并且系統(tǒng)也不復(fù)雜。如果是這樣的話,那么就快速的進(jìn)行定位分析。很多時(shí)候會(huì)遇到

  1、輸入正常,輸出異常;

  2、輸入正常,邏輯異常,輸出異常;

  3、輸入異常,邏輯正常,輸出正常;

  4、輸入異常,邏輯異常,輸出無(wú)。

  在個(gè)人的開(kāi)發(fā)過(guò)程中,我經(jīng)常會(huì)遇到上面的某種類(lèi)型的問(wèn)題,比如在 Node.js 開(kāi)發(fā)過(guò)程中,遇到 string.length 提示 string 沒(méi)有 length 方法。當(dāng)時(shí)就昏頭的在問(wèn)自己,為什么其他 string 都有 length 方法,為什么這個(gè)就沒(méi)有呢?應(yīng)該很多同學(xué)都知道問(wèn)題就在于這個(gè) string 根本就不是 string ,只是說(shuō)你自己把它理想化為 string 了,也就是你輸入的本來(lái)就有問(wèn)題。那么定位這個(gè)問(wèn)題的最好辦法就是打印輸入,打印輸出即可。

  可能其他的程序沒(méi)有這么簡(jiǎn)單,但是最基本的就是在主函數(shù)中的會(huì)遇到異常的函數(shù)都進(jìn)行輸入輸出判斷,那樣就可以快速的定位。

  切記:不要斷章取義,自以為是。

  上面的方法以及過(guò)程都只是基于 PHP 或者 Node.js 總結(jié)出來(lái)的,對(duì)于 C & C++ 可能存在相似或者相異處。不喜勿噴,且看且珍惜吧。

【node.js學(xué)習(xí)調(diào)式代碼的方法】相關(guān)文章:

網(wǎng)站代碼全面優(yōu)化的方法08-07

Javascript拓展String方法代碼11-23

越劇的調(diào)式是什么11-05

五聲調(diào)式音階及鋼琴練習(xí)方法09-22

最佳的 Node.js 教程結(jié)合實(shí)例10-05

PHP url 加密解密函數(shù)代碼方法11-17

學(xué)習(xí)的方法01-03

樂(lè)理知識(shí)中關(guān)于角調(diào)式的知識(shí)09-06

jQuery實(shí)現(xiàn)左右圖片輪播代碼操作方法11-11

jQuery中data()方法的語(yǔ)法結(jié)構(gòu)及實(shí)例代碼11-11