<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          程序員日常開(kāi)發(fā)的八榮八恥!

          共 2417字,需瀏覽 5分鐘

           ·

          2022-06-20 11:50

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          今天來(lái)講講程序員日常開(kāi)發(fā)的八榮八恥。還挺有意思的,給大家分享一下,哈哈~

          1. 以接口兼容為榮,以接口裸奔為恥

          接口兼容為榮,怎么理解呢?

          很多bug都是因?yàn)樾薷牧?strong style="font-weight: bold;color: black;">對(duì)外舊接口,但是卻不做兼容導(dǎo)致的。關(guān)鍵這個(gè)問(wèn)題多數(shù)是比較嚴(yán)重的,可能直接導(dǎo)致系統(tǒng)發(fā)版失敗的。新手程序員很容易犯這個(gè)錯(cuò)誤。所以我們修改老接口的時(shí)候,一般要做好兼容

          如果你的需求是在原來(lái)接口上修改,尤其這個(gè)接口是對(duì)外提供服務(wù)的話,一定要考慮接口兼容。舉個(gè)例子吧,比如dubbo接口,原本是只接收A,B參數(shù),現(xiàn)在你加了一個(gè)參數(shù)C,就可以考慮這樣處理:



          //老接口
          void oldService(A,B){
            //兼容新接口,傳個(gè)null代替C
            newService(A,B,null);
          }

          //新接口,暫時(shí)不能刪掉老接口,需要做兼容。
          void newService(A,B,C){
            ...
          }

          我們還要以接口裸奔為恥。為了保證接口報(bào)文的安全性,拒絕接口報(bào)文裸奔。因此,我們可以使用https協(xié)議,還建議對(duì)接口加簽驗(yàn)簽處理,數(shù)據(jù)加密等。

          接口簽名很簡(jiǎn)單,就是把接口請(qǐng)求相關(guān)信息(請(qǐng)求報(bào)文,包括請(qǐng)求時(shí)間戳、版本號(hào)、appid等),客戶端私鑰加簽,然后服務(wù)端用公鑰驗(yàn)簽,驗(yàn)證通過(guò)才認(rèn)為是合法的、沒(méi)有被中間人篡改過(guò)的請(qǐng)求。

          2. 以規(guī)范日志為榮,以亂打日志為恥

          我們的業(yè)務(wù)邏輯代碼需要日志保駕護(hù)航。比如:你實(shí)現(xiàn)轉(zhuǎn)賬業(yè)務(wù),轉(zhuǎn)個(gè)幾百萬(wàn),然后轉(zhuǎn)失敗了,接著客戶投訴,然后你還沒(méi)有打印到日志,想想那種水深火熱的困境下,你卻毫無(wú)辦法。。。

          因此大家要打好日志,比如日志級(jí)別使用恰當(dāng),日志格式,在哪些地方打日志,參數(shù)打印哪個(gè)等等。不能亂打日志,要以規(guī)范日志為榮,亂打日志為恥。

          3. 以代碼自測(cè)為榮,以過(guò)度自信為恥

          修改完代碼,要自測(cè)一下,這個(gè)是每個(gè)程序必備的素養(yǎng),即使你只是修改了一個(gè)變量或者一個(gè)字段。

          要杜絕過(guò)度自信,尤其不要抱有這種僥幸心理:我只是改了一個(gè)變量或者我只改了一行配置的代碼,不用自測(cè)了,怎么可能有問(wèn)題

          因此,我們要以代碼自測(cè)為榮,以過(guò)度自信為恥

          4. 以參數(shù)校驗(yàn)為榮,以運(yùn)行異常為恥

          參數(shù)校驗(yàn)是每個(gè)程序員必備的基本素養(yǎng)。你的方法處理,必須先校驗(yàn)參數(shù)。比如入?yún)⑹欠裨试S為空,入?yún)㈤L(zhǎng)度是否符合你的預(yù)期長(zhǎng)度。因此,我們要以參數(shù)校驗(yàn)為榮

          比如你的數(shù)據(jù)庫(kù)表字段設(shè)置為varchar(16),對(duì)方傳了一個(gè)32位的字符串過(guò)來(lái),如果你不校驗(yàn)參數(shù),插入數(shù)據(jù)庫(kù)直接異常了。

          我們要以運(yùn)行時(shí)異常為恥

          比如你沒(méi)有做好一些非空校驗(yàn),數(shù)組邊界校驗(yàn)等等,導(dǎo)致的空指針異常、數(shù)組邊界異常,尤其這些運(yùn)行時(shí)異常還發(fā)生在生產(chǎn)環(huán)境的話,在有經(jīng)驗(yàn)的程序員看來(lái),這些錯(cuò)誤行為會(huì)顯得特別低級(jí)。

          所以,我們要以參數(shù)校驗(yàn)為榮,以運(yùn)行異常為恥

          5. 以設(shè)計(jì)模式為榮,以代碼重復(fù)為恥

          日常工作中,我們要以設(shè)計(jì)模式為榮。

          比如策略模式、工廠模式、模板方法模式、觀察者模式、單例模式、責(zé)任鏈模式等等,都是很常用的。在恰當(dāng)?shù)臉I(yè)務(wù)場(chǎng)景,我們還是把設(shè)計(jì)模式用上吧。設(shè)計(jì)模式可以讓我們的代碼更優(yōu)雅、更具有擴(kuò)展性。但是不要過(guò)度設(shè)計(jì)哈,不要硬套設(shè)計(jì)模式。

          我們還要以重復(fù)代碼為恥。重復(fù)代碼,我相信每個(gè)程序員都討厭的,尤其有時(shí)候你的開(kāi)發(fā)工具還會(huì)給你提示出來(lái)。我們可以抽取公共方法,抽取公用變量、擴(kuò)展繼承類等方式去消除重復(fù)代碼。

          6. 以優(yōu)化代碼為榮,以復(fù)制粘貼為恥

          日常開(kāi)發(fā)中,很多程序員在實(shí)現(xiàn)某個(gè)功能時(shí),如果看到老代碼有類似的功能,他們很喜歡復(fù)制粘貼過(guò)來(lái)。這樣很容易產(chǎn)生重復(fù)代碼,所以我們要以復(fù)制粘貼為恥。一般建議加自己的思考,怎么優(yōu)化這部分代碼,怎么抽取公用方法,用什么設(shè)計(jì)模式等等。

          個(gè)人覺(jué)得,優(yōu)化代碼的過(guò)程,可以讓自己取得更大的進(jìn)步。因此我們要以優(yōu)化代碼為榮,以復(fù)制粘貼為恥。

          7. 以定義常量為榮,以魔法數(shù)字為恥

          大家平時(shí)工作中,是不是經(jīng)常看到魔法數(shù)字。魔法數(shù)字(Magic Number)是指擁有特殊意義,卻又不能明確表現(xiàn)出這種意義的數(shù)字。程序里面存在魔法數(shù)字,易讀性很差,且非常難以維護(hù)。

          如下:

          if(type==1){
             System.out.println("關(guān)注公眾號(hào):撿田螺的小男孩");
          }else if(type==2){
             System.out.println("關(guān)注公眾號(hào):程序員田螺");
          }else{
             System.out.println("關(guān)注其他公眾號(hào)");
          }

          代碼中的1、2就表示魔法數(shù)字,我們可以用常量取代魔法數(shù),或者定義枚舉去代替魔法數(shù)字哈。

          8. 以總結(jié)思考為榮,以混水摸魚為恥

          我們要以總結(jié)思考為榮。

          比如你看完田螺哥的文章,可以總結(jié)思考一下,或者做做筆記,或者放到收藏夾,茶余飯后再看看。再比如你日常工作中,看到一段不錯(cuò)的代碼,也可以思考一下亮點(diǎn)在哪里,如果是你自己來(lái)寫的話,怎么寫出更好的代碼。反正就是要多總結(jié),多思考,多復(fù)習(xí),溫故而知新嘛。

          我們要以混水摸魚為恥。比如工作中,一些小伙伴喜歡混水摸魚,當(dāng)一天和尚敲一天鐘,代碼多是復(fù)制粘貼,做完需求就摸魚。實(shí)際上這個(gè)不可取的。

          我們要在工作中成長(zhǎng),通過(guò)認(rèn)真工作,使自己會(huì)得更多,將來(lái)?yè)Q工作也可以拿到更高的薪水。加油吧,小伙子!以總結(jié)思考為榮,以混水摸魚為恥

              

          1、拖動(dòng)文件就能觸發(fā)7-Zip安全漏洞,波及所有版本

          2、進(jìn)程切換的本質(zhì)是什么?

          3、一次 SQL 查詢優(yōu)化原理分析:900W+ 數(shù)據(jù),從 17s 到 300ms

          4、Redis數(shù)據(jù)結(jié)構(gòu)為什么既省內(nèi)存又高效?

          5、IntelliJ IDEA快捷鍵大全 + 動(dòng)圖演示

          6、全球第三瀏覽器,封殺中國(guó)用戶這種操作!

          點(diǎn)

          點(diǎn)

          點(diǎn)點(diǎn)

          點(diǎn)在看

          瀏覽 22
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产乱弄免费视频观看 | 美女操逼动漫 | 日本AA片视频 | 成年人在线视频 | 亚洲一级性爱 |