新手寫代碼的要點(diǎn)

原文鏈接: http://tieba.baidu.com/p/5057895435?pn=1

優(yōu)秀的代碼基本遵循這四個(gè)特性:可維護(hù)性、可擴(kuò)展性繁扎、可讀性和可移植性卢佣。

1.代碼格式,駝峰標(biāo)識(shí)嗜憔,縮進(jìn)杜跷,命名規(guī)范:

建議使用一致的代碼格式,采用駝峰命名法歪架,統(tǒng)一的縮進(jìn)風(fēng)格股冗,并遵循良好的命名規(guī)范,以提高代碼的可讀性和蚪。

2.寫代碼時(shí)請(qǐng)先想后寫止状,不要邊想邊寫:

強(qiáng)調(diào)在寫代碼之前先進(jìn)行思考,明確功能需要使用哪些類攒霹,類與類之間的關(guān)系是什么怯疤,確保在開始編寫代碼之前有清晰的設(shè)計(jì)思路。

3.一個(gè)類里請(qǐng)不要寫太多方法(實(shí)體類除外):

提倡單一職責(zé)原則催束,一個(gè)類應(yīng)該有一個(gè)單一的責(zé)任集峦。在類中限制方法數(shù)量,保持高內(nèi)聚性抠刺,提高代碼的可維護(hù)性和可讀性塔淤。

4.一個(gè)方法里不要寫太多代碼:

強(qiáng)調(diào)方法的簡(jiǎn)潔性和可維護(hù)性,一個(gè)方法應(yīng)該專注于完成一個(gè)特定的任務(wù)速妖,不要將過多的邏輯堆積在一個(gè)方法中高蜂。

5.當(dāng)一段代碼被你復(fù)制到多個(gè)地方使用時(shí),請(qǐng)封裝這段代碼:

提倡遵循“不重復(fù)原則”罕容,當(dāng)一段代碼需要在多個(gè)地方使用時(shí)妨马,將其封裝成一個(gè)方法或類,以便在多處調(diào)用杀赢。

6.繼承可以幫你節(jié)約很多代碼烘跺,但請(qǐng)盡量少用繼承:

警示過度使用繼承可能引發(fā)的問題,提倡多用組合而不是繼承脂崔,以避免繼承帶來的復(fù)雜性和脆弱性滤淳。

7.組合和繼承相反,是一種松散的結(jié)構(gòu)砌左,因此用組合來代替繼承是一種很好的設(shè)計(jì):

強(qiáng)調(diào)使用組合來構(gòu)建松散耦合的結(jié)構(gòu)脖咐,以提高系統(tǒng)的靈活性和可維護(hù)性。

8.思考一個(gè)功能時(shí)不要考慮先干什么后干什么汇歹,正確的思考方式是:

強(qiáng)調(diào)功能設(shè)計(jì)時(shí)應(yīng)該首先考慮需要使用哪些類屁擅,類與類之間的關(guān)系是什么,而不是著眼于具體的實(shí)現(xiàn)細(xì)節(jié)产弹。

9.將接口作為入?yún)⑹且环N很好的設(shè)計(jì)方式派歌,請(qǐng)?jiān)谀愕拇a中嘗試使用它:

提倡使用接口來定義入?yún)ⅲ蕴岣叽a的可擴(kuò)展性和靈活性。

10.接口職責(zé)請(qǐng)盡量單一胶果,5個(gè)接口協(xié)同完成一個(gè)功能要遠(yuǎn)遠(yuǎn)超過一個(gè)接口完成5個(gè)功能:

提倡接口的單一職責(zé)原則匾嘱,一個(gè)接口應(yīng)該只有一個(gè)理由發(fā)生變化,以降低系統(tǒng)的耦合度早抠。

11.如果你用一個(gè)字符串作為標(biāo)識(shí)霎烙,請(qǐng)嘗試把它設(shè)計(jì)成數(shù)據(jù)字典或配置文件:

建議使用數(shù)據(jù)字典或配置文件來管理字符串標(biāo)識(shí),提高代碼的可維護(hù)性和可配置性蕊连。

11.如果你實(shí)在懶得寫數(shù)據(jù)字典或配置文件請(qǐng)至少把它寫成枚舉:

即使不使用數(shù)據(jù)字典或配置文件悬垃,也建議將字符串標(biāo)識(shí)定義為枚舉,以提高代碼的可讀性和維護(hù)性甘苍。

11.如果你實(shí)在懶得寫枚舉盗忱,請(qǐng)至少把它寫成常量:

即使不使用枚舉,也應(yīng)該將字符串標(biāo)識(shí)定義為常量羊赵,以提高代碼的可維護(hù)性和防止魔法數(shù)字趟佃。

11.軟件設(shè)計(jì)中有很多原則,大部分你可以不記昧捷,但請(qǐng)務(wù)必記住其中的一個(gè)“開閉原則”:

強(qiáng)調(diào)開閉原則闲昭,即軟件實(shí)體應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉靡挥。設(shè)計(jì)時(shí)應(yīng)該使系統(tǒng)具有良好的擴(kuò)展性序矩,而不是頻繁修改已有代碼。

"開閉原則"是面向?qū)ο笤O(shè)計(jì)中的一個(gè)重要原則跋破,它指導(dǎo)著軟件實(shí)體(類簸淀、模塊、函數(shù)等)應(yīng)該對(duì)擴(kuò)展開放毒返,而對(duì)修改關(guān)閉租幕。這意味著在不修改現(xiàn)有代碼的情況下,能夠通過擴(kuò)展來添加新的功能拧簸。

具體而言劲绪,當(dāng)系統(tǒng)需要進(jìn)行變更時(shí),應(yīng)該通過增加新代碼而不是修改已有代碼來實(shí)現(xiàn)盆赤。這有助于降低對(duì)現(xiàn)有代碼的影響贾富,減少引入新問題的風(fēng)險(xiǎn),同時(shí)提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性牺六。

以下是一個(gè)簡(jiǎn)單的例子來說明開閉原則:

假設(shè)有一個(gè)圖形繪制系統(tǒng)颤枪,最初只能繪制矩形:

class Rectangle {
    void draw() {
        // 繪制矩形的具體邏輯
        System.out.println("Drawing a rectangle");
    }
}

現(xiàn)在,如果需要添加對(duì)圓形的繪制支持而不修改 Rectangle 類淑际,我們可以通過創(chuàng)建新的圖形類 Circle 來實(shí)現(xiàn):

class Circle {
    void draw() {
        // 繪制圓形的具體邏輯
        System.out.println("Drawing a circle");
    }
}

通過擴(kuò)展而非修改現(xiàn)有代碼畏纲,符合開閉原則扇住。客戶端代碼可以使用這兩個(gè)類來繪制矩形和圓形霍骄,而不需要改動(dòng)原有的 Rectangle 類。這種設(shè)計(jì)使得系統(tǒng)更容易擴(kuò)展淡溯,同時(shí)不會(huì)破壞已有的功能读整。

總的來說,開閉原則的目標(biāo)是使系統(tǒng)更加靈活咱娶,能夠適應(yīng)變化米间,同時(shí)保持穩(wěn)定性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末膘侮,一起剝皮案震驚了整個(gè)濱河市屈糊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琼了,老刑警劉巖逻锐,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異雕薪,居然都是意外死亡昧诱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門所袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盏档,“玉大人,你說我怎么就攤上這事燥爷◎谀叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵前翎,是天一觀的道長(zhǎng)稚配。 經(jīng)常有香客問我,道長(zhǎng)港华,這世上最難降的妖魔是什么药有? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮苹丸,結(jié)果婚禮上愤惰,老公的妹妹穿的比我還像新娘。我一直安慰自己赘理,他們只是感情好宦言,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著商模,像睡著了一般奠旺。 火紅的嫁衣襯著肌膚如雪蜘澜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天响疚,我揣著相機(jī)與錄音鄙信,去河邊找鬼。 笑死忿晕,一個(gè)胖子當(dāng)著我的面吹牛装诡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播践盼,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸦采,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了咕幻?” 一聲冷哼從身側(cè)響起渔伯,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肄程,沒想到半個(gè)月后锣吼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蓝厌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年吐限,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褂始。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诸典,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崎苗,到底是詐尸還是另有隱情狐粱,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布胆数,位于F島的核電站肌蜻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏必尼。R本人自食惡果不足惜蒋搜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望判莉。 院中可真熱鬧豆挽,春花似錦、人聲如沸券盅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锰镀。三九已至娘侍,卻和暖如春咖刃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憾筏。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工嚎杨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氧腰。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓枫浙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親容贝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子自脯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容