自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

避免代碼注釋的五大理由

移動(dòng)開發(fā)
通常,我們閱讀代碼比編寫代碼花費(fèi)的時(shí)間要更多。雖然我從未見過任何科學(xué)研究能夠證明這一點(diǎn),但是在軟件領(lǐng)域,它就好比一個(gè)教條或者信念如此的根深蒂固。因此編寫易于閱讀的代碼就顯得尤為重要。程序員可以通過一些技術(shù)來實(shí)現(xiàn)它,其中一點(diǎn)就包括代碼注釋。

[[77615]]

代碼注釋的作用一直以來都被程序員們廣泛討論。很多人認(rèn)為注釋不是必要的,寫注釋那是因?yàn)榇a可讀性太差了。原文作者 Paulo Ortins 發(fā)表了博文《5 reasons to avoid code comments》,以下為譯文:

通常,我們閱讀代碼比編寫代碼花費(fèi)的時(shí)間要更多。雖然我從未見過任何科學(xué)研究能夠證明這一點(diǎn),但是在軟件領(lǐng)域,它就好比一個(gè)教條或者信念如此的根深蒂固。因此編寫易于閱讀的代碼就顯得尤為重要。程序員可以通過一些技術(shù)來實(shí)現(xiàn)它,其中一點(diǎn)就包括代碼注釋。

關(guān)于代碼注釋的文章,網(wǎng)絡(luò)上有很多討論。我們應(yīng)該使用注釋來解釋代碼嗎?還是應(yīng)該注重編寫表達(dá)式代碼而無需閱讀注釋?Joe Kunk 曾發(fā)表過一篇文章《To Comment or Not to Comment》其中有段內(nèi)容是說所謂的好代碼是指我們應(yīng)該避免注釋,因?yàn)樽⑨屚ǔJ怯脕斫忉?隱藏惡意代碼。

下面就來討論下避免寫代碼注釋的五大理由:

1. 程序員更加傾向于鼓勵(lì)”壞“代碼。

有一種說法,有代碼注釋的就是好代碼,因此,程序員經(jīng)常在代碼邊上寫注釋,使其看起來更加出色。如果我們把代碼注釋當(dāng)做一種信號(hào),那么也許我們正在編寫壞代碼。每當(dāng)我們寫注釋時(shí)應(yīng)該思考如何使代碼看清來更加潔凈。

2. 花費(fèi)更多時(shí)間來編寫和維護(hù)

如果注釋沒有跟隨代碼的變化而變化,即使是正確的注釋也沒有用。注釋通常作為代碼的第二個(gè)版本。當(dāng)為某個(gè)函數(shù)寫注釋時(shí)我們需要不斷的重復(fù)自己,這就違反了 DRY (Don’t Repeat Yourself) 原則?;ㄙM(fèi)時(shí)間來增加復(fù)雜性,軟件需求改變了,代碼也隨之跟著變化。如果我們寫注釋,這就意味著必須去維護(hù)注釋。因此,除非是很必須要,否則我們應(yīng)該拒絕在注釋上花費(fèi)雙倍時(shí)間,相反我們可以利用這些時(shí)間來提高代碼的質(zhì)量或開發(fā)新的特性。

3. 注釋不是測(cè)試/驗(yàn)證

修改代碼可以依賴工具,比如使用編譯器、IDEs 及單元測(cè)試;而注釋卻不能。注釋沒有這些工具,你無法依賴工具或者單元測(cè)試在正確的地方或者過期后來確保它們的正確性。一旦你寫了注釋,沒有測(cè)試模塊來驗(yàn)證它的正確性,一旦這個(gè)注釋失敗了,那么它就永遠(yuǎn)的失敗了。

4. 注釋沒有代碼文檔可靠

通常,注釋過期后,它們往往與代碼失去了連接性。程序員閱讀這些注釋或許被“欺騙”了。即使不斷的更新了代碼注釋,唯一了解的是這個(gè)代碼應(yīng)該是什么以及它的可讀性。舉個(gè)例子,如果老本問我們?nèi)绻?xiàng)目發(fā)生了更改,我們從哪能看出?是代碼還是注釋?——答案當(dāng)然是代碼。

5. 代碼注釋風(fēng)格填補(bǔ)了屏幕空間

采用標(biāo)準(zhǔn)化的注釋尤為重要,某些注釋標(biāo)準(zhǔn)(如同下面)使用了很多行,這就要求你盡可能多的閱讀更多代碼。

  1. $string = 
  2. “Lorem ipsum dolor sit amet, consectetur 
  3. adipiscing elit. Nunc ut elit id mi ultricies 
  4. adipiscing. Nulla facilisi. Praesent pulvinar, 
  5. sapien vel feugiat vestibulum, nulla dui pretium orci, 
  6. non ultricies elit lacus quis ante. Lorem ipsum dolor 
  7. sit amet, consectetur adipiscing elit. Aliquam 
  8. pretium ullamcorper urna quis iaculis. Etiam ac massa 
  9. sed turpis tempor luctus. Curabitur sed nibh eu elit 
  10. mollis congue. Praesent ipsum diam, consectetur vitae 
  11. ornare a, aliquam a nunc. In id magna pellentesque 
  12. tellus posuere adipiscing. Sed non mi metus, at lacinia 
  13. augue. Sed magna nisi, ornare in mollis in, mollis 
  14. sed nunc. Etiam at justo in leo congue mollis. 
  15. Nullam in neque eget metus hendrerit scelerisque 
  16. eu non enim. Ut malesuada lacus eu nulla bibendum 
  17. id euismod urna sodales. “; 
  18. $compressed = gzcompress ($string); 
  19. echo “Original size: “. strlen ($string).”\n”; 
  20. /* 輸出原始大小 
  21. Original size: 800 
  22. */ 
  23. echo “Compressed size: “. strlen ($compressed).”\n”; 
  24. /* 輸出壓縮后的大小 
  25. Compressed size: 418 
  26. */ // 解壓縮 $original = gzuncompress ($compressed); 

PS:本文所說的“避免代碼注釋",并不是說就不寫代碼注釋,而是盡量避免去寫代碼注釋,假如你認(rèn)為值得也可以這么做。

責(zé)任編輯:閆佳明 來源: apkbus
相關(guān)推薦

2013-07-16 10:49:11

代碼注釋

2014-07-11 13:56:16

2013-09-25 09:58:33

必應(yīng)

2010-07-28 16:09:53

蘋果

2016-09-29 14:39:01

openSUSELinux版本

2017-08-28 21:50:09

大數(shù)據(jù)PythonGo語言

2011-02-15 08:39:49

2018-02-10 09:48:04

存儲(chǔ)軟件理由

2013-09-17 10:14:22

騰訊搜狗

2011-05-18 10:40:19

Windows 7

2011-04-15 10:38:27

VDI

2012-04-18 09:42:36

數(shù)據(jù)分析Hadoop

2016-06-30 09:21:33

WindowsLinux系統(tǒng)

2016-08-10 10:27:30

2011-05-19 10:20:49

2009-08-27 13:02:43

2010-09-02 15:58:46

2016-10-17 09:47:21

2010-07-16 10:14:07

2022-04-25 12:41:33

SIEM安全信息事件管理安全運(yùn)營
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)