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

為什么除了計(jì)算機(jī)科學(xué)家,每個(gè)人都在編寫草率代碼?

開發(fā) 前端
計(jì)算機(jī)科學(xué)家與開發(fā)人員不同——他們寫的是無(wú)法正常運(yùn)行的漂亮代碼。原因何在?以下的四大理由將為你揭秘。

所有開發(fā)人員都認(rèn)為自己寫的代碼完全能讓人看懂,然而,他們卻無(wú)法解密彼此的代碼(更不用說(shuō)維護(hù)代碼了)。

原因在于他們寫的代碼都是有效卻草率的,看起來(lái)很干凈,但實(shí)際上卻很凌亂。草率代碼是指就是那些可以正常運(yùn)行,但因凌亂而不能很好地拓展或通用的代碼。

計(jì)算機(jī)科學(xué)家與之不同——他們寫的是無(wú)法正常運(yùn)行的漂亮代碼。

原因何在?以下的四大理由將為你揭秘。

四大理由

理由1:對(duì)于計(jì)算機(jī)科學(xué)家來(lái)說(shuō),編碼是一項(xiàng)藝術(shù)。而對(duì)于其他人來(lái)說(shuō),編碼是一種工具

計(jì)算機(jī)科學(xué)家編碼是因?yàn)樗麄兿刖幋a,而其他人編碼是因?yàn)樗麄兿胪瓿赡臣隆i_發(fā)人員一般會(huì)根據(jù)自己的第一個(gè)想法來(lái)構(gòu)建程序。之后,他們會(huì)以之為基礎(chǔ),直到最簡(jiǎn)化可實(shí)行產(chǎn)品出現(xiàn),通常不會(huì)考慮其他方法。

而計(jì)算機(jī)科學(xué)家恰恰相反,他們會(huì)考慮實(shí)施的每一種選擇,并權(quán)衡利弊。幾周之后,他們會(huì)寫出一段漂亮的代碼,不過(guò)由于尚未確定輸出格式,代碼仍然無(wú)法完全正常運(yùn)行。

開發(fā)人員使用簡(jiǎn)單的工具有組織地?cái)U(kuò)展代碼,從而產(chǎn)生了大量草率代碼;計(jì)算機(jī)科學(xué)家則會(huì)在一開始建立起一個(gè)結(jié)構(gòu),之后在結(jié)構(gòu)中開展工作。

最有效的就是用有機(jī)方法避免編碼器的阻礙并按時(shí)交付。但是,如果想要編寫持久代碼,則可能需要把結(jié)構(gòu)放在首位。

理由2:開發(fā)人員寫代碼時(shí)不??紤]讀者的感受

即使是在合作項(xiàng)目中,開發(fā)人員寫代碼時(shí)也往往只考慮到它的功能。實(shí)際上,代碼也需要維護(hù),不過(guò)他們經(jīng)常會(huì)把這件事拋之腦后。

問題在于,這樣的習(xí)慣會(huì)造成意想不到的后果。當(dāng)三個(gè)月后,他們想給代碼添加一個(gè)功能時(shí),很可能會(huì)看不懂自己寫的代碼。這種情況經(jīng)常出現(xiàn),次數(shù)之多超乎想象!

其他開發(fā)人員按要求實(shí)施新功能時(shí),則會(huì)更艱難??炊畡e人寫的代碼可能需要幾天或幾周的時(shí)間,這取決于項(xiàng)目的大小。

理由3:即時(shí)獎(jiǎng)勵(lì)的謬論

被問題困擾了好幾天,最后終于找到了解決方案,是不是感覺特別痛快?

這確實(shí)是激動(dòng)人心的時(shí)刻。但問題在于,開發(fā)人員對(duì)快速修復(fù)的渴望往往會(huì)讓他們忽略那些長(zhǎng)期存在的問題。比如,他們可能解除了故障或添加了功能,但他們沒有意識(shí)到代碼結(jié)構(gòu)已經(jīng)過(guò)時(shí)了。

這意味著每添加一個(gè)新功能,他們都必須要開展更多的工作。相反,從長(zhǎng)遠(yuǎn)來(lái)看,對(duì)程序進(jìn)行一次重組會(huì)讓功能的添加變得更容易。

寧愿快速修復(fù)而非解決根本問題的人不在少數(shù)。與長(zhǎng)期的變化相比,人類的獎(jiǎng)賞系統(tǒng)更容易受到短期修復(fù)的影響。但這樣一來(lái)就會(huì)累積大量的技術(shù)負(fù)債。從長(zhǎng)遠(yuǎn)來(lái)看,這會(huì)消耗人的很多精力。

理由4:風(fēng)格也是一個(gè)因素

每個(gè)人的編碼風(fēng)格都不一樣。有些人討厭內(nèi)嵌注釋,有些人卻很喜歡這么做。有些人在第一行代碼上方添加函數(shù)注釋,有些人卻選擇在下方添加。有些人喜歡單值判斷,有些人卻對(duì)此厭惡至極。

這就是為什么同一段代碼對(duì)一個(gè)人來(lái)說(shuō)仿佛洪水猛獸,而對(duì)另一個(gè)人來(lái)說(shuō)卻是小菜一碟。要是獨(dú)立工作還好說(shuō),然而如今的很多軟件都是通過(guò)合作構(gòu)建的。因此,在項(xiàng)目的早期階段確定好風(fēng)格十分重要。

當(dāng)然,確保所有開發(fā)人員遵守風(fēng)格指南也是必須的。否則,最后產(chǎn)生的將是混亂代碼,畢竟其中混雜著不同的約定。

干凈的危害vs.凌亂的危害

一些開發(fā)人員聲稱自己一直在寫干凈代碼的,他們要么是在撒謊,要么高估了自己。話雖如此,開發(fā)人員不想寫過(guò)分干凈代碼也不是毫無(wú)理由的:

  • 有些開發(fā)人員整天都在清理代碼,只是為了美觀。如果是與其他人合作或者代碼需要呈現(xiàn),這當(dāng)然很有用。但通常來(lái)說(shuō),完善代碼與普通醫(yī)療保健提供的外科手術(shù)產(chǎn)生的效果一樣——看起來(lái)不錯(cuò),但沒有解決深層次的問題。
  • 如果他的目標(biāo)是從頭開始編寫非常干凈的代碼,那么他遭遇編碼器阻礙的幾率就會(huì)變大。為避免出現(xiàn)重大阻礙,最好從一開始就自然生成代碼。初學(xué)者尤其適用。

[[320428]]

圖源:unsplash

但反過(guò)來(lái)講,開發(fā)人員也并不想讓代碼過(guò)于混亂,這會(huì)讓代碼變得難以維護(hù)。缺少維護(hù)會(huì)導(dǎo)致代碼腐爛,從長(zhǎng)遠(yuǎn)來(lái)看,這樣弊大于利,項(xiàng)目會(huì)被放棄。

因此,開發(fā)人員需要在立竿見影和可維護(hù)代碼之間找到平衡。很多人都深陷混亂的困境,因此提高清潔度是必由之路。

五項(xiàng)技巧

養(yǎng)成一些良好的習(xí)慣,可能會(huì)對(duì)開發(fā)人員的清潔度和生產(chǎn)力大有益處。

為什么除了計(jì)算機(jī)科學(xué)家,每個(gè)人都在編寫草率代碼?

圖源:medium.com

技巧1:盡早測(cè)試,經(jīng)常測(cè)試

有些開發(fā)人員對(duì)自己的技術(shù)很有信心,甚至到了不運(yùn)行測(cè)試就構(gòu)建整個(gè)項(xiàng)目的地步。但是,除非手頭的任務(wù)完全微不足道的,否則會(huì)后悔的。

他們一開始編譯或執(zhí)行程序,屏幕上就會(huì)顯示錯(cuò)誤信息,情況可能還會(huì)更糟。幾個(gè)月以后,用戶發(fā)現(xiàn)程序無(wú)法正常運(yùn)行,錯(cuò)誤才被發(fā)現(xiàn)。

從事技術(shù)工作會(huì)獲得如下經(jīng)驗(yàn):

“如果沒有經(jīng)過(guò)所有情況的測(cè)試,永遠(yuǎn)不要認(rèn)為程序會(huì)正常運(yùn)行。”

盡快構(gòu)建可執(zhí)行文件。只要有機(jī)會(huì),就進(jìn)行測(cè)試,一旦出現(xiàn)錯(cuò)誤就可以立即進(jìn)行修復(fù)。

技巧2:結(jié)構(gòu)合理,格式隨意

只要代碼的基礎(chǔ)結(jié)構(gòu)良好,就可以進(jìn)行快速修復(fù)。而現(xiàn)實(shí)是,開發(fā)人員常常面對(duì)的是結(jié)構(gòu)凌亂或過(guò)時(shí)的代碼。在這種情況下,最好花些時(shí)間重構(gòu)代碼。如果修復(fù)程式未正確注釋或存在隱藏變量名,也沒什么大不了。

但是,在錯(cuò)誤代碼中構(gòu)建干凈的功能完全是浪費(fèi)時(shí)間和資源——開發(fā)人員可能必須要重寫很多功能。

因此,保持清潔度和速度的折中方案就是保持基礎(chǔ)結(jié)構(gòu)的清潔和更新,在細(xì)節(jié)上盡可能讓內(nèi)容混亂。

技巧3:讓代碼保持干凈狀態(tài)

筆者稱之為廁所法則。如果人們使用完的公共浴室(至少)像使用之前的一樣干凈,那這公共浴室的狀態(tài)就堪稱完美。從大多數(shù)公共廁所的狀態(tài)來(lái)看,現(xiàn)實(shí)并非如此。維持廁所法則需要所有人遵守紀(jì)律——還需要一位優(yōu)秀的管理者。

遵守這樣的紀(jì)律是值得的,因?yàn)閺拈L(zhǎng)遠(yuǎn)來(lái)看獲得的回報(bào)是巨大的。通過(guò)完成不可能的事情來(lái)實(shí)現(xiàn)不可能,這是天方夜譚——做出明智的決定,每天前進(jìn)一一點(diǎn)點(diǎn),不可能才會(huì)實(shí)現(xiàn)。

技巧4:為重構(gòu)分配時(shí)間

每一次混亂都在產(chǎn)生技術(shù)負(fù)債。像金融一樣,時(shí)間越長(zhǎng),產(chǎn)生的債務(wù)就越多。

對(duì)于普通開發(fā)人員來(lái)說(shuō),花上幾天甚至幾周時(shí)間清理代碼聽上去并不是那么美好。這就是為什么要養(yǎng)成每天償還一點(diǎn)債務(wù)的習(xí)慣。

一開始可以每天抽出15%的時(shí)間進(jìn)行重構(gòu),這是個(gè)不錯(cuò)的方法。筆者稱之為時(shí)間規(guī)劃,長(zhǎng)此以往完善的代碼數(shù)量將令人驚嘆!

技巧5:要求審查

有時(shí)候,代碼出現(xiàn)混亂是因?yàn)殚_發(fā)人員不知道該怎么完善。比如,某個(gè)代碼可能使用了switch語(yǔ)句,但使用映射會(huì)容易得多。在這種情況下,高級(jí)開發(fā)人員的建議至關(guān)重要。

建立代碼審查例程有助于創(chuàng)建反饋環(huán)路。這會(huì)幫助年輕開發(fā)人員改善學(xué)習(xí)曲線,形成健康的討論文化。

例程是關(guān)鍵,這與廁所法則以及時(shí)間規(guī)劃是一樣的。初級(jí)開發(fā)人員應(yīng)養(yǎng)成要求審查的習(xí)慣,而高級(jí)開發(fā)人員也應(yīng)提供建議。理想情況下,審查時(shí)間應(yīng)該是開發(fā)團(tuán)隊(duì)核心過(guò)程的一部分,每次討論也應(yīng)總結(jié)關(guān)鍵建議。

平衡結(jié)構(gòu)與混亂

過(guò)多的清理會(huì)浪費(fèi)時(shí)間和資源,編寫草率代碼比受到編碼器阻礙而完全無(wú)法交付要好得多。但同時(shí),草率代碼不靈活且難以維護(hù)。

這五大技巧能幫助你有效清理代碼同時(shí)節(jié)省時(shí)間,在混亂和結(jié)構(gòu)之間找到平衡點(diǎn)。

快去實(shí)踐一下吧!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2020-07-27 10:05:19

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

2019-08-26 09:47:56

數(shù)據(jù)科學(xué)家數(shù)據(jù)分析

2020-06-12 08:15:40

計(jì)算機(jī)科學(xué)碼農(nóng)技術(shù)

2021-12-25 07:34:47

量子計(jì)算機(jī)分子模擬保護(hù)數(shù)據(jù)

2013-02-18 09:41:33

內(nèi)存科學(xué)家宕機(jī)

2010-12-13 13:45:09

最老計(jì)算機(jī)

2018-01-25 14:19:32

深度學(xué)習(xí)數(shù)據(jù)科學(xué)遷移學(xué)習(xí)

2019-04-30 09:45:12

計(jì)算機(jī)互聯(lián)網(wǎng) 技術(shù)

2017-08-04 15:53:10

大數(shù)據(jù)真?zhèn)螖?shù)據(jù)科學(xué)家

2020-07-10 13:59:52

Kaggle代碼數(shù)據(jù)

2022-03-07 10:27:03

Linux開源社區(qū)

2019-04-30 15:14:11

數(shù)據(jù)科學(xué)家計(jì)算機(jī)

2012-12-06 15:36:55

CIO

2020-08-10 15:08:25

數(shù)據(jù)科學(xué)Kaggle數(shù)據(jù)集

2019-07-05 15:52:03

數(shù)據(jù)科學(xué)家大數(shù)據(jù)機(jī)器學(xué)習(xí)

2018-12-06 08:56:38

數(shù)據(jù)科學(xué)家數(shù)據(jù)科學(xué)數(shù)據(jù)

2024-03-06 14:36:08

2022-07-15 09:00:00

SQL數(shù)據(jù)庫(kù)據(jù)科學(xué)家

2017-10-24 13:58:51

2014-12-25 09:54:06

深層神經(jīng)網(wǎng)絡(luò)
點(diǎn)贊
收藏

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