DEV Community

Neil
Neil

Posted on

[觀念] Debug 時的雙重體驗

Image description

寫程式的目的就是要把事情自動化🤖。一件事情從開始到結束一定會有個流程、有步驟、有先後順序。我們要做的事情就是用程式語言所提供的語法工具來完成這些步驟。

有些日常工作的邏輯很簡單,只需一條一條按照順序寫完即可✅。但倘若今天要自動化的步驟較複雜,若沒有先搞清楚事情發生的先後順序及條件,那麼寫起程式來就會是件令人頭痛的事🤯。

當你感覺程式寫起來就是卡卡的,無法一步到位,那麼你應該要先退回到「邏輯語言」這一層來爬梳和整理問題🧐,想法打通了才進展到「程式語言」這一個實作階段。

這就跟開車一樣,會開車的人可以邊開車邊看風景、跟旁邊的人聊天、甚至還可以伸手去拿飲料或調冷氣🚗💨。但是一個還在學開車的人想要模仿這樣的行為簡直是異想天開!還是先按步就班地熟悉基本動作吧!

但這也不能怪新手們,因為市面上的教材並不注重這一塊📚,況且在資訊相關的系所裡教虛擬碼(pseudo code) 時也只是草草帶過。流程圖、UML 也都是進入職場後才自學📈。

想像一下當你寫程式的邏輯有誤,再加上語法又尚未熟悉的情況下,看到一大堆的 error message 和 exception 是什麼樣的心情😱?是否似曾相識?作為初學者的你,能夠很快的發現自己的錯誤是在邏輯上還是語法上?如果能將邏輯語言這層搞定(或至少80+%是正確的),那麼是否麻煩和痛苦就少了一半以上🎉?

現在你知道當程式有 bug 時來源可能有兩個:邏輯和語法🔍。那麼,當你下次寫程式時,或是在 debug 時,你會選擇原來的方式埋頭苦幹?還是先釐清問題最大的根源在哪❓

歡迎在下方留言分享你的看法~💬

Top comments (0)