CLEAN 框架:編寫無(wú)錯(cuò)誤、可維護(hù)的 JavaScript 程式碼的技術(shù)藍(lán)圖
Oct 17, 2024 pm 06:45 PM週五晚上有 bug。好可怕的夢(mèng)。
不,這不是夢(mèng)。它有可能發(fā)生。事實(shí)上,這種情況經(jīng)常發(fā)生,以至於您開始懷疑自己和團(tuán)隊(duì)的技能。
順便問(wèn)一下,如何才能最小化錯(cuò)誤?
我設(shè)計(jì)了一個(gè)框架來(lái)拯救你-用於清潔程式碼的CLEAN Framework。
C → 一致性為王。
使您的程式碼保持一致。如果你問(wèn)的話,這代表什麼?
當(dāng)您開始解決錯(cuò)誤時(shí),您會(huì)看到變數(shù)名稱 x、y 和 z。你想知道那些到底是什麼。你追溯它使用的所有地方,發(fā)現(xiàn)它是用來(lái)更新姓名、地址和電子郵件變數(shù)的。現(xiàn)在,您正在咒罵自己為什麼使用 x、y 和 z 而不是種族變數(shù)名稱,將寶貴的周五晚上浪費(fèi)在不可避免的錯(cuò)誤上。
那麼,該怎麼辦?
按照我的方式,遵循風(fēng)格指南。就像 Airbnb 或 Google 所做的那樣。我比較喜歡愛彼迎。
Airbnb 風(fēng)格指南 - https://github.com/airbnb/javascript
Google 風(fēng)格指南 - https://google.github.io/styleguide/jsguide.html
L → 精益功能和模組
現(xiàn)在就分解吧,你們!
想知道我建議分手是什麼以及為什麼?
好了,冷靜下來(lái)。我並不是說(shuō)要在你面前打破鍵盤。我建議分解您編寫的更多擴(kuò)展函數(shù),這些函數(shù)現(xiàn)在很難閱讀和理解正在發(fā)生的事情。將其分解,以便每個(gè)函數(shù)只做一件事並做好一件事——就像輔助函數(shù)一樣,幫助您的原始函數(shù)程式碼。
小而集中的函數(shù)是可維護(hù)程式碼的秘訣。
E → 高效優(yōu)化
速度是必要的,但不能以犧牲可讀性和無(wú)錯(cuò)誤代碼為代價(jià)。
我知道,我知道。你會(huì)說(shuō),隨著截止日期的臨近,我必須更快地完成該功能?,F(xiàn)在我會(huì)問(wèn)你如何以與編寫原始程式碼相同的閃電速度解決該錯(cuò)誤。
不容易。對(duì)嗎?
但是這是這個(gè)。從編寫您的功能開始。完成後,在將程式碼提交審核之前,先問(wèn)問(wèn)自己如何優(yōu)化程式碼。我應(yīng)該使用 map 而不是 forEach 嗎?我應(yīng)該使用 for...of 迴圈而不是 for 迴圈嗎?
優(yōu)化的程式碼就是快樂(lè)的程式碼,快樂(lè)的程式碼造就快樂(lè)的開發(fā)人員。
A → 古董代碼護(hù)理
遺留代碼很無(wú)聊,但實(shí)際上,它們是可行的古董。
有人花費(fèi)大量時(shí)間來(lái)理解需求並使其發(fā)揮作用。你是對(duì)的;有時(shí),它不是最好的最佳化和可讀程式碼。但現(xiàn)在就由你來(lái)糾正了。如果時(shí)間允許,慢慢地、穩(wěn)定地重建它。一步一腳印,保持原有特色。
尊重遺產(chǎn),但不要害怕輕輕地將其推向未來(lái)。
N → 新功能採(cǎi)用
這就是ES6功能不斷增加的原因。
它們不只是閃亮的新玩具;它們也是。它們是編寫更乾淨(jìng)、更有效率的程式碼的新超級(jí)力量。箭頭函數(shù)、解構(gòu)和模板文字是 JavaScript 的瑞士軍刀。我們不要忘記異步編程。 Promise 和 async/await 就像代碼的流量控制器,讓一切順利進(jìn)行,不會(huì)有任何堆積。
現(xiàn)代功能讓您的程式碼更具表現(xiàn)力,讓您的生活更輕鬆。
獎(jiǎng)勵(lì):測(cè)試、調(diào)試、重複
經(jīng)過(guò)良好測(cè)試的程式碼庫(kù)才是快樂(lè)的程式碼庫(kù)。
當(dāng)你去驗(yàn)血卻沒(méi)有發(fā)現(xiàn)任何重大問(wèn)題時(shí),你感覺如何?是的,如果你想像的話,程式碼庫(kù)也會(huì)有同樣的感覺。事實(shí)上,如果程式碼經(jīng)過(guò)充分測(cè)試,週五晚上出現(xiàn)錯(cuò)誤的可能性就會(huì)較小。
寫作測(cè)驗(yàn)是額外的獎(jiǎng)勵(lì),但它是必須的。
記住,你已經(jīng)得到這個(gè)了!您已經(jīng)準(zhǔn)備好使用 CLEAN 框架(一致性、精益模組、高效優(yōu)化、古董程式碼維護(hù)和新功能採(cǎi)用)來(lái)應(yīng)對(duì)任何 JavaScript 挑戰(zhàn)。現(xiàn)在就像 JavaScript 忍者一樣開始編碼吧!
如果您喜歡閱讀本文,請(qǐng)?jiān)?Twitter/X 上關(guān)注我以閱讀更多內(nèi)容。
以上是CLEAN 框架:編寫無(wú)錯(cuò)誤、可維護(hù)的 JavaScript 程式碼的技術(shù)藍(lán)圖的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

javascriptisidealforwebdevelogment,whilejavasuitslarge-scaleapplicationsandandandroiddevelopment.1)javascriptexceleatingingingingingingingbeatingwebexperienceswebexperienceswebexperiencesandfull-stackdeevermentwithnode.js.2)

在JavaScript中,選擇單行註釋(//)還是多行註釋(//)取決於註釋的目的和項(xiàng)目需求:1.使用單行註釋進(jìn)行快速、內(nèi)聯(lián)的解釋;2.使用多行註釋進(jìn)行詳細(xì)的文檔說(shuō)明;3.保持註釋風(fēng)格的一致性;4.避免過(guò)度註釋;5.確保註釋與代碼同步更新。選擇合適的註釋風(fēng)格有助於提高代碼的可讀性和可維護(hù)性。

是的,javascriptcommentsarenectary和shouldshouldshouldseffectional.1)他們通過(guò)codeLogicAndIntentsgudedepleders,2)asevitalincomplexprojects,和3)handhanceClaritywithOutClutteringClutteringThecode。

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

Java和JavaScript是不同的編程語(yǔ)言,各自適用於不同的應(yīng)用場(chǎng)景。 Java用於大型企業(yè)和移動(dòng)應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁(yè)開發(fā)。

評(píng)論arecrucialinjavascriptformaintainingclarityclarityandfosteringCollaboration.1)heelpindebugging,登機(jī),andOnderStandingCodeeVolution.2)使用林格forquickexexplanations andmentmentsmmentsmmentsmments andmmentsfordeffordEffordEffordEffordEffordEffordEffordEffordEddeScriptions.3)bestcractices.3)bestcracticesincracticesinclud

JavaScripthasseveralprimitivedatatypes:Number,String,Boolean,Undefined,Null,Symbol,andBigInt,andnon-primitivetypeslikeObjectandArray.Understandingtheseiscrucialforwritingefficient,bug-freecode:1)Numberusesa64-bitformat,leadingtofloating-pointissuesli

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)
