成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

常見的編碼錯誤,再不避免就完了

開發 后端 深度學習
犯錯乃人之常情。然而,開發人員所犯的許多錯誤是可以避免的。如果能避免本文提到的這些常見錯誤,就能寫出更好、更簡潔的代碼。

 犯錯乃人之常情。

然而,開發人員所犯的許多錯誤是可以避免的。如果能避免本文提到的這些常見錯誤,就能寫出更好、更簡潔的代碼。

[[313623]]

這不僅于自身有利,對那些需要查看代碼的其他開發人員也有利。所以避開常見錯誤不僅僅是為自己——也是幫了團隊一個大忙。

綜上所述,小芯這次為大家整理了一系列應避免的常見錯誤:

1. 變量的非描述性命名

好的變量名稱非常重要,再怎么強調也不為過。很多時候,你不是唯一一個項目開發人員,其他開發人員也需要了解你編寫的代碼。

選擇好的名字需要時間,但可以節省更多的時間。

2. 幻數和字符串

接著上文變量的非描述性命名,跳到下一項,該項關于不給變量賦值,也被稱為幻數或魔法字符串。

維基百科定義:

幻數是唯一值,具有無法解釋的意義且多次出現,可以而且應該被命名常量替換。

來看看下面的代碼片段:

 

  1. for ($i = 1; $i <= 52; $i++) { 
  2.  
  3. ... 
  4.  

 

該例中的數字52就是一個幻數。沒有人明白為什么有52這個數字及其代表什么。為什么是52?為什么不能是64?這些是一年中的星期總數嗎?

更明晰的方法是:

 

  1. $cardDeckSize = 52;for ($i = 1;$i <= $cardDeckSize; $i++) { 
  2.  
  3. ... 
  4.  

 

現在每個人都會明白這是在循環一副紙牌。該代碼給其他開發人員提供了語境。除此之外,更改數值更容易,因為值只在變量中存儲一次,不會重復。

幻數經常在程序的不同位置多次使用,因此容易出錯。

對于字符串來說也是如此,可采用同種方法:

 

  1. if (userPasswordIsValid($user,"6yP4cZ".$password)) { 
  2.  
  3. ... 
  4.  

 

6yP4cZ是什么?似乎非常隨意。

 

  1. $salt = "6yP4cZ";if(userPasswordIsValid($user, $salt.$password)) { 
  2.  
  3. ... 
  4.  

 

啊哈,現在就說得通了!

3. 代碼格式混亂

混淆代碼的格式通常是那些沒有豐富編程經驗的人才會犯的。如果問有著多年經驗的開發人員,問他們是否認識一個測試人員或數據科學家混淆過代碼格式,他們可能都會點頭。這是由于缺乏經驗——除非使用像Python這樣的編程語言,可以避免很多此類失誤。

解決格式混亂最常見的方法是使用linter(應用代碼校驗)。現代集成開發系統(IDEs)也都有可能解決這個問題。有時需要安裝一個插件,有時也可以直接完成。

4. 在一個函數中進行太多內容

根據單一職責模式,一個函數只應負責做一件事,只有一件事。筆者看到過太多函數集結了獲取、處理并呈現數據三個功能。把這個函數分開處理才是好的編程,一個函數獲取數據,一個函數處理數據,另一個函數顯示數據。

一個函數只關注一個內容之所以重要,是因為這能讓其運行更穩健。比如說,從API(應用程序接口)中獲取數據。如果API有變動——例如,出現了一個新版本——那么如果處理代碼同屬一個函數,那么處理代碼過程中斷的風險就會更大,這很可能會導致數據顯示也被中斷。

5. 硬編碼

硬編碼是將數據直接嵌入到程序或其他可執行對象的源代碼中的軟件開發行為,而不是從外部獲取數據或在運行時生成數據。

硬編碼的值不允許更改;它們是固定值。硬編碼被看作是一種反模式,或者至少是意味著一種壞代碼。

硬編碼最多的東西,不管是什么(有時甚至有效)原因,都是密碼和文件位置。

人們看到的很多硬編碼密碼場景是用于外部服務或API的身份驗證。這些證書往往被硬編碼,但并不是很好的做法。

如果發現自己硬編碼了很多東西,真的應該仔細審視自己寫的代碼,因為大多數時候這都不是解決問題的好方法。

6. 注釋掉代碼

人們看到過包含多個函數的代碼塊被注釋掉。沒人知道為什么它還在那里,而且沒人知道這段代碼是否還有意義。但是,沒人會刪除這段代碼,而這是開發人員真正應該做的事情。之所以沒人刪除這段代碼,是因為每個人都認為其他人可能會用到。

只需刪除那段注釋掉的代碼即可。即使代碼不在新的版本中,如果有人想使用,該代碼仍然可以在版本控制中使用。

不過這只是筆者的個人看法。

責任編輯:華軒 來源: 讀芯術
相關推薦

2020-01-31 18:03:49

編碼開發代碼

2020-05-21 18:38:49

JavaScript前端技術

2020-03-02 08:35:05

物聯網實施物聯網IOT

2018-08-06 22:06:06

云遷移云端云計算

2013-09-02 13:21:35

2016-03-19 12:13:36

2010-09-14 15:17:51

2023-01-09 15:16:17

2019-08-13 11:32:55

物聯網技術大數據

2023-05-11 09:06:50

錯誤IT培訓

2015-01-14 09:29:35

2013-08-15 09:47:07

云遷移云技術

2018-11-13 11:40:20

軟件定義廣域網SD-WAN安全

2018-03-21 07:01:59

工業物聯網IIoT物聯網

2018-07-11 05:24:05

機器學習人工智能數據

2020-11-04 10:11:22

區塊鏈塊鏈技術

2009-06-22 15:01:00

java項目常見錯誤

2025-03-18 14:27:35

2022-10-10 09:00:35

ReactJSX組件

2023-05-06 10:50:41

IT培訓IT團隊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看av网站永久 | 欧美日韩国产精品激情在线播放 | 中文字幕第一页在线 | av手机免费在线观看 | 色影视 | 国产成人精品在线 | 一级黄色影片在线观看 | 天天操夜夜操免费视频 | 国产精品美女久久久久久久久久久 | 欧美日韩国产传媒 | 日韩第一区 | 成人免费视频网站在线观看 | 国产激情视频在线观看 | 久久久精彩视频 | 久久人爽| 日韩欧美视频免费在线观看 | 欧美理伦片在线播放 | 看羞羞视频 | 欧美国产精品一区二区三区 | 91免费电影 | 91精品国产综合久久久久久丝袜 | 亚洲成av | 久久一区 | 成人免费大片黄在线播放 | 国产成人a亚洲精品 | 国产成人一区 | 三区四区在线观看 | 五月天婷婷丁香 | 成人在线观看免费 | 91中文在线观看 | 2019天天干夜夜操 | 国产精品亚洲综合 | 久久综合九色综合欧美狠狠 | 福利社午夜影院 | 国产黄色在线观看 | 欧美一区2区三区4区公司 | 日韩欧美在线观看 | 久久久久亚洲国产| 91电影| 欧美男人天堂 | 亚洲一区二区久久 |