作者:舒克老師

  我們以Scratch為例,Scratch雖然是一個簡單的圖形化編程工具,將編程簡化到了7歲以上的孩子就能夠操作和使用。但是在實際的制作過程中,會遇到的問題與其他正式的編程語言沒有太大的區別,我們一樣會遇到各種各樣BUG(程序中,隱藏著的一些未被發現的缺陷或問題統稱為bug,那么我們在制作的過程當中有哪些方法來盡量避免設計上的bug,又有什么好的方法,在我們發現程序出現bug的時候能夠快速、準確的找到他們,并且修復問題呢?

一、如何盡量避免BUG

  1、思路清晰:無論使用任何工具,我們在設計代碼模塊的時候,我們都應當盡量理清自己的思路,用盡量簡潔的方式來實現想要的功能,或者使用模塊化的方法來進行制作。同時注意記錄設計思路,無論是記憶還是繪制設計圖。

  2、模塊簡潔:一個程序序列當中,條件分支不宜過多,盡量通過分析將條件從新組合,以更加簡便的方式來進行。同時循環嵌套也同樣需要通過優化方案來盡量減少嵌套的數量。

  3、獨立的功能:能夠重復使用的功能呢,為了實現可重用性和擴展性,建議寫成獨立的過程(比如自定義模塊),定義好相關的參數由外部程序調用。

  4、善用變量:將常用數據通過變量或列表進行存儲,方便統一修改和使用,減少出錯幾率。

  5、分段制作:將一個復雜的功能拆分為多個小功能任務,分步驟進行制作,并且對每一次實現的功能進行測試。

  6、及時測試:我們應當盡量在每一次修改或者完成一小部分的制作后及時進行測試和修改。不要將可能存在的錯誤留到最后才發現,這樣就容易留下各種奇怪的問題,同時難以定位錯誤的具體原因。

二、如何判斷bug

  1、優先處理容易重現的BUG。

  2、準確的描述出問題的現象以及和我們預期效果的差別。

  3、找出我們的程序流程錯誤還是邏輯錯誤或者是數據的運算錯誤等等。

  如果能夠簡單的通過判斷來找出錯誤類型,那么對于我們定位問題的位置就會有很大的幫助。

三、如何定位bug

  1、找出自己的設計,憑記憶,或者畫下來。

  2、根據程序的設計來尋找錯誤可能存在的地點

  在這其中有很多的方法來幫助我們準確的找到錯誤位置,比如:

  1)、變量定位:在我們認為是程序的執行次數或者是否執行的問題上出現錯誤的時候,我們可以選擇在懷疑沒有運行或者運行出錯的模塊當中,插入一個變量來觀察輸出的結果,如果輸出結果正確比如分支正確執行輸出我們的變量內容,或者循環次數正確輸出正確的循環數字,那么我們就可以確定這一代碼序列屬于正確的,否則我們就可以確定這一段序列當中出現了錯誤。

  2)、放大現象:有時候出現的錯誤并不明顯,不能準確的了解到出錯原因,那么這個時候我們就可以想辦法通過重復操作,或者試著修改程序,來放大錯誤現象,幫助我們定位具體的出錯原因和位置。

  3)、二分定位:將懷疑存在錯誤的指令序列進行拆分,進行分步運行,看看哪一個步驟在運行時出現的錯誤,逐步縮小拆分的范圍,來確定錯誤位置。

scratch拆分后的指令可以通過直接左鍵點擊序列來分步運行單獨的部分。

  4)、現場模擬:換個角度來思考問題,如果我需要設計出現錯誤的效果,那么我會怎樣來設計我的功能和指令序列,然后根據自己可能采用的方法,去尋找是否有部分指令序列有相似的效果。

四、如何處理bug

  1、逐個解決,多測試。每次修改指令或者數據后務必立馬進行測試,查看錯誤是否被修正,或現象是否有好轉,逐步解決錯誤。

  2、記錄BUG,這樣便于在后面的制作過程中解決類似問題,以及作為日志記錄,便于我們以后的了解。

  3、掩蓋錯誤,盡管這是一個十分不推薦的方法,但是當我們遇到短時間內用了各種辦法實在無法解決的問題時,我們可以通過加入更多指令的方法,來修正錯誤的現象,但是不到萬不得已,不建議使用,這可能會留下更大的隱患。

  4、尋求幫助,加入QQ群或其它交流群去尋求他人指導與幫助,不過有個前提你需要能夠清晰的表達自己所遇到的問題,這樣會事半功倍。

  總結:盡管我們使用的是看起來十分簡單易懂的scratch來進行制作,但是作為計算機的創作來說依舊是十分嚴謹的,稍不注意我們就可能會在自己的作品中留下一些錯誤,我們不能放任不管,而是堅定目標持之以恒,盡量消滅每一個錯誤,來打造一個流暢的體驗。

  最后感謝少兒編程網專業導師:珠海-大白兔、QQ群內各位老師以及知乎網友姚冬


本站內容未經許可,禁止任何網站及個人進行轉載。

   少兒編程網scratch中文素材在線生成