日本在线免费视频,国产精品视频2020,亚洲一区二区色,亚洲精品在线播放

淘寶代碼怎么用 最新揭秘淘寶代碼換標題技術

今天王亞軍給大家帶來了這篇淘寶代碼怎么用,揭秘淘寶代碼換標題技術干貨,以及關于淘寶代碼等等一系列的相關事項,這些其實都是一些必備知識,只是有些時候我們沒有遇到就沒有去了解而已!

顯然,這個問題并沒有唯一的標準答案,誰都可以談論自己的理解,今天談談我對于好代碼的理解。

一句話概括

衡量代碼質量的唯一有效標準:WTF/min —— Robert C. Martin

淘寶代碼怎么用,揭秘淘寶代碼換標題技術,淘寶代碼

Bob大叔對于好代碼的理解非常有趣,對我也有很大的啟發。我們編寫的代碼,除了用于機器執行產生我們預期的效果以外,更多的時候是給人讀的,這個讀代碼的可能是后來的維護人員,更多時候是一段時間后的作者本人。

我敢打賭每個人都遇到過這樣的情況:過幾周或者幾個月之后,再看到自己寫的代碼,感覺一團糟,不禁懷疑人生。

我們自己寫的代碼,一段時間后自己看尚且如此,更別提拿給別人看了。

任何一個傻瓜都能寫出計算機可以理解的代碼。唯有寫出人類容易理解的代碼,才是優秀的程序員?!?Martin Fowler

所以,談到好代碼,首先跳入自己腦子里的一個詞就是:整潔

好的代碼一定是整潔的,給閱讀的人一種如沐春風,賞心悅目的感覺。

整潔的代碼如同優美的散文?!?Grady Booch

好代碼的特性

很難給好的代碼下一個定義,相信很多人跟我一樣不會認為整潔的代碼就一定是好代碼,但好代碼一定是整潔的,整潔是好代碼的必要條件。整潔的代碼一定是高內聚低耦合的,也一定是可讀性強、易維護的。

高內聚低耦合

高內聚低耦合幾乎是每個程序員員都會掛在嘴邊的,但這個詞太過于寬泛,太過于正確,所以聰明的編程人員們提出了若干面向對象設計原則來衡量代碼的優劣:

  • 開閉原則 OCP (The Open-Close Principle)
  • 單一職責原則 SRP (Single Responsibility Principle)
  • 依賴倒置原則 DIP (Dependence Inversion Principle)
  • 最少知識原則 LKP (Least Knowledge Principle)) / 迪米特法則 (Law Of Demeter)
  • 里氏替換原則 LSP (Liskov Substitution Principle)
  • 接口隔離原則 ISP (Interface Segregation Principle)
  • 組合/聚合復用原則 CARP (Composite/Aggregate Reuse Principle)

這些原則想必大家都很熟悉了,是我們編寫代碼時的指導方針,按照這些原則開發的代碼具有高內聚低耦合的特性。換句話說,我們可以用這些原則來衡量代碼的優劣。

但這些原則并不是死板的教條,我們也經常會因為其他的權衡(例如可讀性、復雜度等)違背或者放棄一些原則。比如子類擁有特性的方法時,我們很可能打破里氏替換原則。再比如,單一職責原則跟接口隔離原則有時候是沖突的,我們通常會舍棄接口隔離原則,保持單一職責。只要打破原則的理由足夠充分,也并不見得是壞的代碼。

可讀性

代碼只要具有了高內聚和低耦合就足夠好了嗎?并不見得,我認為代碼還必須是易讀的。好的代碼無論是風格、結構還是設計上都應該是可讀性很強的。可以從以下幾個方面考慮整潔代碼,提高可讀性。

命名

大到項目名、包名、類名,小到方法名、變量名、參數名,甚至是一個臨時變量的名稱,其命名都是很嚴肅的事,好的名字需要斟酌。

? 名副其實

好的名稱一定是名副其實的,不需要注釋解釋即可明白其含義的。

/**
 * 創建后的天數
 **/
 int d;

int daysSinceCreation;

后者比前者的命名要好很多,閱讀者一下子就明白了變量的意思。

? 容易區分

我們很容易就會寫下非常相近的方法名,僅從名稱無法區分兩者到底有啥區別(eg. getAccount()與getAccountInfo()),這樣在調用時也很難抉擇要用哪個,需要去看實現的代碼才能確定。

? 可讀的

名稱一定是可讀的,易讀的,最好不要用自創的縮寫,或者中英文混寫。

? 足夠短

名稱當然不是越長越好,應該在足夠表達其含義的情況下越短越好。

格式

良好的代碼格式也是提高可讀性非常重要的一環,分為垂直格式和水平格式。

? 垂直格式

通常一行只寫一個表達式或者子句。一組代碼代表一個完整的思路,不同組的代碼中間用空行間隔。

public class Demo {
 @Resource
 private List handlerList;
 private Map handlerMap = new ConcurrentHashMap();
 @PostConstruct
 private void init() {
 if (!CollectionUtils.isEmpty(handlerList)) {
 for (Handler handler : handlerList) {
 handlerMap.put(handler.getType(), handler);
 }
 }
 }
 publicResult<Map> query(Long id, TypeEnum typeEnum) {
 Handler handler = handlerMap.get(typeEnum);
 if (null == handler) {
 return Result.returnFailed(ErrorCode.CAN_NOT_HANDLE);
 }
 return handler.query(id);
 }
}

如果去掉了空行,可讀性大大降低。

 public class Demo {
 @Resource
 private List handlerList;
 private Map handlerMap = new ConcurrentHashMap();
 @PostConstruct
 private void init() {
 if (!CollectionUtils.isEmpty(handlerList)) {
 for (Handler handler : handlerList) {
 handlerMap.put(handler.getType(), handler); } } }
 public Result<Map> query(Long id, TypeEnum typeEnum) {
 Handler handler = handlerMap.get(typeEnum);
 if (null == handler) {
 return Result.returnFailed(ErrorCode.CAN_NOT_HANDLE);
 }
 return handler.query(id); }
 }

類靜態變量、實體變量應定義在類的頂部。類內方法定義順序依次是:公有方法或保護方法 > 私有方法 > getter/setter 方法。

? 水平格式

要有適當的縮進和空格。

? 團隊統一

通常,同一個團隊的風格盡量保持一致。集團對于 Java 開發進行了非常詳細的規范。

類與函數

? 類和函數應短小,更短小

類和函數都不應該過長(集團要求函數長度最多不能超過 80 行),過長的函數可讀性一定差,往往也包含了大量重復的代碼。

? 函數只做一件事(同一層次的事)

同一個函數的每條執行語句應該是統一層次的抽象。例如,我們經常會寫一個函數需要給某個
DTO 賦值,然后再調用接口,接著返回結果。那么這個函數應該包含三步:DTO 賦值,調用接口,處理結果。如果函數中還包含了 DTO
賦值的具體操作,那么說明此函數的執行語句并不是在同一層次的抽象。

? 參數越少越好

參數越多的函數,調用時越麻煩。盡量保持參數數量足夠少,最好是沒有。

注釋

? 別給糟糕的代碼加注釋,重構他

注釋不能美化糟糕的代碼。當企圖使用注釋前,先考慮是否可以通過調整結構,命名等操作,消除寫注釋的必要,往往這樣做之后注釋就多余了。

? 好的注釋提供信息、表達意圖、闡釋、警告

我們經常遇到這樣的情況:注釋寫的代碼執行邏輯與實際代碼的邏輯并不符合。大多數時候都是因為代碼變化了,而注釋并沒有跟進變化。所以,注釋最好提供一些代碼沒有的額外信息,展示自己的設計意圖,而不是寫具體如何實現。

? 刪除掉注釋的代碼

git等版本控制已經幫我們記錄了代碼的變更歷史,沒必要繼續留著過時的代碼,注釋的代碼也會對閱讀等造成干擾。

錯誤處理

? 錯誤處理很重要,但他不能搞亂代碼邏輯

錯誤處理應該集中在同一層處理,并且錯誤處理的函數最好不包含其他的業務邏輯代碼,只需要處理錯誤信息即可。

? 拋出異常時提供足夠多的環境和說明,方便排查問題

異常拋出時最好將執行的類名,關鍵數據,環境信息等均拋出,此時自定義的異常類就派上用場了,通過統一的一層處理異常,可以方便快速地定位到問題。

? 特例模型可消除異??刂苹蛘?null 判斷

大多數的異常都是來源于NPE,有時候這個可以通過 Null Object 來消除掉。

? 盡量不要返回 null ,不要傳 null 參數

不返回 null 和不傳 null 也是為了盡量降低 NPE 的可能性。

如何判斷不是好的代碼

討論了好代碼的必要條件,我們再來看看好代碼的否定條件:什么不是好的代碼。Kent Beck 使用味道來形容重構的時機,我認為當代碼有壞味道的時候,也代表了其并不是好的代碼。

代碼的壞味道

? 重復

重復可能是軟件中一切邪惡的根源?!?Robert C.Martin

Martin Fowler 也認為壞味道中首當其沖的就是重復代碼。

很多時候,當我們消除了重復代碼之后,發現代碼就已經比原來整潔多了。

? 函數過長、類過大、參數過長

過長的函數解釋能力、共享能力、選擇能力都較差,也不易維護。

過大的類代表了類做了很多事情,也常常有過多的重復代碼。

參數過長,不易理解,調用時也容易出錯。

? 發散式變化、霰彈式修改、依戀情結

如果一個類不是單一職責的,則不同的變化可能都需要修改這個類,說明存在發散式變化,應考慮將不同的變化分離開。

如果某個變化需要修改多個類的方法,則說明存在霰彈式修改,應考慮將這些需要修改的方法放入同一個類。

如果函數對于某個類的興趣高于了自己所處的類,說明存在依戀情結,應考慮將函數轉移到他應有的類中。

? 數據泥團

有時候會發現三四個相同的字段,在多個類和函數中均出現,這時候說明有必要給這一組字段建立一個類,將其封裝起來。

? 過多的 if…else 或者使用 switch

過多的 if…else 或者 switch ,都應該考慮用多態來替換掉。甚至有些人認為除個別情況外,代碼中就不應該存在 if…else 。

總結

本文首先一句話概括了我認為的好代碼的必要條件:整潔,接著具體分析了整潔代碼的特點,又分析了好代碼的否定條件:什么樣的代碼不是好的代碼。僅是本人的一些見解,希望對各位以后的編程有些許的幫助。

我認為僅僅編寫出可運行的代碼是遠遠不夠的,還要時刻注意代碼的整潔度,留下一些漂亮的代碼,希望寫的代碼都能保留并運行 102 年!

后續增加一些實際的例子來說明好的和壞的代碼;分享下如何編寫整潔代碼——自己認為有用的一些編程技巧。

今天就說到這里吧,希望可以在一定程度上幫幫你,如果你認真看完了這篇淘寶代碼怎么用「最新揭秘淘寶代碼換標題技術」文章,感覺自己收獲很多,可以收藏巢座耶學習網哈!

本文發布者:百事通,不代表巢座耶立場,轉載請注明出處:http://www.sdwldmy.com/p/10397.html

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 jubao226688#126.com 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2023年8月11日 09:00
下一篇 2023年8月11日 09:14

相關推薦

  • 生產管理模式有哪些 秒懂:詳解企業管理的三種模式

    小伙伴們哈嘍,這次其他的何麗麗就不說了,主要就是來講講生產管理模式有哪些,詳解企業管理的三種模式,還有關于管理模式有哪些這些的相關干貨文章,希望你認真看完這篇文章后,能充分理解我想表達的意思。相信你很快就能掌握!你離大牛越來越近了! 面對日益復雜的企業管理工作,企業管理者應該具備怎樣的管理理念,才能跟上時代發展的步伐,才能不斷的提高企業的管理水平呢?相信以下…

    百科 2023年5月9日
  • 新手微商怎么寄快遞便宜 推薦微商小白入門必看教程

    今天福振給大家帶來了這篇新手微商怎么寄快遞便宜,微商小白入門必看教程干貨,以及其他關于新手微商怎么寄快遞的一些相關干貨,思路很重要,希望我整理分享的這篇文章對你能有一定的幫助! 對于新手的電商賣家,快遞費真的是一個很重要的環節。可能很多電商比較發達的地區,發一個小的快遞包裹只要1-2塊錢;而你去發一個快遞包裹要8-10塊,那么成本就增加了很多,失去了電商競爭…

    2024年2月10日 ? 百科
  • 個體營業執照辦理網站「新手必看:網上申請個人營業執照流程」

    美好的1天將要從這里開始啦!今天筆者孫彥敏來說說個體營業執照辦理網站,網上申請個人營業執照流程,以及營業執照辦理網站等等相關的各種干貨,其實這個內容對于新手來說還是挺重要的,因為涉及面很大。如果你認真讀了,一定會有所收獲! 基本上,只要明白了公司營業執照如何辦理,其他類型營業執照稍加變通即可。 怎么辦營業執照? —原創— 限于篇幅(畢竟,文章寫長了大家也沒耐…

    2022年12月22日
  • 2021年春節順豐快遞什么時候放假 推薦各大快遞放假時間表

    哈嘍,小伙伴們大家好,今天博郁廢話就不多說了,直接上干貨,標題:2021年春節順豐快遞什么時候放假,各大快遞放假時間表,以及關于順豐快遞什么時候放假的一系列相關內容,認真閱讀完,把我想表達的思路完全理解,相信你很快就可以掌握! 離春節還有十多天 大家是不是心里都有個小算盤 買這買那 于是 博郁也去逛了逛淘寶 13號偏遠地區停收快遞?。?15號廣東等地區停收快…

    2024年2月16日 ? 百科
  • 淘寶網頁如何制作教程 必看:新手店鋪首頁設計模板

    很高興又和小伙伴們見面了,這次尤軼杰主要整理了一些關于淘寶網頁如何制作教程,新手店鋪首頁設計模板的事情,還有干貨淘寶網頁如何制作等等各種精品,先說明一下,老司機直接飄過吧,主要是講解給新手朋友們的哈! 那么具體該如何制作呢?下面就跟大家科普下電商網站開發教程: 首先你需要制定網站開發的方案,是打算面向哪些人群,主營業務是什么,網站需要做成什么風格?有了對網站…

    2023年5月25日 ? 百科
  • 淘寶刷單兼職靠譜嗎 必看:網絡詐騙怎么追回被騙的錢

    首先,雅夢感謝你能堅持經常過來關注我!下面我就來說說淘寶刷單兼職靠譜嗎,網絡詐騙怎么追回被騙的錢,以及關于淘寶刷單兼職靠譜嗎這些的相關干貨,其實這個內容對于新手來說還是挺重要的,因為涉及面很大。如果你認真讀了,一定會有所收獲! “時間自由,單量不限,多勞多得,工資日結,不收押金” …… 你是不是也經常在網絡廣告里收到過 這樣的“兼職刷單”消息? 看起來很輕松…

    2023年6月30日 ? 百科
日本在线免费视频,国产精品视频2020,亚洲一区二区色,亚洲精品在线播放
精品国产乱码久久久久久蜜臀| 99精品黄色片免费大全| 欧美精品一区二区在线观看| 91黄视频在线观看| 成人av在线看| 99热这里都是精品| 国产99精品国产| 成人综合日日夜夜| 高清不卡一区二区| 国产成人综合在线观看| 国产精品影音先锋| 国产激情精品久久久第一区二区| 免费在线观看一区二区三区| 亚洲国产欧美一区二区三区丁香婷 | 成人天堂资源www在线| 国产高清精品久久久久| 成人午夜免费视频| 日本精品一区二区三区高清 | www激情久久| 久久免费电影网| 日本一区二区免费在线观看视频| 国产精品人成在线观看免费| 亚洲乱码国产乱码精品精小说 | av电影天堂一区二区在线| 色综合久久六月婷婷中文字幕| 欧美日韩夫妻久久| 国产欧美久久久精品影院| 亚洲一区免费在线观看| 国产精品白丝jk黑袜喷水| 欧美在线啊v一区| 国产午夜亚洲精品不卡| 亚瑟在线精品视频| 99久久99久久久精品齐齐| 精品福利av导航| 亚洲不卡av一区二区三区| 99精品视频在线观看| 日韩精品一区在线| 亚洲精品五月天| 99热在这里有精品免费| 久久毛片高清国产| 乱一区二区av| 精品国产三级a在线观看| 亚洲成人综合视频| 欧美亚日韩国产aⅴ精品中极品| 国产精品视频看| 成人黄色大片在线观看| 久久精品综合网| 国内精品伊人久久久久av一坑| 欧美一区二区三区免费在线看 | 91蜜桃在线免费视频| 国产日韩欧美综合在线| 大白屁股一区二区视频| 国产精品免费人成网站| 99re这里只有精品6| 亚洲五码中文字幕| 91精品国产一区二区三区| 天堂午夜影视日韩欧美一区二区| 欧美私模裸体表演在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 精品欧美黑人一区二区三区| 国产成人精品影院| 一区二区三区在线免费视频| 日韩一区二区三区在线观看| 国产风韵犹存在线视精品| 一区二区三区久久| 中文字幕av一区二区三区高| 欧美亚洲国产一卡| 国产激情精品久久久第一区二区 | 亚洲人成人一区二区在线观看 | 成人午夜激情视频| 蜜桃久久久久久| 国产精品久久久久一区二区三区共| 91视频免费播放| 久久9热精品视频| 天堂一区二区在线免费观看| 综合在线观看色| 欧美一级专区免费大片| 欧美在线999| 在线日韩av片| 日本精品视频一区二区| 成人免费电影视频| 国产成人免费网站| 国产传媒一区在线| 国产精品99精品久久免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 午夜精品久久久久久| 亚洲第一福利视频在线| 洋洋成人永久网站入口| 亚洲国产综合视频在线观看| 香蕉加勒比综合久久| 五月婷婷综合网| 国产一区啦啦啦在线观看| 国产精品自在在线| 暴力调教一区二区三区| 99国产精品国产精品久久| 91在线小视频| 欧美videofree性高清杂交| 在线免费观看日韩欧美| 日韩美女视频在线| 中文字幕一区二区视频| 日韩伦理av电影| 亚洲综合在线观看视频| 日本欧美韩国一区三区| 国产成人精品在线看| 欧美日韩亚洲国产综合| 欧美国产精品一区二区| 亚洲高清视频的网址| 国产高清久久久| 欧美日韩国产另类不卡| 综合久久久久久| 国模冰冰炮一区二区| 欧美三级电影精品| 国产精品短视频| 国产一区二区三区在线观看免费| 欧美日韩你懂得| 亚洲精品成人精品456| 成人免费高清视频在线观看| 久久久蜜桃精品| 美女国产一区二区三区| 国产精品久久午夜夜伦鲁鲁| 九色porny丨国产精品| 欧美精品日韩一区| 日本欧美在线看| 精品国产区一区| 激情综合网最新| 欧美大片国产精品| 国产精品一区二区在线看| 久久综合久久鬼色| 成人一区二区在线观看| 国产精品理伦片| 在线观看区一区二| 亚洲成人动漫在线免费观看| 91麻豆精品国产91久久久 | 91福利社在线观看| 无码av中文一区二区三区桃花岛| 555夜色666亚洲国产免| 九九久久精品视频| 亚洲免费三区一区二区| 欧美一级艳片视频免费观看| 国产一区欧美一区| 亚洲国产成人tv| 国产日产欧产精品推荐色| 日本韩国一区二区| 久久99蜜桃精品| 依依成人精品视频| 国产三级精品三级在线专区| 欧美三级乱人伦电影| 成人晚上爱看视频| 久久av中文字幕片| 亚洲一区二区三区爽爽爽爽爽| 日本韩国欧美一区二区三区| 日韩理论电影院| 在线亚洲人成电影网站色www| 日本v片在线高清不卡在线观看| 国产亚洲欧美日韩在线一区| 国产在线精品国自产拍免费| 日韩欧美激情四射| 欧美日韩性生活| 精品一区二区三区蜜桃| 久久一留热品黄| 精品三级在线看| 日本韩国欧美三级| 毛片av一区二区| 激情小说欧美图片| 紧缚捆绑精品一区二区| 免费国产亚洲视频| 亚洲欧美日韩综合aⅴ视频| 在线免费观看视频一区| 成人99免费视频| 蜜臀av一区二区在线免费观看| 婷婷六月综合亚洲| 亚洲免费高清视频在线| 亚洲自拍欧美精品| 日韩av二区在线播放| 蜜桃av噜噜一区| 高清成人免费视频| 欧美视频在线观看一区二区| 欧美一区二区在线免费播放| 精品av久久707| 一区二区三区视频在线看| 日韩av不卡在线观看| 国产乱淫av一区二区三区| 蓝色福利精品导航| av电影一区二区| 欧美老肥妇做.爰bbww| 在线观看日韩电影| 在线影院国内精品| 日韩免费性生活视频播放| 中文字幕一区二区三区不卡| 丝袜亚洲另类欧美综合| 不卡的av电影| 亚洲精品一区二区三区在线观看| 亚洲欧美另类小说| 国产精品一区二区91| 日韩一二在线观看| 日韩av一区二区三区四区| 在线观看www91| 亚洲一线二线三线久久久| 色天天综合色天天久久| 国产拍欧美日韩视频二区|