自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

防御性編程?這不就來(lái)了

開(kāi)發(fā) 前端
產(chǎn)品每次提需求,代碼實(shí)現(xiàn)一定要做到最小細(xì)粒度實(shí)現(xiàn),做到需求里少一個(gè)字,我的代碼里絕不會(huì)多一個(gè)詞,注釋也是不可能有的,我寫(xiě)的代碼只有我看得懂不是防御性編程的基操嗎?

最近程序員界又重新流行起來(lái)了防御性編程這個(gè)概念,早期嘞,這個(gè)概念代表是一種細(xì)致、謹(jǐn)慎的編程方法。

防御性編程的目的是為了開(kāi)發(fā)可靠的軟件,我們?cè)谠O(shè)計(jì)系統(tǒng)中每個(gè)組件的時(shí)候,都需要使其盡可能的 "保護(hù)" 自己。

但是 2023 年以來(lái),國(guó)內(nèi)的互聯(lián)網(wǎng)市場(chǎng)是什么行情,相信大家都清楚,整個(gè)市場(chǎng)環(huán)境都在強(qiáng)調(diào)降本增效、開(kāi)猿節(jié)流。

因此為了體現(xiàn)程序員們?cè)诠敬a中的不可替代性?防止被裁。"防御性編程" 概念又重新流行了起來(lái)。

不過(guò)這次它可不再是保護(hù)程序了,而是保護(hù)廣大程序員群體 ??。

所以我就給大家介紹一下,新時(shí)代背景下的 "防御性" 編程理念,如何實(shí)踐 ??。

本文大綱如下,

圖片圖片

代碼書(shū)寫(xiě)

變量名稱(chēng)使用單一字符

Java 語(yǔ)言里變量名只能由 Unicode 字母、數(shù)字、下劃線(xiàn)或美元符號(hào)組成,并且第一個(gè)字符不能是數(shù)字。

那么對(duì)于單一字符的變量名稱(chēng)來(lái)說(shuō),26 個(gè)字母大寫(xiě)加 26 個(gè)字母小寫(xiě)加下劃線(xiàn)以及美元符一共有 54 種變量名稱(chēng),想一想難道這些還不夠你在單個(gè) Java 文件里給變量命名用嗎?

兄弟這一般夠用了。

使用中文命名

兄弟,大家都是中國(guó)人,肯定看得懂中文咯。

圖片圖片

就問(wèn)你,Idea 支不支持吧,有沒(méi)有提示說(shuō)你變量名不規(guī)范嘛!沒(méi)提示就是規(guī)范。

還有一點(diǎn),兄弟們,還記得上面 Java 語(yǔ)言里變量名組成規(guī)范嗎?中文也在 Unicode 編碼里面,所以其實(shí)我們還可以用中文作為變量名稱(chēng)。

我已經(jīng)幫你查好了,Java 里常用的 utf-8 編碼下,支持的中文字符有 20902 個(gè),所以上面單一字符的變量名稱(chēng)還需要新增 20902 種 ??,簡(jiǎn)直完美。

圖片圖片

使用多國(guó)語(yǔ)言命名

圖片圖片

不多說(shuō),我就問(wèn)你看不看得懂吧,看得懂算你厲害,看不懂算你技術(shù)不行。

你問(wèn)我看不看得懂,我當(dāng)然看的懂,我寫(xiě)的,我請(qǐng)百度翻譯的 ??。

圖片圖片

這些變量名稱(chēng)命名法則,不僅適用與 Java,也適用于 JavaScript,廣大前端程序員也有福了。

CV 大法

不要抽象、不要封裝、不要繼承、不要組合,我只會(huì) CV。

抽象

抽象:我可以讓調(diào)用者只需要關(guān)心方法提供了哪些功能,而不需要知道這些功能是如何實(shí)現(xiàn)的。我的好處是可以減少信息的復(fù)雜度,提高代碼的可讀性和易用性,也方便了代碼的修改和擴(kuò)展,我厲害吧。

我:我只會(huì) CV。

抽象:...

封裝

封裝:我可以把數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其構(gòu)成一個(gè)獨(dú)立的實(shí)體,對(duì)外只暴露有限的訪(fǎng)問(wèn)接口,保護(hù)內(nèi)部的數(shù)據(jù)不被外部隨意訪(fǎng)問(wèn)和修改。我的好處是可以增強(qiáng)數(shù)據(jù)的安全性和一致性,減少代碼的耦合性,也提高了類(lèi)的易用性??匆?jiàn)沒(méi),我比抽象好懂吧。

我:我只會(huì) CV。

封裝:...

繼承

繼承:我可以讓一個(gè)類(lèi)繼承另一個(gè)類(lèi)的屬性和方法,從而實(shí)現(xiàn)代碼的復(fù)用和擴(kuò)展。我可以表示類(lèi)之間的 is-a 關(guān)系,體現(xiàn)了類(lèi)的層次結(jié)構(gòu)和分類(lèi)。我的好處是可以避免代碼的重復(fù),簡(jiǎn)化類(lèi)的定義,也增加了代碼的維護(hù)性。我可是面向?qū)ο笕筇卣髦弧?/p>

我:我只會(huì) CV。

繼承:...

組合

組合:我可以讓一個(gè)類(lèi)包含另一個(gè)類(lèi)的對(duì)象作為自己的屬性,從而實(shí)現(xiàn)代碼的復(fù)用和擴(kuò)展。我可以表示類(lèi)之間的 has-a 關(guān)系,體現(xiàn)了類(lèi)的關(guān)聯(lián)和聚合。我的好處是可以增加類(lèi)的靈活性和可變性,也降低了類(lèi)之間的耦合性。不要用繼承,我可是比繼承更優(yōu)秀的。

我:我只會(huì) CV。

組合:...

不要問(wèn)為什么我只會(huì) CV,因?yàn)槲业逆I盤(pán)只有 CV。

圖片圖片

剛出道時(shí)我們嘲諷 CV,后來(lái)逐漸理解 CV,最后我們成為 CV。

CV 的越多,代碼就越復(fù)雜,代碼越復(fù)雜,同事就越難看懂,同事越難看懂,就越難接手你的代碼,你的不可替代性就越來(lái)越強(qiáng)。

那么我們防御性編程的目的不久達(dá)到了嘛。

兄弟,聽(tīng)我說(shuō),給你的代碼上防御,是為了你好!

產(chǎn)品開(kāi)發(fā)

運(yùn)營(yíng)配置、開(kāi)發(fā)配置、系統(tǒng)配置直接寫(xiě)死,用魔法值,沒(méi)毛病。

產(chǎn)品每次提需求,代碼實(shí)現(xiàn)一定要做到最小細(xì)粒度實(shí)現(xiàn),做到需求里少一個(gè)字,我的代碼里絕不會(huì)多一個(gè)詞,注釋也是不可能有的,我寫(xiě)的代碼只有我看得懂不是防御性編程的基操嗎?

我的代碼我做主。

產(chǎn)品原型不提,我絕對(duì)不會(huì)問(wèn)。要做到這系統(tǒng)有你才能每一次發(fā)版上線(xiàn)都是相安無(wú)事,一旦缺少了你,鬼知道會(huì)發(fā)生什么。

我們能做的就是牢牢把握項(xiàng)目中核心成員的位置。這個(gè)項(xiàng)目組少了你,絕對(duì)不行!

最后聊兩句

2023 全年都在降本增效,節(jié)能開(kāi)猿的浪潮下度過(guò)。

雖然本文是給大家將防御性編程如何實(shí)踐,但是我還是希望每一個(gè)互聯(lián)網(wǎng)打工人都能平穩(wěn)度過(guò)這波寒冬。

積蓄力量,多思考,多元發(fā)展。

在來(lái)年,春暖花開(kāi),金三銀四之月,都能找到自己滿(mǎn)意的工作,得到屬于自己的果實(shí)。

責(zé)任編輯:武曉燕 來(lái)源: waynblog
相關(guān)推薦

2022-03-04 18:59:59

互聯(lián)網(wǎng)局域網(wǎng)

2022-04-26 06:21:59

編程動(dòng)態(tài)內(nèi)存

2024-10-09 12:03:06

2024-07-26 10:01:16

2022-03-11 07:47:56

防御性編程互聯(lián)網(wǎng)

2020-08-23 21:07:16

編程PythonJava

2022-05-07 19:18:16

防御性編碼代碼

2023-12-12 09:27:07

編程碼農(nóng)

2023-12-12 13:18:11

2023-09-27 22:52:52

2022-05-13 12:14:44

CSS項(xiàng)目技能

2023-03-18 20:51:16

Kali LinuxLinux

2020-12-14 08:02:52

碼德代碼產(chǎn)品

2023-02-26 18:44:43

iOS蘋(píng)果開(kāi)發(fā)

2022-12-16 16:54:45

2014-12-23 11:10:47

紅星LinuxLinux

2019-03-10 16:18:09

Facebook馬克·扎克伯微信

2023-05-22 16:27:08

iOS 16.5蘋(píng)果iOS 16.6

2016-11-23 13:46:08

Android

2016-11-15 21:05:57

辦公
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)