html超鏈接目標(biāo)(html超鏈接位置)
編寫代碼容易,但編寫優(yōu)秀代碼卻是一項(xiàng)挑戰(zhàn)。采納基本編程原則是確保編寫高質(zhì)量代碼的穩(wěn)妥途徑,無論軟件項(xiàng)目規(guī)模大小,都能保證代碼高效、易讀、可靠、安全且易維護(hù)。
糟糕的代碼有多種形式:雜亂、龐大的if-else鏈、不可靠的程序、變量命名不合理等等。如何編寫有效代碼?需要有紀(jì)律和目的。以下是讓您成為更好的編程人員的核心編程原則。
1、保持簡(jiǎn)潔明了 Keep It Simple, Stupid (KISS)
這聽起來有點(diǎn)苛刻,但在編寫計(jì)算機(jī)代碼時(shí),這是最重要的原則之一。KISS是什么意思?
它意味著你應(yīng)該盡可能簡(jiǎn)單地編寫代碼?;揪幊桃?guī)則之一是不要陷入過于巧妙的陷阱,或用一大段高級(jí)代碼來炫耀。如果能用一行代碼編寫腳本,就用一行代碼。
這是一個(gè)簡(jiǎn)單的函數(shù):
相當(dāng)簡(jiǎn)單。易于閱讀,了解發(fā)生了什么。
這種精神中的一個(gè)編程原則是使用清晰的變量名稱。充分利用編碼庫(kù)并使用現(xiàn)有工具。六個(gè)月后回來工作時(shí)更容易。保持簡(jiǎn)單將會(huì)在很大程度上避免不必要的困擾。
2、編寫DRY代碼
“不要重復(fù)自己”(DRY)編程原則意味著,簡(jiǎn)單地說,不要重復(fù)代碼。這是一個(gè)常見的編程錯(cuò)誤。編寫代碼時(shí),避免重復(fù)數(shù)據(jù)或邏輯。如果你曾經(jīng)在程序中復(fù)制并粘貼代碼,那么這不是DRY代碼。
看看這個(gè)腳本:
與其復(fù)制行,不如找到一個(gè)使用循環(huán)的算法。
DRY代碼易于維護(hù)。調(diào)試一個(gè)處理50次重復(fù)的循環(huán)比調(diào)試50個(gè)處理一次重復(fù)的代碼塊更容易。
展開全文
3、Open/Closed原則
按照良好的編程原則進(jìn)行工作將使您的工作更加高效。
這種編程原則意味著你應(yīng)該使你的代碼可擴(kuò)展但不可修改。這確保了即使需求改變,也不需要修改代碼。這是在發(fā)布其他人將使用的庫(kù)或框架時(shí)的重要原則。
例如,假設(shè)您正在維護(hù)一個(gè)GUI框架。您可以發(fā)布一個(gè)版本供程序員修改并直接集成您發(fā)布的代碼。然而,當(dāng)您在四個(gè)月后發(fā)布一個(gè)重要更新時(shí)會(huì)發(fā)生什么呢?
他們的代碼會(huì)崩潰。這可能會(huì)使你的同事非常不高興。無論以前它有多么有用,他們以后都不想再使用你的庫(kù)了。
相反,發(fā)布代碼阻止直接修改并鼓勵(lì)擴(kuò)展。像這樣的基本編程原則將核心行為與修改行為分離。代碼更穩(wěn)定,更易于維護(hù)。
4、組合優(yōu)于繼承
如果你使用面向?qū)ο缶幊叹帉懘a,那么這個(gè)編程原則對(duì)你會(huì)非常有用。組合優(yōu)于繼承的原則指出,具有復(fù)雜行為的對(duì)象應(yīng)包含具有單個(gè)行為的對(duì)象實(shí)例。它們不應(yīng)該繼承一個(gè)類并添加新的行為。
依賴?yán)^承會(huì)引發(fā)兩個(gè)主要問題。首先,繼承層次結(jié)構(gòu)可能會(huì)變得非?;靵y。其次,你在定義特殊情況行為時(shí)有更少的靈活性。假設(shè)你想實(shí)現(xiàn)分享行為:偏向簡(jiǎn)單的編程原則通常為更有效的最終結(jié)果鋪平道路。
組合編程更易于編寫、更易于維護(hù),并允許定義靈活的行為。每個(gè)單獨(dú)的行為都是它自己的類。通過組合單個(gè)行為可以創(chuàng)建復(fù)雜行為。
5、單一責(zé)任原則
編碼原則都有一個(gè)共同的目標(biāo):由更有經(jīng)驗(yàn)的程序員編寫更優(yōu)質(zhì)的代碼。
單一責(zé)任原則規(guī)定程序中的每個(gè)類或模塊應(yīng)只提供一個(gè)特定的功能。正如羅伯特·C·馬丁所說:“一個(gè)類應(yīng)該只有一個(gè)變化的原因?!?/p>
類和模塊通常從這樣的方式開始。小心,不要在類變得更復(fù)雜時(shí)增加過多的責(zé)任。重構(gòu)并將它們分解為更小的類和模塊。
過度加載類的后果是雙重的。首先,在嘗試隔離某個(gè)模塊進(jìn)行故障排除時(shí)會(huì)使調(diào)試變得復(fù)雜。其次,為特定模塊創(chuàng)建附加功能會(huì)變得更加困難。良好的編程原則可以在問題出現(xiàn)前阻止這些問題。
6、關(guān)注點(diǎn)分離
關(guān)注點(diǎn)分離的概念是單一責(zé)任原則的抽象版本。這個(gè)理念指出你應(yīng)該設(shè)計(jì)具有不同部分的程序,并且這些部分不應(yīng)相互訪問。
這的一個(gè)知名例子是模型-視圖-控制器(MVC)設(shè)計(jì)。MVC將程序分成三個(gè)不同的區(qū)域:數(shù)據(jù)(模型)、邏輯(控制器)和頁(yè)面顯示內(nèi)容(視圖)。MVC的變體在當(dāng)今最流行的網(wǎng)絡(luò)框架中很常見。
例如,處理數(shù)據(jù)庫(kù)的代碼不需要知道如何在瀏覽器中渲染數(shù)據(jù)。渲染代碼接收來自用戶的輸入,但邏輯代碼處理處理過程。每段代碼都是完全獨(dú)立的。
其結(jié)果是易于調(diào)試的代碼。如果您需要重寫渲染代碼,您可以這樣做而不必?fù)?dān)心數(shù)據(jù)如何保存或邏輯如何處理。
7、你不會(huì)需要它(YAGNI)
有些編碼原則比其他原則更直接。
這個(gè)原則意味著你不應(yīng)為了未來可能需要的功能而編寫代碼。計(jì)算機(jī)編程中最重要的原則之一是不要試圖解決不存在的問題。
為了編寫DRY代碼,程序員可能會(huì)違反這個(gè)原則。通常,缺乏經(jīng)驗(yàn)的程序員試圖編寫最抽象和最通用的代碼。然而,過度抽象會(huì)導(dǎo)致臃腫的代碼,難以維護(hù)。
只有在需要時(shí)應(yīng)用DRY編程原則;如果您注意到代碼一遍又一遍地寫,實(shí)現(xiàn)一層抽象。不要犧牲當(dāng)前代碼的批次來考慮太遠(yuǎn)的未來。
8、文檔化你的代碼
在談?wù)摼幋a原則時(shí),很容易忘記最終可能會(huì)查看代碼的人。
任何資深開發(fā)人員都會(huì)強(qiáng)調(diào)使用適當(dāng)?shù)淖⑨層涗洿a的重要性。所有的編程語言都提供了注釋的方式;你應(yīng)該養(yǎng)成編寫注釋的習(xí)慣。留下注釋以解釋對(duì)象、增強(qiáng)變量定義以及讓函數(shù)更易于理解。
以下是一個(gè)帶有注釋的 Java 函數(shù),指導(dǎo)你了解代碼:
在編碼時(shí)留下注釋需要一些額外的工作。這需要時(shí)間,并會(huì)分散你對(duì)實(shí)際工作的注意力。你對(duì)自己的代碼相當(dāng)了解,對(duì)吧?誰會(huì)在乎呢?但值得記住的是,即使在技術(shù)領(lǐng)域,也沒有什么是可以被丟棄的。最終的計(jì)算機(jī)編程原則是什么,如果對(duì)面的人最終迷失了方向?
我們建議你多走一步,在你擔(dān)心事情會(huì)變得混亂或不清晰的地方留下注釋,特別是在與他人合作時(shí)。不要強(qiáng)迫其他開發(fā)人員去解讀你的語法,以免讓他們感到沮喪。
試著寫一個(gè)程序,放置六個(gè)月不動(dòng),然后返回修改它。你會(huì)慶幸你記錄了你的程序,而不是不得不研究每個(gè)函數(shù)來記住它的工作方式。
9、重構(gòu)
這個(gè)編程原則鼓勵(lì)你始終以全新的視角審視你的工作。
很難接受,但你的代碼不會(huì)一開始就是完美的。重構(gòu)代碼意味著審查你的代碼,尋找優(yōu)化的方法,使其更高效,同時(shí)保持結(jié)果完全相同。這是編寫更清潔和高質(zhì)量代碼的考慮。
代碼庫(kù)不斷發(fā)展。編程原則之一是記住,重新審視、重寫甚至重新設(shè)計(jì)整塊代碼是完全正常的。
這并不意味著你第一次寫程序時(shí)失敗了;隨著時(shí)間的推移,你不可避免地會(huì)更加熟悉項(xiàng)目。利用這些知識(shí)隨著你的進(jìn)步進(jìn)行調(diào)整。
10、一切代價(jià)都要編寫清晰的代碼
除了所有基本的編程原則外,把你的自我留在一邊,忘記編寫過于聰明的代碼。當(dāng)我們說這句話時(shí),我們指的是那種看起來更像是謎語而不是解決方案的代碼。你編碼不是為了給陌生人留下深刻印象。你從事這個(gè)職業(yè)是為了解決問題。
不要試圖把大量邏輯塞進(jìn)一行代碼中。在你的注釋和文檔中留下清晰的說明。如果你的代碼易于閱讀,通常也易于維護(hù)。
優(yōu)秀的程序員和可讀性高的代碼是相輔相成的。當(dāng)必要時(shí)留下注釋,遵循代碼風(fēng)格指南,并盡可能地站在下一個(gè)人的角度考慮。
學(xué)習(xí)計(jì)算機(jī)編程原則,成為一名優(yōu)秀的程序員
學(xué)習(xí)如何成為一名優(yōu)秀的程序員需要花費(fèi)相當(dāng)多的時(shí)間和精力。這些基本編程規(guī)則是成為專業(yè)程序員的路線圖。遵循這些歷久不衰的原則,你將為未來的編程生涯奠定成功的基礎(chǔ)。
LINUX迷公眾號(hào)
感謝 Linux迷 www.linuxmi.com 的精彩分享。
需要Linux 精美藝術(shù)壁紙和免費(fèi)編程及Linux 教程(PDF版)的朋友請(qǐng)加小編微信linuxgs(口令linuxmi)。
需要邀請(qǐng)碼的也請(qǐng)加小編微信linuxgs(口令:邀請(qǐng)碼)。
來自:Linux迷
鏈接:https://www.linuxmi.com/programming-basic-principles.html
關(guān)注我們
Linux公社
關(guān)注 Linux公社,添加“ 星標(biāo) ”
每天 獲取 技術(shù)干貨,讓我們一起成長(zhǎng)
合作聯(lián)系:root@linuxidc.net
關(guān)注我們
Linux公社
關(guān)注 Linux公社,添加“ 星標(biāo) ”
每天 獲取 技術(shù)干貨,讓我們一起成長(zhǎng)
合作聯(lián)系:root@linuxidc.net
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。