2013-11-21 74 views
0

我剛剛寫完了成千上萬行的機器人代碼,這些代碼在邏輯語句上具有邏輯語句,只是爲了從編譯器中發現我在某處丟失了大括號。固定大括號(大括號匹配)工具

有沒有一種工具可以自動搜索代碼並修復無與倫比的 大括號?

+2

不,沒有工具會自動將無效代碼轉換爲您的意思。但是,許多文本編輯器強調不匹配的parens。 – zch

+0

這看起來似乎不存在,如果它確實存在,它會如何知道把大括號放在哪裏?它必須找到適當的範圍,並將其放在恰當的位置,這看起來會非常麻煩,可能會使問題更加嚴重。我能看到的最接近的東西就是你的項目的一個很好的編輯器,支持高亮/自動完成。 –

+0

爲什麼你等這麼久才能第一次編譯你的代碼?你應該不斷地編譯你的代碼,因爲它是用來在你遇到問題時發現這類問題的。編譯器錯誤消息可能會識別不匹配大括號的位置。 –

回答

3

每個更好的文本編輯器都會突出顯示無與倫比的大括號。但自動固定牙套?不,因爲那會佔用神奇的占卜。以此表達爲例

x = (3 + y * 5 - 4 * 7 

你會把支架放在哪裏?它是

x = (3 + y) * 5 - 4 * 7 

還是

x = (3 + y * 5 - 4) * 7 

這兩個非常不同的表現。


但是,嚴重的是,你寫了數千行代碼而沒有在兩者之間進行測試?任何類型項目的正確方法是將其分解爲小型,獨立編寫和可測試的單元。我不只是談論在函數中分離代碼。我也在討論在多個獨立的編譯單元(源文件)中分離代碼。

根據經驗,典型的單一源代碼文件不應超過2000行代碼。如果時間更長,你做錯了什麼。類似的單一功能不應超過一個小屏幕(約50行)。

你寫一個這樣的單位的大綱,並測試它。你如何測試它?通過編寫一些測試套件,以最簡單的方式利用該單元。獨立測試每個單元。你測試單位......因此這稱爲單元測試。請注意,單元測試不驗證代碼,它們僅顯示代碼符合所選測試條件的預期行爲。

一旦你的單元測試框架爲綱要,你可以充實它。對於添加到單元中的每個新功能,您都會爲單元測試添加補充測試用例。

+0

欣賞幫助。這清楚了一點,爲什麼我一直無法找到一個這樣的程序。 – mberna