日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

代码复审结果

發(fā)布時(shí)間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 代码复审结果 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?說(shuō)明:因?yàn)楸敬我恍┨厥獾脑?#xff0c;我與一位韓國(guó)留學(xué)生同學(xué)、以及六班的一位同學(xué)一起結(jié)對(duì)編程。

General

  • (N) Does the code work? Does it perform its intended function, the logic is correct etc.

兩位結(jié)對(duì)的伙伴的代碼都只能實(shí)現(xiàn)需求功能中的一部分:

  • Z同學(xué)目前實(shí)現(xiàn)的功能有:只能生成10000以?xún)?nèi)數(shù)目的,沒(méi)有經(jīng)過(guò)去重判斷的,整數(shù)的加減乘除題目。

   這位同學(xué)沒(méi)有實(shí)現(xiàn)的需求功能有:分?jǐn)?shù)參與運(yùn)算、生成的部分題目需含有括號(hào)、生成的題目不重復(fù)、用命令行控制參數(shù)、參數(shù)出錯(cuò)的提示、給定題目和答案文件進(jìn)行檢查、支持10000以上的數(shù)據(jù)量。

   ? 這位同學(xué)實(shí)現(xiàn)錯(cuò)的功能有:值域范圍包含了-r的參數(shù)該值。

  • Y同學(xué)目前實(shí)現(xiàn)的功能有:從鍵盤(pán)鍵入的0~10整數(shù)范圍內(nèi)的簡(jiǎn)單的加減乘除單項(xiàng)的答案檢查(不包含括號(hào))。

   這位同學(xué)沒(méi)有實(shí)現(xiàn)的需求功能較多,基本上沒(méi)有完成功能。

  • (Y) Is all the code easily understood?

因?yàn)樗麄兇a實(shí)現(xiàn)功能較弱,兩位同學(xué)都是用C++寫(xiě)的,都只有main函數(shù):(。相對(duì)而言代碼結(jié)構(gòu)十分簡(jiǎn)單清晰。

  • (N) (Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.

雖然代碼行數(shù)較少,但是Z同學(xué)的代碼變量命名我不是很習(xí)慣,他的命名是這樣的:

int an = 0;int n;int r;int i=0;int nINT;int number_num;int op_num;int number;

其中各個(gè)變量旁均沒(méi)有注釋說(shuō)明與解釋其意義:(。

Y同學(xué)的代碼變量命名(雖然只有兩個(gè))也比較簡(jiǎn)短,與我習(xí)慣的變量命名習(xí)慣略微不同。

其他方面的話(huà),Z同學(xué)的縮進(jìn)風(fēng)格比較差,因?yàn)閣hile循環(huán)等與后面是等齊的,部分代碼如下:

while(an<n){ op_num = 1+rand()%3; number_num = op_num+1; while(i<op_num){number=1+rand()%r;cout<<1+rand()%r;nINT = rand()%4;

Y同學(xué)相對(duì)而言縮進(jìn)風(fēng)格比較好,至少看起來(lái)比較舒服。

Z同學(xué)在循環(huán)的開(kāi)頭有部分注釋,但是Y同學(xué)沒(méi)有注釋。

  • (N) Is there any redundant or duplicate code?

?

Z同學(xué)和Y同學(xué)的代碼中沒(méi)有冗余的代碼。(因?yàn)榇_實(shí)是寫(xiě)得比較簡(jiǎn)單)

?

  • (N) Is the code as modular as possible?

兩位同學(xué)都是使用C++寫(xiě)的,并且都只有main函數(shù)。并沒(méi)有模塊化的思想...

  • (N) Can any global variables be replaced?

這個(gè)題選N的原因是...我的結(jié)對(duì)伙伴沒(méi)有使用全局變量。

  • (N) Is there any commented out code?

兩位同學(xué)看起來(lái)均沒(méi)有經(jīng)歷過(guò)較長(zhǎng)的代碼開(kāi)發(fā)時(shí)間,所以沒(méi)有過(guò)時(shí)的代碼與調(diào)試的代碼。

  • (Y) Do loops have a set length and correct termination conditions?

有。并且從代碼來(lái)看未發(fā)現(xiàn)無(wú)限循環(huán)的情況。

  • Can any of the code be replaced with library functions?

Z同學(xué)的代碼和Y同學(xué)的代碼實(shí)現(xiàn)的功能相對(duì)簡(jiǎn)單,能實(shí)現(xiàn)使用庫(kù)函數(shù)的都使用了庫(kù)函數(shù)。

  • Can any logging or debugging code be removed?

兩位同學(xué)的代碼中沒(méi)有記錄或用來(lái)debug遺留的代碼。


?

Security

  • Are all data inputs checked (for the correct type, length, format, and range) and encoded?

Z同學(xué)只是對(duì)輸入的-n參數(shù)>10000時(shí)進(jìn)行了報(bào)錯(cuò)處理,在其他情況如n為負(fù)數(shù),r為負(fù)數(shù)等情況沒(méi)有進(jìn)行出錯(cuò)檢查。(看到這里,實(shí)際上我的代碼里也沒(méi)有這方面的出錯(cuò)處理,只是對(duì)參數(shù)的輸入位置出錯(cuò)時(shí)會(huì)有提示,但是沒(méi)有考慮n和r為負(fù)數(shù)的情況,真是我的失策:(。)

Y同學(xué)在自己的0~10的單項(xiàng)表達(dá)式的計(jì)算程序中對(duì)輸入的數(shù)字的范圍(0~10)進(jìn)行了判斷與限定,但是沒(méi)有進(jìn)行任何的報(bào)錯(cuò)處理。

  • Where third-party utilities are used, are returning errors being caught?

Z同學(xué)未使用第三方工具;程序中并沒(méi)有主動(dòng)拋出任何可控異常,一些出錯(cuò)的情況使用了打印輸出的形式進(jìn)行處理。

Y同學(xué)沒(méi)有任何的輸出錯(cuò)誤說(shuō)明。

  • Are output values checked and encoded?

兩位同學(xué)都對(duì)輸出的表達(dá)式進(jìn)行了除數(shù)是否為0進(jìn)行了檢查。

但是兩位同學(xué)都沒(méi)有對(duì)減法的結(jié)果是否為負(fù)數(shù)進(jìn)行檢查。其余的因?yàn)楣δ芤膊⑽磳?shí)現(xiàn),所以并沒(méi)有做出該有的檢查。

  • Are invalid parameter values handled?

這兩位同學(xué)都默認(rèn)用戶(hù)輸入是合法的。所以并沒(méi)有對(duì)無(wú)效的參數(shù)進(jìn)行處理。


?

Documentation

  • Do comments exist and describe the intent of the code?

只有Z同學(xué)有類(lèi)似于overview的簡(jiǎn)短注釋,但是Y同學(xué)沒(méi)有任何描述性的注釋。

  • Are all functions commented?

兩位同學(xué)都只有main函數(shù),Z同學(xué)算是都有注釋,Y同學(xué)沒(méi)有注釋。

  • Is any unusual behavior or edge-case handling described?

兩位同學(xué)都沒(méi)有對(duì)邊緣情況的處理(雖然代碼中處理了)寫(xiě)進(jìn)注釋中。

  • Is the use and function of third-party libraries documented?

沒(méi)有...都沒(méi)有使用...

  • Are data structures and units of measurement explained?

如果數(shù)組算是數(shù)據(jù)結(jié)構(gòu)的話(huà),Z同學(xué)使用了數(shù)組的數(shù)據(jù)結(jié)構(gòu)并寫(xiě)注釋說(shuō)明了它的作用。

  • Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?

兩位同學(xué)都有大量的為完成的需求功能的代碼需要編寫(xiě)。


?

Testing

  • Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.

兩位同學(xué)只有main函數(shù),基本無(wú)法構(gòu)造測(cè)試樣例。

  • Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.

兩位同學(xué)沒(méi)有寫(xiě)完,所以更沒(méi)有測(cè)試。

  • Do unit tests actually test that the code is performing the intended functionality?

沒(méi)有測(cè)試代碼。

  • Are arrays checked for ‘out-of-bound’ errors?

?

兩位同學(xué)都沒(méi)有對(duì)數(shù)組的越界進(jìn)行檢測(cè)。

?

  • Could any test code be replaced with the use of an existing API?

不可以...

?

本次結(jié)對(duì)編程的伙伴代碼能力稍差一些,我們?cè)诮?jīng)過(guò)商討后(已經(jīng)跟羅老師說(shuō)過(guò))我打算使用帶新人的結(jié)對(duì)編程模式:我對(duì)每個(gè)功能進(jìn)行詳細(xì)的模塊劃分后,作為領(lǐng)航員觀(guān)察他們完成部分小的模塊和一些單元測(cè)試。然后我寫(xiě)一些代碼以及詳細(xì)注釋,讓他們每天進(jìn)行理解與自我消化。希望他們能在和我結(jié)對(duì)編程的過(guò)程中學(xué)到一些知識(shí):D。

轉(zhuǎn)載于:https://www.cnblogs.com/SivilTaram/p/4848296.html

總結(jié)

以上是生活随笔為你收集整理的代码复审结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。