摘要:例如,代碼傾向于使用駝峰命名,因此使用編寫代碼可以提供流暢的感覺這就可以起到可讀性的作用。這將極大地幫助你提高代碼的可讀性,因?yàn)槟闶紫葟睦斫忾_始,然后轉(zhuǎn)向性能。
原文:https://www.codecasts.com/blo...
本文探討編程中的一個(gè)術(shù)語:“可讀性”。
首先我們來談?wù)勊暮x:
“可讀性”是描述在其他開發(fā)人員沒有進(jìn)行太多聯(lián)想或猜測的情況下就能理解代碼的含義。為了讓其他的開發(fā)者對你的代碼“可讀”,你需要謹(jǐn)慎選擇每個(gè)變量命名甚至是參數(shù)命名。
但是有些東西是普遍存在而且也是受到人為因素的限制的。例如,很少會(huì)有開發(fā)者去追蹤命名不定的變量。
啟發(fā):變量,類,方法和其他引用是否有明確的名稱?
或者從開發(fā)者本身的角度看,這些開發(fā)人員是否熟悉正在接管的項(xiàng)目代碼?他們作為開發(fā)人員有多經(jīng)驗(yàn)?他們是否有特定的背景使得代碼對他們有或多或少的可讀性?
但是我們通常會(huì)遇到這樣的應(yīng)用場景:你并不知道其他開發(fā)者是誰?這在開源項(xiàng)目中最為普遍。
所以這就是我們在編程中制定標(biāo)準(zhǔn),模式和最佳實(shí)踐的原因。例如,JavaScript 代碼傾向于使用 camelCase (駝峰命名),因此使用 camelCase 編寫代碼可以提供流暢的感覺(這就可以起到可讀性的作用)。了解一門語言通常使用的常見模式和風(fēng)格非常重要。
補(bǔ)充:你所在的團(tuán)隊(duì)可能會(huì)制定一些自己的編程規(guī)定; 這個(gè)時(shí)候請你遵循它。
以下是可以遵循的一些簡單而實(shí)用的方法:
盡量使用描述性變量名稱。 更長的變量一般更具有可讀性。
使用空格! 代碼編譯器的存在意味著空格對于代碼執(zhí)行來說是無關(guān)緊要的的,但是空格對于人來說,確實(shí)很重要!所以要利用好這一個(gè)優(yōu)勢。
在抽象和實(shí)用性之間找到一個(gè)平衡點(diǎn)。 比如最簡單的任務(wù)不需要 10 層重定向; 而是要從最簡單的方法開始,在重構(gòu)過程中進(jìn)行抽象。
“讓代碼跑起來,然后跑得對,最后跑得快。” 注意遵守這個(gè)順序。 這將極大地幫助你提高代碼的可讀性,因?yàn)槟闶紫葟睦斫忾_始,然后轉(zhuǎn)向性能。 這就預(yù)先建立了你的模式和語義,你更有可能以這種方式保持良好的語義化。
了解你的受眾。 如果你的受眾不習(xí)慣內(nèi)聯(lián)的 lambda 計(jì)算,請不要使用它。 即使您認(rèn)為這是解決問題的“最佳途徑”,但還有其他同樣可行的方法。
遵循完善的重構(gòu)和面向?qū)ο蟮哪J?。講真, 這些概念都是前輩嘗試和測試過的,你可以先不用懷疑太多,先準(zhǔn)守它。
但是!也不要盲目遵守規(guī)則。 不定期地花些時(shí)間去重新審視代碼:有沒有什么東西很奇怪? 這混淆了什么么? 這樣寫是不是更好?
可讀性高的代碼不總是易于維護(hù)的,反之亦然。 可維護(hù)的代碼通常是遵循良好的實(shí)踐和原則建立起來的。
測試對代碼庫維護(hù)非常重要!擁有良好的測試覆蓋率使您不必將所有代碼記在您的腦海中。 (注意:測試不會(huì)一起消除錯(cuò)誤,但是測試對你的幫助非常大。)
總而言之,編程是一個(gè)人為的過程。 在編寫代碼時(shí)遵循下面的建議:
更簡單通常會(huì)更好 —海明威。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/30742.html
摘要:背景如圖所示馮諾依曼計(jì)算機(jī)體系結(jié)構(gòu)由于最近做業(yè)務(wù)需求做到發(fā)瘟借此發(fā)散一下思維最近業(yè)務(wù)需求的痛點(diǎn)如下基礎(chǔ)代碼骨架已固定業(yè)務(wù)流程固定然而業(yè)務(wù)中產(chǎn)品的配置需要非常靈活并且有可能需要跨過某段業(yè)務(wù)流程直接執(zhí)行下一段直接方案當(dāng)然是能夠決定條件分支的但架 showImg(https://segmentfault.com/img/bVbrHbo?w=1920&h=981); 背景 如圖所示, 馮諾依曼...
摘要:前面不短時(shí)間持續(xù)投入了時(shí)間在做應(yīng)用架構(gòu)方面的考量一個(gè)是冒險(xiǎn)進(jìn)行了一次應(yīng)用架構(gòu)的調(diào)整另一個(gè)是跟進(jìn)了的進(jìn)展當(dāng)然實(shí)際上是同一個(gè)事情也許錯(cuò)過的比收獲的還多一些不過能走到現(xiàn)在也算幸運(yùn)了畢竟單頁面應(yīng)用還面臨很多不成熟之處國慶長假過去不少現(xiàn)在的想法估計(jì)會(huì) 前面不短時(shí)間持續(xù)投入了時(shí)間在做 React 應(yīng)用架構(gòu)方面的考量一個(gè)是冒險(xiǎn)進(jìn)行了一次應(yīng)用架構(gòu)的調(diào)整, 另一個(gè)是跟進(jìn)了 Redux 的進(jìn)展當(dāng)然, 實(shí)際...
摘要:塊狀作用域提起中的關(guān)鍵字,第一個(gè)想法就是塊狀作用域。而如果通過這些關(guān)鍵詞聲明的,那么也就會(huì)聲明到所在的作用域中。終于回到可以將變量綁定到所在的任意作用域中,通常是內(nèi)部。避免不必要的出現(xiàn)。 讀,想到哪里寫到哪里。。。 塊狀作用域 提起ES6中的let關(guān)鍵字,第一個(gè)想法就是塊狀作用域。 說到作用域,以前提及的都是全局作用域和函數(shù)作用域。當(dāng)進(jìn)行作用域查找的時(shí)候,永遠(yuǎn)是一層一層往上查找,直到找...
閱讀 725·2021-11-17 09:33
閱讀 3757·2021-09-01 10:46
閱讀 1751·2019-08-30 11:02
閱讀 3280·2019-08-29 15:05
閱讀 1396·2019-08-26 11:39
閱讀 2272·2019-08-23 17:04
閱讀 1973·2019-08-23 15:43
閱讀 1371·2019-08-23 14:12