五大原则让你的代码不再受bug的困扰
牢記以下五項(xiàng)基本原則,能夠幫助大家盡可能減少代碼中的bug。
Java編程語(yǔ)言的人氣自然無(wú)需質(zhì)疑,從Web應(yīng)用到Android應(yīng)用,這款語(yǔ)言已經(jīng)被廣泛用于開(kāi)發(fā)各類(lèi)應(yīng)用及代碼中的復(fù)雜功能。
不過(guò)在編寫(xiě)代碼時(shí),bug永遠(yuǎn)是困擾每一位從業(yè)者的頭號(hào)難題。本文我們將分享五項(xiàng)java編程基本元原則幫助大家盡可能減少代碼中的bug,希望大家能輕松地減少Java開(kāi)發(fā)中的bug數(shù)量。
原則一:不要依賴(lài)初始化
在Java中,開(kāi)發(fā)者常常依賴(lài)構(gòu)造函數(shù)進(jìn)行對(duì)象初始化。不過(guò)這其實(shí)是一種常見(jiàn)誤區(qū)。我們完全可以在無(wú)需調(diào)用構(gòu)造函數(shù)的情況下,通過(guò)多種方式實(shí)現(xiàn)對(duì)象分配。
下面來(lái)看幾種常用方式:
(1) 大家可以將所有變量聲明為私有。要訪問(wèn)該類(lèi)外的對(duì)象,大家可使用GET與SET方法。
(2) 對(duì)每個(gè)對(duì)象,編寫(xiě)一個(gè)新的私有boolean變量并對(duì)其進(jìn)行初始化。
(3)編寫(xiě)一個(gè)非構(gòu)造函數(shù)類(lèi),其將確保每個(gè)對(duì)象會(huì)在接受調(diào)用之前進(jìn)行初始化。
原則二:保護(hù)類(lèi)、方法與變量
在代碼當(dāng)中,類(lèi)、方法與變量分為私有與公共兩類(lèi)。私有類(lèi)無(wú)法輕松進(jìn)行訪問(wèn),這使其成為代碼中的高安全性點(diǎn)。不過(guò)公共方法與變量則易于方法,也因此常常成為攻擊突破口。因此,請(qǐng)盡可能限制其范圍。
請(qǐng)記住,只在必要時(shí)開(kāi)放類(lèi)、方法與變量。
原則三:永遠(yuǎn)對(duì)范圍進(jìn)行預(yù)定義
大多數(shù)開(kāi)發(fā)者完全依賴(lài)于軟件包自身的范圍設(shè)定,事實(shí)上我們應(yīng)當(dāng)堅(jiān)持對(duì)代碼范圍進(jìn)行預(yù)定義。很多類(lèi)本身并非完全封閉,這意味著攻擊者能夠?qū)ζ涫┮怨簟:诳涂梢岳脝我宦┒床迦胱约旱念?lèi),進(jìn)而從代碼中提取敏感信息。JVM在默認(rèn)情況下即不會(huì)封閉,不過(guò)允許大家在該軟件包內(nèi)進(jìn)行類(lèi)封閉。
原則四:避免使用內(nèi)部類(lèi)
一般來(lái)講,開(kāi)發(fā)者會(huì)在同一軟件包內(nèi)其它類(lèi)需要時(shí)使用內(nèi)部類(lèi)。這些內(nèi)部類(lèi)通常可供同一軟件包內(nèi)全部類(lèi)進(jìn)行訪問(wèn),由此可能引發(fā)的問(wèn)題在預(yù)定義代碼范圍部分已經(jīng)提到。因此,同樣請(qǐng)僅在必要時(shí)使用內(nèi)部類(lèi)。
原則五:確保類(lèi)不可克隆
Java提供一項(xiàng)功能,用于在需要時(shí)對(duì)自有類(lèi)進(jìn)行克隆。然而這項(xiàng)功能往往被黑客所利用,其能夠使用java.lang.Cloneable從代碼中復(fù)制代碼實(shí)例并竊取必要信息。
要解決這個(gè)問(wèn)題,大家只需要在代碼中的每個(gè)類(lèi)中添加以下代碼。
public final void clone()throws?
java.lang.CloneNotSupportedException {?
thrownewjava.lang.CloneNotSupportedException();?
}
如果大家希望自己的class具備可克隆性,同時(shí)仍然盡可能避免安全問(wèn)題,那么則可自行定義克隆方法,并將其設(shè)置為final。
如果大家在自己的某個(gè)超類(lèi)中使用了nonfinal克隆方法,則請(qǐng)按以下方式定義該方法:
public final void clone()?
throwsjava.lang.CloneNotSupportedException {?
super.clone(); }
當(dāng)然,沒(méi)人能100%掌握Java的全部奧秘,但關(guān)注上述編程原則及實(shí)踐,能夠幫助大家更為有效地降低代碼內(nèi)bug數(shù)量。
?
WEB前端學(xué)習(xí)交流群21 598399936
?
轉(zhuǎn)載于:https://www.cnblogs.com/luludehuhuan/p/6269223.html
總結(jié)
以上是生活随笔為你收集整理的五大原则让你的代码不再受bug的困扰的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构与算法系列——从菜鸟到入门
- 下一篇: select样式的重写