摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫(xiě)復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。
原文地址:https://hackernoon.com/few-si...
嗨,我的工作作為一個(gè)程序員超過(guò)15年,并使用許多不同的語(yǔ)言,范例,框架和其他狗屎。我想和大家分享我寫(xiě)好代碼的規(guī)則。
優(yōu)化VS可讀性 去他媽的優(yōu)化始終編??寫(xiě)易于閱讀且對(duì)開(kāi)發(fā)人員可理解的代碼。因?yàn)樵谟部勺x代碼上花費(fèi)的時(shí)間和資源將遠(yuǎn)遠(yuǎn)高于從優(yōu)化中獲得的。
如果你需要進(jìn)行優(yōu)化,那么使它像DI的獨(dú)立模塊,具有100%的測(cè)試覆蓋率,并且不會(huì)被觸及至少一年。
我看到很多人說(shuō)“我們需要快速做事,我們沒(méi)有時(shí)間做架構(gòu)”。其中約99%的人因?yàn)檫@樣的想法而遇到了大問(wèn)題。
編寫(xiě)代碼而不考慮其架構(gòu)是沒(méi)有用的,就像沒(méi)有實(shí)現(xiàn)它們的計(jì)劃一樣,夢(mèng)想你的愿望。
在編寫(xiě)代碼的第一行之前,你應(yīng)該明白它將要做什么,它將如何使用,模塊,服務(wù)如何相互工作,它將有什么結(jié)構(gòu),如何進(jìn)行測(cè)試和調(diào)試,以及如何更新。
測(cè)試是好事,但他們并不總是負(fù)擔(dān)得起,對(duì)項(xiàng)目有意義。
當(dāng)你需要測(cè)試:
當(dāng)你編寫(xiě)模塊時(shí),微服務(wù)將不會(huì)被觸及至少一個(gè)月。
當(dāng)你編寫(xiě)開(kāi)源代碼。
當(dāng)你編寫(xiě)涉及金融渠道的核心代碼或代碼。
當(dāng)您有代碼更新的同時(shí)更新測(cè)試的資源。
當(dāng)你不需要測(cè)試時(shí):
當(dāng)你是一個(gè)創(chuàng)業(yè)。
當(dāng)你有小團(tuán)隊(duì)和代碼更改是快速。
當(dāng)你編寫(xiě)的腳本,可以簡(jiǎn)單地通過(guò)他們的輸出手動(dòng)測(cè)試。
記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。
保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫(xiě)復(fù)雜的代碼。更多更簡(jiǎn)單,那么更少的錯(cuò)誤它可能有和更少的時(shí)間來(lái)調(diào)試它們。代碼應(yīng)該做的只是它需要沒(méi)有非常多的抽象和其他OOP shit(尤其是涉及java開(kāi)發(fā)人員)+ 20%的東西可能需要在將來(lái)以簡(jiǎn)單的方式更新它。
注釋出現(xiàn)注釋說(shuō)明你的代碼不夠好。好的代碼應(yīng)該是可以理解的,沒(méi)有一行注釋。但是如何為新開(kāi)發(fā)人員節(jié)省時(shí)間? - 編寫(xiě)簡(jiǎn)單的內(nèi)聯(lián)文檔描述什么和如何方法工作。這將節(jié)省很多時(shí)間來(lái)理解,甚至更多 - 它將給人們更多的機(jī)會(huì)來(lái)提出更好的實(shí)施這種方法。并且它將是全球代碼文檔的良好開(kāi)端。
硬耦合VS較小耦合始終嘗試使用微服務(wù)架構(gòu)。單片軟件可以比微服務(wù)軟件運(yùn)行得更快,但只能在一個(gè)服務(wù)器的上下文中運(yùn)行。
微服務(wù)使您可以不僅在許多服務(wù)器上,而且有時(shí)甚至在一臺(tái)機(jī)器上(我的意思是過(guò)程分發(fā))高效地分發(fā)您的軟件。
代碼審查可以是好的,也以是壞的。
您可以組織代碼審查,只有當(dāng)您有開(kāi)發(fā)人員了解95%的代碼,誰(shuí)可以監(jiān)控所有更新,而不浪費(fèi)很多時(shí)間。在其他情況下,這將是只是耗時(shí),每個(gè)人都會(huì)討厭這個(gè)。
在這部分有很多問(wèn)題,所以更深入地描述這一點(diǎn)。
許多人認(rèn)為代碼審查是一個(gè)很好的方式教新手,或者工作在不同部分的代碼的隊(duì)友。但是代碼審查的主要目標(biāo)是保持代碼質(zhì)量,而不是教學(xué)。讓我們想象你的團(tuán)隊(duì)制作代碼用于控制核反應(yīng)堆或太空火箭發(fā)動(dòng)機(jī)的冷卻系統(tǒng)。你在非常硬的邏輯中犯了巨大的錯(cuò)誤,然后你給這個(gè)代碼審查新的家伙。你怎么認(rèn)為會(huì)發(fā)生意外的風(fēng)險(xiǎn)? - 我的練習(xí)率超過(guò)70%。
良好的團(tuán)隊(duì)是每個(gè)人都有自己的角色,負(fù)責(zé)確切的工作。如果有人想要理解另一段代碼,那么他去一個(gè)負(fù)責(zé)任去問(wèn)他。你不可能知道一切,更好的優(yōu)秀的理解小塊代碼而不是理解所有。
重構(gòu)沒(méi)啥用在我的職業(yè)生涯中,我聽(tīng)到很多次“不要擔(dān)心,我們以后會(huì)重構(gòu)它”。在未來(lái),這會(huì)導(dǎo)致大的技術(shù)債務(wù)或從頭開(kāi)始刪除所有的代碼和寫(xiě)作。
所以,不要得到一個(gè)債務(wù),除非你有錢(qián)從頭開(kāi)發(fā)你的軟件幾次。
當(dāng)你累了或在一個(gè)壞的心情不要寫(xiě)代碼。當(dāng)開(kāi)發(fā)人員厭倦時(shí),他們正在制造2到5倍或者更多的bug。所以工作更多是非常糟糕的做法。這就是為什么越來(lái)越多的國(guó)家思考6小時(shí)工作日,其中一些已經(jīng)有了。精神工作不同于使用你的二頭肌。
不要一次寫(xiě)全部 - 使開(kāi)發(fā)迭代在編寫(xiě)代碼分析和預(yù)測(cè)之前,您的客戶/客戶真正需要什么,然后選擇您可以在短期內(nèi)以高質(zhì)量開(kāi)發(fā)的MVF(最有價(jià)值的功能)。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。
自動(dòng)化VS手動(dòng)自動(dòng)化是長(zhǎng)期的100%成功。所以如果你有資源自動(dòng)化的東西,現(xiàn)在應(yīng)該做。你可能認(rèn)為“只需要5分鐘,為什么我應(yīng)該自動(dòng)化?但讓我計(jì)算這個(gè)。例如,它是5個(gè)開(kāi)發(fā)人員的日常任務(wù)。 5分鐘 5天 21天* 12個(gè)月= 6 300分鐘= 105小時(shí)= 13.125天?5250 $。
如果你有40 000名員工,這將需要多少費(fèi)用?
差異化工作可以增加心智能力,并提供新想法。所以,暫停現(xiàn)在的工作,出去呼吸一下新鮮空氣,與朋友交談,彈吉他等。
ps: 莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,風(fēng)乎舞雩,詠而歸。------《論語(yǔ).先進(jìn)》。
當(dāng)人們停止學(xué)習(xí)時(shí),他們開(kāi)始退化。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38427.html
摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫(xiě)復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...
摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫(xiě)復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...
摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫(xiě)復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...
摘要:工具幫助避免在編寫(xiě)時(shí)出現(xiàn)愚蠢的錯(cuò)誤。并不檢測(cè)潛在的,比如,未使用的變量或意外的全局變量等。在提到的所有工具中,它具有最廣泛的功能支持。使用工具是捕獲問(wèn)題的良好步驟,但只能看到規(guī)則允許的錯(cuò)誤。也可用于此目的。 Lint工具幫助避免在編寫(xiě)JavaScript時(shí)出現(xiàn)愚蠢的錯(cuò)誤。盡管有多年的經(jīng)驗(yàn),我仍然鍵入不正確的變量名稱,出現(xiàn)語(yǔ)法錯(cuò)誤,以及忘記正確地處理error。在浪費(fèi)自己時(shí)間,或更糟糕地...
摘要:你是如何開(kāi)始參加比賽的正如之前所說(shuō)的,我一直在閱讀大量機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面的書(shū)籍和論文,但發(fā)現(xiàn)很難將我學(xué)到的算法應(yīng)用于小型數(shù)據(jù)集。機(jī)器學(xué)習(xí)中,你對(duì)哪個(gè)子領(lǐng)域最感興趣我對(duì)深度學(xué)習(xí)的各種進(jìn)步都很感興趣。 showImg(https://segmentfault.com/img/bVboxKz?w=800&h=600); 作者 Kaggle Team中文翻譯 MikaCDA 數(shù)據(jù)分析師...
閱讀 982·2021-11-23 09:51
閱讀 2695·2021-08-23 09:44
閱讀 656·2019-08-30 15:54
閱讀 1433·2019-08-30 13:53
閱讀 3101·2019-08-29 16:54
閱讀 2527·2019-08-29 16:26
閱讀 1186·2019-08-29 13:04
閱讀 2313·2019-08-26 13:50