養成編碼好習慣

2021-07-09 06:49:35 字數 2728 閱讀 9210

1.**排版凌亂.縮排不齊。 

2.錯誤修改後只測試區域性,沒有系統測試  

3.異常不丟擲或不處理。 

4.增加了新的系統引數,在引數初始化函式裡卻不進行賦初值,有時造成加工異常,被客戶反饋回來求解決。

5.新專案號忘記在程式裡更改專案號,更改引數、加工檔案版本。避免客戶出問題時找不到對應的程式或者負責人,或者新專案呼叫別的專案的引數檔案導致不必要的問題。

6.及時上傳程式或做好備份,避免給接手專案的人造成麻煩。

7.編寫**前應該先寫文件

8.程式整體結構的思路不清晰,區域性模組結構複雜

9.定義函式頭還是定義變數都不應該出現漢語拼音,應以英文為準;定義結構體不遵循自然對齊方式排列;

10.函式裡頭區域性變數定義不遵循統一型別統一放置,如布林型放在一起,整形放在一起,完全按照自己想到哪寫到哪,寫完不夠再新增;

11.做除法運算時,總忘記除數要是為0的情況

12.易變的變數,不進行說明,特別是關鍵變數,容易被編譯器進行優化處理,使得使用過程中不能正確傳值。 這樣的錯誤往往難易發現,給除錯程式帶來極大痛苦。

13.缺少清晰的程式設計思路,從區域性而非專案整體入手,導致撿了芝麻丟了西瓜,後續縫縫補補的情況發生。

14.變數型別不對(整型和浮點型不分、位元組數不夠、有無符號)

15.引用陣列元素超界,陣列大小不夠,陣列型別不對,大的陣列的大小直接用數字而不是用巨集定義

16.除了必須等待外,在while(1)中嵌入while(1)

導致問題:實時性差,容易宕機

17.switch中再次嵌入switch

導致問題:邏輯混亂易出錯

18.容易由複製而導致的問題,例如  

setstartv(1,startv[0]);

setspeed(1,speed[0]);

setacc(1,acc[1]);

當複製到其他軸上去時需要修改6個地方,很容易出錯,完全可以改寫為:

axes=0;

setstartv(axes+1,startv[axes]);

setspeed(axes+1,speed[axes]);

setacc(axes+1,acc[axes]);

這樣的話複製的時候只要修改axes的值就好了,或者乾脆把這三條語句定義為乙個帶引數的巨集

#define set_speed(axes)

19.修改**之前不進行備份

20.**換行無規律,有時候一行**很長;

21.不需要修改的變數不用const來保護

22.很少使用標準庫函式和公共函式,需要什麼功能都是隨手寫乙個。

23.switch語句中case常常會丟掉break;

24.經常在乙個函式裡實現好幾個功能。

25.多餘的除錯資訊輸出沒有注釋掉

導致問題:影響程式執行效率甚至導致程式不能正常執行

解決辦法:做成巨集定義,使正式生成**時直接被忽略掉

26.**中有特殊意義的數值不用巨集定義

導致問題:難於閱讀或者修改時容易遺漏出錯

解決辦法:勤快點

27.大量重複的**

導致問題:修改時容易遺漏、工作量大

解決辦法:能做成函式的盡量做成函式,不能做成函式的做成巨集定義

28.一大堆全域性變數

導致問題:模組與模組之間耦合高,修改之時,牽一髮而動全身。

解決辦法:做成帶參呼叫的函式

29.沒有注釋或注釋很少

導致問題:可讀性差,修改麻煩。

解決辦法:勤快點

30.以為所有的變數上電之後的值就一定是0而不進行初始化就使用

導致問題:程式不穩定,執行結果不一致等。

解決辦法:初始化後再呼叫

31.變數、函式命名不規範

導致問題:語言不通,難於閱讀。

解決辦法:熟讀程式設計規範

32.大量開闢記憶體而沒有考慮記憶體共用或迴圈佇列等節約記憶體的方法

導致問題:記憶體很容易被耗光。

解決辦法:內部的模組盡量用指標,最外層的模組才用陣列。

33.函式的可重用性不高,未最大化的發揮其利用價值。

導致問題:多個類似的函式卻不通用。

解決辦法:規劃好傳遞的介面引數,使函式更具包容性。

34.犧牲可讀性換取少敲幾個**

導致問題:維護麻煩

解決辦法:勤快點

35.不經同意對別人的**進行風格改造而未有任何實質性的改動

導致問題:進行版本比對時有大量修改的內容而找不到真正修改的地方。

解決辦法:不對別人已經除錯ok的**進行改動

36.不經同意修改公共模組,例如庫中提供的標頭檔案

導致問題:與別人的模組無法進行快速銜接,不通用。

解決辦法:不對別人提供的庫或模組進行修改

37.專案中的檔案包含關係不清晰,錯綜複雜,包含一些不相關的標頭檔案。

導致問題:修改時麻煩,牽一髮而動全身

解決辦法:盡量將所有未用到的標頭檔案去掉,或則使用條件編譯,根據條件選擇是否包含某個標頭檔案

38.在乙個任務中使用大量的延時函式。

導致問題:不同響應頻率的任務不能在這個任務中一起執行。

解決辦法:乙個任務中只用乙個最小的延時函式作為基準時間,其他的延時時間均為此延時時間的整數倍,這樣可使多種執行頻率的任務在同乙個任務中同時執行。

39.程式修改後無修改記錄。

導致問題:維護麻煩

解決辦法:勤快點

40.使用i,j,k這些常用的臨時變數名稱作為函式的引數名稱。

導致問題:容易與迴圈變數搞混而導致錯誤。

解決辦法:不輕易將i這個變數作為迴圈變數以外用途

養成好習慣!

今天寫了乙個頁面,被組長說 寫的還行,這是我實習乙個月以來得到的乙個比較好的評價了 今天是1月8號,剛好我實習乙個月。回顧這乙個月,寫的頁面不多,主要是自己寫的速度太慢。但是這個月學到很多東西,從乙個可以說就只懂皮毛的小白到現在基本能寫的組長說的還行的 也是不容易啊 還記得我一開始連切圖都不會,切圖...

好習慣要養成

成功是一種習慣,失敗也是一種習慣。你的習慣無法改變,但可以用好的習慣來替代。成功很簡單,只要簡單的事情重複做,養成習慣,如此而已。wo 們要養成以下好習慣 習慣一 成功者清楚地了解他做每一件事情的目的。成功者雖重視事情的結果,但更重視事情的目的,而目的的清楚則有助於他達到結果並且享受過程 習慣二 成...

好習慣的養成

1 以後一定要像今天這樣,如果是用別人的 就一定要用注釋寫清楚每一條語句的含義。2 堅持一小下,才能一點兒點兒地發現有機可成 功 才能讓自己地產生 自信,以 樂觀的心態面對生活中的每一件事,開心每一天。3 對自己狠一點兒,一定要多看書,多敲 往往最重要的理論就在細微之處,卻很難被一般人發現。4 我希...