偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

好代碼的科學(xué)定義

開(kāi)發(fā) 后端 前端
你如何定義好的代碼?本文通過(guò)咨詢(xún)65個(gè)開(kāi)發(fā)人員同一個(gè)問(wèn)題從而得出了一個(gè)偽科學(xué)的答案。

首先我們相信寫(xiě)好代碼是非常重要的。為什么呢?首先,好代碼比差代碼更有趣,成本更低。其次,代碼好,就意味著你正在構(gòu)建的產(chǎn)品有可能會(huì)更好。第三,也是非常關(guān)鍵的一點(diǎn),寫(xiě)出好的代碼是我們的職責(zé):畢竟,我們的工作就是寫(xiě)代碼。

 

好代碼的科學(xué)定義

Good code measure is wtf/minute by osnews

方法

由于此65名開(kāi)發(fā)人員都是我們某個(gè)職位的應(yīng)聘者,所以這意味著這些樣品開(kāi)發(fā)人員大多偏向于使用Java或Scala技能,并且通常有著5年及以上的工作經(jīng)驗(yàn)。

問(wèn)題統(tǒng)一:“怎樣寫(xiě)好代碼?你如何定義好代碼?”并且在面試時(shí)由同一人(面對(duì)面或通過(guò)電話),歷時(shí)約1年,從2014年1月至2015年1月,來(lái)執(zhí)行此地調(diào)查。

梳理這些問(wèn)題的答案之后,可以分為31個(gè)不同的類(lèi),每組至少有2個(gè)相似的答案。例如,下面這些答案通通歸納為可讀一類(lèi):
可讀。

  • 人腦可閱讀。

  • 能自我解釋。

  • 人們能讀懂。

  • 很容易理解。

  • 不用5分鐘就能了解。

  • 沒(méi)有文檔,你也可以閱讀并理解。

  • 可讀,新來(lái)的開(kāi)發(fā)人員也能夠理解。

  • 就如同文本一樣可讀。

  • 易于閱讀,直線化的思維。

結(jié)果

這65位開(kāi)發(fā)人員的答案總共統(tǒng)計(jì)出288條不同的內(nèi)容,平均一個(gè)人4.43條。

當(dāng)然,目前最常見(jiàn)的答案是,代碼必須可讀(78.46%),幾乎10分之8的開(kāi)發(fā)人員認(rèn)為,好的代碼應(yīng)該易于閱讀和理解。

然后是可測(cè)試的/測(cè)試過(guò)的(29.23%),這說(shuō)明好的代碼應(yīng)當(dāng)是經(jīng)過(guò)自動(dòng)化測(cè)試的(或至少是有可能執(zhí)行測(cè)試的)。25%的受訪者認(rèn)為,良好的代碼 還應(yīng)該是簡(jiǎn)單的——不過(guò)于復(fù)雜,當(dāng)然還應(yīng)該是可以工作的,意味其能夠按照我們的意愿正常執(zhí)行功能。前五條是,代碼應(yīng)該是可維護(hù)的(21.54%)。

奇怪的是,我們發(fā)現(xiàn)有兩項(xiàng)內(nèi)容是關(guān)于同一主題的:文檔和代碼注釋。有的開(kāi)發(fā)人員認(rèn)為代碼應(yīng)該自文檔化(不需要用文檔解釋?zhuān)?,而有些開(kāi)發(fā)人員則表示應(yīng)該在代碼中著重于注解,說(shuō)明代碼目的。

其他的,如,可擴(kuò)展的/可重復(fù)使用的,恰當(dāng)?shù)拿?guī)律,代碼解耦或者稱(chēng)為小方法的重要性——當(dāng)然這個(gè)“小”在不同開(kāi)發(fā)人員的眼中概念還不一樣:“10-15行”到“<50行”莫衷一是。

[[137947]]

Characteristics of good code

探討

面試中的回答給了我們很多有趣的可用于分析的定量數(shù)據(jù),而有些數(shù)據(jù)非常值得一提。下面這些是我們點(diǎn)贊量最多的答案,有的讓我們會(huì)心一笑,有的有理有據(jù)值得深思:

  • 再怎么測(cè)試也不會(huì)發(fā)生崩潰。

  • 不要?jiǎng)?chuàng)建那些并不需要的玩意兒。

  • 任何人都需要寫(xiě)點(diǎn)注釋。好不好以后自然會(huì)知道。

  • 你看到它,它才有意義。

  • 你需要了解業(yè)務(wù)目的。

  • 你需要做的不僅僅是寫(xiě)代碼。

  • 不需要太過(guò)于特立獨(dú)行。

  • 差的代碼也能做很多事情,但就是通通做不好。

開(kāi)發(fā)人員重視代碼的可讀性和可理解性并不奇怪。但是令人有一點(diǎn)點(diǎn)驚訝的是,其余的回答卻差不多至少有50%的差異!

[[137948]]

How to write good code by xkcd

以下這四條就屬于讓人驚訝的后者:

  • 可維護(hù):因?yàn)槲覀兇蠖鄶?shù)人都有過(guò)維護(hù)別人代碼的經(jīng)歷(或者一段時(shí)間以后維護(hù)自己的代碼),并且很有可能度過(guò)了一段非常悲慘的日子。所以,我們期待更多的開(kāi)發(fā)人員能夠編寫(xiě)出可維護(hù)的代碼??赡苡械娜思僭O(shè)代碼可讀,那么一定易于維護(hù),所以就忽略了這一條。

  • 可工作:編寫(xiě)代碼的目的,就是能夠?yàn)樗颂峁﹥r(jià)值。編寫(xiě)可工作的代碼,是我們的首要任務(wù)之一。所以我們很驚訝為什么并不是每一個(gè)開(kāi)發(fā)人員的答案中都囊括這一條。

  • 可測(cè)試/已測(cè)試過(guò)的:測(cè)試的重要性在這里我就不多說(shuō)了,相信大家已經(jīng)聽(tīng)到過(guò)不知道幾百遍了。

  • 高效:話說(shuō),答案中包含“高效”的開(kāi)發(fā)人員比強(qiáng)調(diào)“不可過(guò)早優(yōu)化”的開(kāi)發(fā)人員,要多兩倍,而眾所周知,“過(guò)早的優(yōu)化是萬(wàn)惡之源”,所以,這太讓人納悶了。

***,我們總結(jié)出好代碼的定義:

“好的代碼是可讀的,可理解的,覆蓋了自動(dòng)化測(cè)試的,不過(guò)于復(fù)雜,并且能辦好我們需要它做的事情。”

聽(tīng)起來(lái)就相當(dāng)美,right?

責(zé)任編輯:王雪燕 來(lái)源: codeceo.com
相關(guān)推薦

2015-04-15 15:01:56

代碼好代碼科學(xué)定義

2022-05-07 10:01:20

好代碼壞代碼

2015-11-10 09:09:23

代碼程序員成長(zhǎng)

2023-02-28 11:18:57

CUPID代碼

2020-03-28 16:04:26

數(shù)據(jù)科學(xué)Matplotlib圖表

2014-05-16 10:51:33

科學(xué)代碼最佳實(shí)踐

2018-03-30 10:02:08

代碼規(guī)范維護(hù)工程師

2017-04-10 18:10:31

2020-09-21 05:57:11

代碼編程語(yǔ)言開(kāi)發(fā)

2020-10-22 09:09:41

Python數(shù)據(jù)科學(xué)代碼

2022-03-23 08:01:04

Python語(yǔ)言代碼

2021-01-21 14:25:44

代碼開(kāi)發(fā)Nature

2020-11-04 11:17:20

好代碼程序員整潔

2013-07-01 11:15:55

代碼產(chǎn)品

2020-03-04 13:58:43

無(wú)代碼數(shù)據(jù)科學(xué)數(shù)據(jù)

2024-09-05 10:17:34

2019-08-01 12:56:00

Python代碼記錄

2022-04-12 09:30:00

共享代碼塊數(shù)據(jù)集數(shù)據(jù)科學(xué)家

2023-12-01 15:10:56

2024-12-11 18:24:29

點(diǎn)贊
收藏

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