精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一場關(guān)于代碼注釋的爭執(zhí),引發(fā)的三點思考

開發(fā) 前端
我們開發(fā)流程中會有Code Review過程,這樣每個人都將了解好的注釋是什么樣的,同時你遇到不好的代碼注釋,也需要告訴他如何改進。

[[385297]]

本文轉(zhuǎn)載自微信公眾號「架構(gòu)精進之路」,作者架構(gòu)精進之路。轉(zhuǎn)載本文請聯(lián)系架構(gòu)精進之路公眾號。

在一次研發(fā)溝通會上,大家關(guān)于是否需要代碼注釋做了一番爭執(zhí)(討論)。

主要內(nèi)容簡述如下:

A:我提議項目應(yīng)該有個注釋,我們有些程序員幾乎從不注釋代碼,誰都知道沒注釋的代碼是沒法閱讀的。

B:我覺得注釋沒必要,注釋被當(dāng)做萬靈藥,可是任何實際編碼過的人都知道,注釋反而會使代碼更難讀懂。注釋很容易產(chǎn)生大量的廢話,而編碼語言相對簡明扼要得多。

C:是這么回事。假如代碼不清晰,又怎能注釋的清楚呢?再說,代碼一變,注釋就過時。要是誤讀了過時的注釋,可能又會踩坑了。

C 接著說:另外,注釋過多的代碼更難讀懂,這樣增大了閱讀量。已經(jīng)有一堆代碼要去讀了,何必再去讀一大堆注釋呢?

A:編輯器要知道的東西全在代碼中?二進制文件里面嗎?爭論注釋有無價值干啥呢?

B:我反對注釋主要是覺得浪費資源。

D:也不能這么說,注釋可能會被濫用,但是注釋用得好時卻妙不可言。另外,在我的工作經(jīng)歷中,有注釋和沒注釋的我都維護過,我個人還是更愿意維護有注釋的代碼。最后補一句:盡管沒必要制定注釋的標(biāo)準,但是我還是提倡大家注釋好自己的代碼。

........

關(guān)于是否加注釋爭執(zhí)討論比較久,最終大家統(tǒng)一了如下決定:

“提倡加注釋,但不能濫用。我們開發(fā)流程中會有Code Review過程,這樣每個人都將了解好的注釋是什么樣的,同時你遇到不好的代碼注釋,也需要告訴他如何改進。”

問題思考

作為研發(fā)同學(xué),對于代碼“注釋”其實并不陌生。它往往作為我們代碼文檔的特殊補充而存在。

其實在代碼文檔中,起主要作用的因素并非注釋,而是好的編程風(fēng)格。

編程風(fēng)格包括:良好的程序結(jié)構(gòu)、易于理解的方法、有意義的變量名和子程序名、常量、清晰的布局,以及最低復(fù)雜度的控制流及數(shù)據(jù)結(jié)構(gòu)。

會后我就在反思:那注釋真的是以啰嗦的方式又重復(fù)一遍代碼,所以沒有用么?

好注釋可不是重復(fù)代碼或者解釋代碼,它會讓作者的意圖更清晰,注釋應(yīng)該能在更高的意圖上解釋你想干什么。

日常的注釋

一般情況下,注釋寫的糟糕很容易,寫的出色就很難了。注釋不好只會幫倒忙。

我們來看幾個例子:

  1. // write out the sums 1..n for all n from 1 to num 
  2. current = 1; 
  3. previous = 0; 
  4. sum = 1; 
  5. for(int i=0; i<num; i++){ 
  6.   System.out.Println("Sum = " + sum); 
  7.   sum = current + previous; 
  8.   previous = current
  9.   current = sum

其實這段代碼計算的是斐波那契(Fibonacci)數(shù)列的前num個值。如果注釋錯了,盲目相信注釋可能會南轅北轍,但是好的注釋會事半功倍。

  1. // compute the square root of num using the Newton-Raphson approximation 
  2. r = num / 2; 
  3. while(abs(r - (num/r) > TOLERANCE){ 
  4.   r = 0.5 * (r + (num/r)); 
  5. System.out.println("r = " + r); 

上述例子,它用來計算num的平方根,代碼一般,但注釋比較精準。

注釋的目的

寫代碼和注釋的第一目的是幫助人理解代碼,理解作者的意圖。

所以優(yōu)秀的代碼本身就有自說明功能,只有在代碼本身無法清晰地闡述作者的意圖時,才考慮寫注釋。

即是:注釋應(yīng)該表達我的代碼為什么要這么做,而不是表達我的代碼做了什么。

我們軟件開發(fā)過程中引入了那么多的設(shè)計模式、框架、組件,開發(fā)過程制定了那么詳細的設(shè)計規(guī)范、編碼規(guī)范、命名規(guī)范、很大一部分原因就是為了提高代碼的可讀性。

編程語言特別是高級編程語言,本身就是人和機器之間溝通的語言,語言本身就要求滿足人的可讀性,需要用符合我們自然語言的表達習(xí)慣,不需要額外的注釋。

注釋怎么寫?

當(dāng)然,好代碼 > 差代碼+好注釋,好的注釋是很有價值的,壞注釋不僅浪費時間還可能有害,自解釋的代碼最好。

當(dāng)然,好代碼 > 差代碼+好注釋,好的注釋是很有價值的,壞注釋不僅浪費時間還可能有害,自解釋的代碼最好。好的注釋不是重復(fù)代碼或解釋它,而是使代碼更清楚,注釋在高于代碼的抽象水平上解釋代碼要做什么事。

具體的操作手段,包括但不限于以下幾點:

  • 適當(dāng)注釋,仔細衡量,不要隱晦也不要多余;
  • 注意存在變更情況是,需要及時更新;
  • 注釋代碼中一些tricky的技巧或者特殊的業(yè)務(wù)邏輯,否則會讓讀代碼的人摸不著頭腦;
  • 如果附上jira、bug、需求等的地址能夠幫助理解代碼,可以適當(dāng)加上;
  • 如果代碼命名良好,結(jié)構(gòu)合理,一般來說是不需要什么注釋的。但是用一句話解釋下意圖和功能也是極好的,因為很多時候僅僅是想知道代碼怎么用,讀一句注釋要比分析幾十行代碼快得多。

注釋的原則

1)寫注釋應(yīng)遵循奧卡姆剃刀原則:如無必要,勿增實體

注釋寫的不好、維護得不好(比如改了代碼沒改注釋)會導(dǎo)致代碼的可讀性變差。

2)有句話叫“代碼即注釋”,雖然不完全是,但有道理的

把代碼寫好、寫漂亮,注釋就可以精煉,也必然能寫得更易懂。此外,把思路(難的、關(guān)鍵的)寫清楚,比啥Author、Date重要多了。抓重要信息。

3)建議注釋里盡量寫為什么,而不是做了什么

做了什么,看代碼就好,代碼不會騙人。但為什么要寫成這樣,有時候就非常讓人困惑。有可能是處理某個corner case,有可能是繞過某個系統(tǒng)限制,也可能是什么奇葩需求,這種代碼,沒有當(dāng)時的 context,過幾個月看,像甲骨文一樣,不知道是想干什么。再有看不順眼來優(yōu)化一下,以后就不知道哪個地方會崩了。

其實,大部分的代碼應(yīng)當(dāng)是不言自明的,不需要注釋的。

總結(jié)

  • 好的注釋才有價值

該不該注釋是個需要認真對待的問題。差勁的注釋只會浪費時間。好的注釋才有價值。注釋的位置可以在:變量特定的含義和限制、某個職責(zé)代碼塊的開始、一般控制結(jié)構(gòu)的開始、子程序調(diào)用處、方法開始處描述功能、類開始處描述功能。

  • 源代碼應(yīng)當(dāng)含有程序大部分的關(guān)鍵信息。

只要程序依然在用,源代碼比其他資料都能保持更新,故而將重要信息融入代碼是很有好處的。

  • 好代碼本身就是最好的說明

如果代碼太糟,需要大量注釋,應(yīng)先試著改進代碼,直至無須過多注釋為止。

  • 注釋應(yīng)說出代碼無法說出的東西

例如概述或用意等信息。注釋本身應(yīng)該包含的是對代碼的簡潔的抽象概括,而不是具體代碼的實現(xiàn)細節(jié)。

  • 注釋風(fēng)格也應(yīng)該簡潔易于維護

有的注釋風(fēng)格需要許多重復(fù)性勞動,應(yīng)舍棄之,改用易于維護的注釋風(fēng)格。

作者:架構(gòu)精進之路,專注軟件架構(gòu)研究,技術(shù)學(xué)習(xí)與個人成長。

 

責(zé)任編輯:武曉燕 來源: 架構(gòu)精進之路
相關(guān)推薦

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2010-05-14 00:19:43

2015-05-26 15:17:44

OpenStack

2017-11-06 17:52:49

物聯(lián)網(wǎng)

2015-06-02 11:30:59

面試技術(shù)面試

2012-12-10 12:50:51

SDN互聯(lián)網(wǎng)

2011-05-30 17:49:09

數(shù)據(jù)中心

2022-07-22 14:56:17

Canvas鴻蒙

2011-06-15 14:39:01

HTML 5

2009-12-10 13:51:57

CentOS

2016-08-12 15:51:49

IBM云計算高德

2022-03-02 10:57:24

IT項目項目災(zāi)難

2023-03-08 17:53:15

機器人AI

2017-03-06 09:17:13

2015-09-20 15:50:46

2011-06-14 17:14:33

SEO

2017-01-11 10:38:17

MySQL客戶端代碼

2020-05-14 13:34:46

網(wǎng)絡(luò)安全安全管理漏洞

2011-03-08 11:42:56

2015-07-14 13:48:11

點贊
收藏

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

亚洲最大色网站| 久久精品国产一区二区三区免费看| 精品精品欲导航| 欧美亚洲一二三区| 免费黄色在线网站| av在线这里只有精品| 国产成人综合精品| 久久久国产精品人人片| 精品国产一区二区三区四区| 欧美精三区欧美精三区| 五十路熟女丰满大屁股| 在线视频自拍| 91香蕉视频mp4| 91视频88av| 不卡av电影在线| 午夜精品久久99蜜桃的功能介绍| 日韩国产激情在线| 在线观看日本www| av日韩电影| 夜色激情一区二区| 中文字幕中文字幕在线中一区高清| 欧美性受xxxx狂喷水| 另类小说综合欧美亚洲| 91精品国产色综合久久不卡98口 | 668精品在线视频| 艳妇荡乳欲伦69影片| 国产伦精品一区二区三区视频| 欧美成人精品3d动漫h| 国产小视频精品| 欧美大胆性生话| 欧美日韩国产一中文字不卡| 麻豆映画在线观看| 日本高清在线观看wwwww色| 久久综合久久久久88| 国产精品免费观看高清| 精品久久无码中文字幕| 久久99国产精品久久| 国产精品青青在线观看爽香蕉| 日日噜噜噜噜人人爽亚洲精品| 在线精品一区| 久久久久久网址| 久久免费视频99| 欧美va天堂在线| 久久久精品免费视频| 999福利视频| 成人一区而且| 丝袜亚洲欧美日韩综合| 国产欧美一区二区三区在线观看视频 | 欧美性猛交xxxx乱大交蜜桃| 国产免费黄色小视频| 9lporm自拍视频区在线| 午夜精品影院在线观看| 性一交一乱一伧国产女士spa| 四虎影视国产在线视频| 亚洲激情一二三区| 国产女教师bbwbbwbbw| 欧美videossex| 天天色综合天天| 97超碰青青草| 日本高清不卡一区二区三区视频| 色天天综合久久久久综合片| 黄色一级大片在线观看| 欧洲av不卡| 欧美亚洲综合久久| 中文字幕成人在线视频| 91精品网站在线观看| 制服丝袜成人动漫| 国产老头和老头xxxx×| 777久久精品| 亚洲黄色www| 91中文字幕永久在线| 精品99久久| 中文字幕在线成人| 丁香花五月激情| 伊人久久久大香线蕉综合直播| 97精品国产91久久久久久| 亚洲黄色小说图片| 蜜臀av亚洲一区中文字幕| 91亚洲精品久久久| 日本精品久久久久| 久久精品免视看| 一区二区视频在线观看| 欧美hdxxx| 色香色香欲天天天影视综合网| 亚洲狼人综合干| 国产精品白丝久久av网站| 亚洲国产成人一区| 成年人在线免费看片| 一个色综合网| 欧美在线视频观看| 一区二区三区免费在线视频| 国产.欧美.日韩| 品久久久久久久久久96高清| 麻豆免费在线观看| 黄色91在线观看| 中文字幕永久有效| 欧美黑白配在线| 日韩有码在线电影| 国产精品自拍视频一区| 久久精品国产99国产精品| 国产66精品久久久久999小说| 欧美成人片在线| 亚洲色图清纯唯美| 中文字幕无码精品亚洲35| 亚洲欧洲日韩精品在线| 日韩精品电影网| 国产老头老太做爰视频| 久久性天堂网| 国产精品白丝jk白祙| 91在线直播| 欧美性videos高清精品| 污污视频在线免费| 国产成人黄色| 性金发美女69hd大尺寸| 一级黄色短视频| 久久精品一区二区三区四区| 欧美人与动牲交xxxxbbbb| 国产精品亚洲d| 日韩电影大全免费观看2023年上| 国产av 一区二区三区| 蜜乳av一区二区三区| 久久免费视频1| 免费看电影在线| 欧美一级欧美一级在线播放| 免费成人深夜天涯网站| 亚洲欧美清纯在线制服| 都市激情久久久久久久久久久| 免费人成在线观看播放视频| 欧美中文字幕久久| 亚洲第一成人网站| 9国产精品视频| 国产精品有限公司| 欧美日韩在线视频免费观看| 88在线观看91蜜桃国自产| 一级片久久久久| 三级影片在线观看欧美日韩一区二区| 国产精品免费在线播放| 青草在线视频| 欧美成人乱码一区二区三区| 国产黄色的视频| 激情伊人五月天久久综合| 少妇特黄a一区二区三区| 欧美日韩大片| 影音先锋日韩有码| 超碰在线免费97| 国产日韩av一区| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 日韩激情网站| 欧美在线视频免费播放| 久久精品国产亚洲a∨麻豆| 欧美视频二区36p| 97人妻天天摸天天爽天天| 国产毛片久久| 日本成人三级电影网站| 日韩欧美少妇| 色偷偷av一区二区三区| 国产乱码精品一区二三区蜜臂 | 波多野结衣爱爱视频| 国产综合久久久久久鬼色| 国产成人精品免费看在线播放| 偷拍自拍亚洲| 欧美精品在线视频观看| 亚洲精品免费在线观看视频| 亚洲风情在线资源站| a天堂视频在线观看| 久久五月激情| 亚洲在线欧美| 久久精品一级| 国外色69视频在线观看| 色中色在线视频| 欧美在线三级电影| 26uuu成人网| 99精品视频在线观看| 国产嫩草在线观看| 欧美福利一区| 久久精品第九区免费观看| 日韩免费福利视频| 久久手机免费视频| 天堂网在线资源| 在线免费亚洲电影| 国产十六处破外女视频| 成人白浆超碰人人人人| 99久久久无码国产精品6| 日韩中文欧美| 国产主播一区二区三区四区| 国产综合色区在线观看| 欧美老女人性视频| 久青草国产在线| 91麻豆精品国产91久久久久| 日本少妇裸体做爰| 中文子幕无线码一区tr| 亚洲最大视频网| 日韩成人一区二区| 亚洲乱码日产精品bd在线观看| 亚州国产精品| 亚洲字幕一区二区| 美女福利一区二区| 欧美激情女人20p| 午夜在线视频播放| 亚洲精品一二区| 精品人妻一区二区三区三区四区 | ,一级淫片a看免费| 婷婷综合五月天| 蜜臀av午夜精品久久| 久久亚洲综合色| 日本xxxx免费| 麻豆精品国产传媒mv男同| 成人性生活视频免费看| 婷婷久久综合| 日韩国产精品一区二区三区| 91精品尤物| 国产欧美精品日韩| 欧美特黄aaaaaaaa大片| 性欧美在线看片a免费观看| 国产剧情在线| 中文字幕国产精品| 青青草娱乐在线| 亚洲第一区中文字幕| 国产精品熟女久久久久久| 色综合中文字幕| 亚洲 欧美 视频| 亚洲综合色成人| 岛国毛片在线观看| 亚洲丝袜美腿综合| 熟女少妇a性色生活片毛片| 久久久久九九视频| jlzzjizz在线播放观看| 岛国av在线一区| 日本一二三四区视频| 麻豆91在线观看| 黄色aaa级片| 日本麻豆一区二区三区视频| 中文字幕日本最新乱码视频| 亚洲精品综合| 国产午夜大地久久| 亚洲欧洲视频| 国产v片免费观看| 狠狠色狠狠色综合日日tαg | 久久精品卡一| 国产在线观看福利| 免费久久99精品国产自在现线| 精品无码国模私拍视频| 在线观看不卡| 97国产精东麻豆人妻电影| 亚洲人成高清| 男人用嘴添女人下身免费视频| 亚洲国产一区二区三区a毛片 | 麻豆视频在线观看| 亚洲制服丝袜av| 日本一级黄色录像| 精品国产乱码久久久久久天美| 日韩少妇高潮抽搐| 疯狂蹂躏欧美一区二区精品| 欧美啪啪小视频| 在线观看日韩一区| 伊人久久一区二区| 欧美精品日韩精品| 精品人妻一区二区三区日产乱码| 精品少妇一区二区三区免费观看| 六月丁香综合网| 日韩成人av一区| 成人午夜电影在线观看| 草美女在线观看| 精品调教chinesegay| 欧美大片aaa| www.国产一区| 免费网站在线观看人| 国内精品小视频在线观看| 日韩大片免费观看| 国产精品久久久久免费a∨大胸| www.国产精品| 91久久极品少妇xxxxⅹ软件| 国产调教精品| 五月天色一区| 韩国亚洲精品| 欧美黄色一级片视频| 精品一区二区三区欧美| 色哟哟无码精品一区二区三区| 99久久精品免费看国产 | 欧美激情中文不卡| 手机在线免费看片| 婷婷国产在线综合| 中文字幕视频二区| 亚洲精品一区在线观看| 精品资源在线看| 久久综合久久88| 欧美××××黑人××性爽| 亚洲自拍欧美色图| 蜜桃一区二区三区| 九九久久九九久久| 久久久久久一区二区| 欧美一级免费在线| 久久亚区不卡日本| 九九热精品免费视频| 色婷婷av一区二区三区大白胸| 99在线精品视频免费观看20| 日韩电影在线观看中文字幕| 黄av在线免费观看| 日韩美女免费观看| 66精品视频在线观看| 亚洲欧美日韩另类精品一区二区三区 | mm1313亚洲国产精品无码试看| 国产资源精品在线观看| 精品少妇一区二区三区免费观| 亚洲视频一区二区在线| 国产精品国产三级国产专区52| 欧美日韩一本到| 久久精品a一级国产免视看成人| 精品少妇一区二区30p| 91另类视频| 免费精品视频一区| 欧美午夜影院| 三级黄色片播放| 国产精品国产自产拍高清av| 在线永久看片免费的视频| 日韩精品一区二区三区视频播放| 91在线看片| 国产精品福利久久久| 日本亚洲不卡| 国产青草视频在线观看| 精品在线播放免费| 成人国产精品久久久网站| 午夜精品久久久久久久蜜桃app | 国产成人av影院| 国产传媒免费在线观看| 欧美在线观看视频一区二区| 亚洲色图21p| 97久久精品国产| 好吊妞视频这里有精品| 欧美美女黄色网| 国产激情视频一区二区三区欧美| 丁香六月激情综合| 欧美性生活久久| 成人高清免费观看mv| 国产精品第8页| 欧洲杯足球赛直播| 日日摸天天爽天天爽视频| 久久久亚洲欧洲日产国码αv| 日本一区二区不卡在线| 精品动漫一区二区三区在线观看| 人人超在线公开视频| 成人午夜影院在线观看| 激情一区二区| 国产精品无码在线| 色诱视频网站一区| 国产专区在线播放| 国产精品久久激情| 欧美日韩老妇| 中文字幕永久有效| 亚洲欧美日韩国产中文在线| 国产精品永久久久久久久久久| 久久久精品在线观看| 国内不卡的一区二区三区中文字幕 | 污片免费在线观看| 日韩欧美亚洲成人| 国产小视频在线观看| 国产精品免费网站| 国产精品久久久久久久免费观看 | 在线看免费毛片| 亚洲精品乱码久久久久久久久 | 亚洲 激情 在线| 成人免费一区二区三区在线观看| a级片在线视频| 97不卡在线视频| 欧美日韩激情| 波多野结衣电影免费观看| 亚洲国产另类av| 经典三级在线| 91在线观看免费| 日韩亚洲在线| 青青草自拍偷拍| 日韩欧美国产三级电影视频| free性m.freesex欧美| 欧美激情论坛| 久久国产尿小便嘘嘘| 久久久久亚洲av成人片| 日韩电影第一页| 天天综合91| 欧美极品欧美精品欧美| 欧美国产1区2区| 俄罗斯嫩小性bbwbbw| 青草热久免费精品视频| 色婷婷色综合| 老司机免费视频| 欧美日韩一区二区三区在线看| 超碰免费公开在线| 五月激情六月综合| 插我舔内射18免费视频| 亚洲国产精品久久艾草纯爱 | 国产厕拍一区| 国产免费999| 亚洲成人精品一区二区| 都市激情在线视频| 国产日韩精品久久| 另类的小说在线视频另类成人小视频在线| 欧洲猛交xxxx乱大交3| 亚洲欧美国产一区二区三区| 粉嫩av国产一区二区三区| 日本a级片免费观看| 亚洲欧美韩国综合色|