亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

遵守這些原則讓你開發效率提高一倍(收藏)

2024-07-21 02:03:26
字體:
來源:轉載
供稿:網友

一、概述

在園子里面有很多關于各種技術細節的研究文章,都是比較牛逼的框架研究;但是一直沒有看到關于怎么樣提高開發效率的文章,大多提高開發效率的文章都是關于自動化等方面的輔助工具類型的,而不是開發中的一些小技巧;今天從編碼規范、編碼技巧、開發思想、設計模式等各方面的經驗來分享如何提高開發效率。

二、實際場景

在這個前后端分離盛行的開發年代,分工比較明確,開發者分前端開發者和后端開發者,然而感到欣慰的是.net 開發者大多是擔任著全棧開發的職責,有經驗的開發者都是從前端走過來的,說白了前端業務代碼對后端開發者來說那都不是事。
前后端分離前:幾年前前后端還未分離的時候,各種前端框架還未流行的時候,開發者的效率算是比較低下,后端干前端的活,甚至前端和后端夾雜工作,導致了工作開發容易亂,需要相互依賴,不能完全并行工作,這導致了開發效率底的一個極大的原因,同時開發出來的東西體驗也是很差。
前后端分離:職責分明,后端專注后端的開發,前端專注前端的開發;相互依賴關系很弱,后端可以先定義開發接口,前端頁面及mock 接口對接,最后聯調測試時間前后端打通過;前后端完全可以并行開發,開發周期縮短一倍時間;不過這也就會導致了一個致命的問題,大多開發者只管自己的那一部分,不會以全局考慮,導致的一個問題就是聯調測試時間代價太大,遇到問題相互甩鍋。

前后端都存在的問題,會再聯調測試時間全部暴漏出來,這也是為什么聯調測試時間會花費那么長時間,甚至晚上加班加點再處理問題的原因,總結如下:

  • 開發過程中不夠謹慎,全是空異常問題
  • 代碼不規范,代碼邏輯嵌套層次太深,牽一發而動全身,以至于修改這里,爆露出那邊的問題出來,不會適當的解耦
  • 后端接口返回的字段含義不明確,不清晰,甚至完全跟字段含義違背,比如數據庫中有一個int 類型的Type字段,而前端需要類型的中文名稱,后端開發者偷懶直接用Type 字段返回字段中文名稱,后面前端需要int 類型的Type 有不知道加什么字段為好,導致修修改改,影響效率,下面我會具體分享細節。
  • 眼觀不足,不會考慮后續的需求變更擴展
  • 沒有設計模式思想,導致維護成本變大
  • 下面從幾個方面點來具體分析

三、空異常

1.1 不可信原則

作為開發者,你都可以把自己作為方法調用者的第三方,不需要去關注方法的實現,只需要關注調用方法我應該得到什么結果;然而作為調用者第三方,你都需要認為實現者的方法都是不可信狀態,只需要秉承該原則,基本上你就跟空異常沒有緣分了.

1.2 ?. (null條件運算符)

先來看一下以下代碼:

 [HttpGet]  public async Task<DataResponse<bool>> GetTest()  {    var list = GetList();//獲取List 列表    if (list?.Count <= 0)    {      return DataResponse<bool>.AsError("沒有獲取到數據");    }    //TODO 更新操作    return DataResponse<bool>.AsSuccess(true);  }

上面代碼很多人可能會這么寫,實際上是存在問題的list?.Count <=0 實際上在list 為空的時候就成了null<=0 判斷了,則也是false,不符合預期結果,正確的代碼如下:

 [HttpGet]  public async Task<DataResponse<bool>> GetTest()  {    var list = GetList();//獲取List 列表    if ((list?.Count??0) <= 0)    {      return DataResponse<bool>.AsError("沒有獲取到數據");    }    //TODO 更新操作    return DataResponse<bool>.AsSuccess(true);  }

這里就引用了?? 運算符(空合并運算符)

1.3 ?? (空合并運算符)

MSDN上面的解釋:?? 運算符稱為 null 合并運算符,用于定義可以為 null 值的類型和引用類型的默認值。如果左操作數不為 null,則此返回左操作數;否則當左操作數為 null,返回右操作數。

1.4 如何遠離空異常?

秉承原則:不可信原則,什么是不可信原則呢?你調用方法都任務改方法是不可信的,包括自己寫的方法;這在敏捷快速開發中更明顯,特別是調用團隊中別人開發的微服務api ,你不需要關注方法的實現,只需要關注方法的結果即可,但是也不能太過于相信它;所有的返回結果你都需要判斷是否是null 的結果數據,多結合?. 和?? 運算符進行合理的邏輯處理,可以讓你的項目從此遠離空異常。

二、If else 解套

先來看一看比較有趣的網絡上的圖片

2.1 取反原則

對于上面的if else 嵌套業務大家是不是經常遇到,看到這種代碼會非常的頭疼,難于維護,影響開發效率,同時也容易出現bug。
有經驗的開發者必定會對上面這段代碼進行優化,我的經驗是取反原則。
什么是取反原則呢?把不符合的條件先 return 下去,到最后留下符合條件的邏輯,這就是取反原則,一眼看下來就只有一層嵌套,不會存在多層嵌套。
我們來看下我遇到的實際場景代碼,源代碼大體如下:

if (condition){  if (condition1)  {    if(condition2)    {      if (condition3)      {        if (condition4)        {          // do something        }        else        {          // do something        }      }      else      {        // do something      }    }    else    {      // do something    }  }  else  {    // do something  }}else{  // do something}

取反原則優化后的代碼如下:

if (!condition) {   // do someting   return; } if (!condition1) {   // do someting   return; } if (!condition2) {   // do someting   return; } if(!condition3) {   // do someting   return; } if(!condition4) {   // do someting   return; } // do someting

三、必要的設計模式

開發過程中不要一個鏈路寫到底,需要把某塊業務先想好,定位明確,該業務是應該屬于哪一塊,哪一類業務,后續可能會出現哪些方面的業務變動,適當的引入設計模式,那么多的設計模式,總有一個適合你當時開發的場景;
設計模式的選取需要對該模塊的作用及定義清晰,多思考,多歸類,自然而然心中就有了合適的設計模式的考量。

四、必要的單元測試

做到每個方法單元測試,最好是全路徑覆蓋到每一條分支的單元測試,先從小的方法單元測試,底層的方法單元測試通過后,再通過postman或者其他工具來進行對外API接口層面的測試,做到全路徑覆蓋的測試,往往開發人員有一個思維就是測試正常的業務流程,異常流程往往一概不考慮測試;然而出問題的都是那些異常的流程,單元測試需要遵守的原則如下:

  • 盡可能的全路徑覆蓋測試
  • 拋棄自己寫的代碼思維,當一個小白進行單元測試
  • 關注異常路徑的單元測試
  • 摒棄依賴思想,不要依賴聯調測試時間來進行測試,往往你開發只管開發,不管正確率,到后續測試聯調時間那就的瘋狂加班加點去趕進度了,還不能保證最佳的產品質量。

到此這篇關于遵守這些原則讓你開發效率提高一倍的文章就介紹到這了,更多相關提高開發效率內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲在线免费视频| 久久五月情影视| 国产精品日韩av| 日韩美女激情视频| 91九色在线视频| 亚洲精品一区中文字幕乱码| 欧美激情国内偷拍| 日韩男女性生活视频| 久久久精品久久久久| 中文字幕亚洲综合| 91日本在线观看| 欧美日韩福利视频| 久久久久久美女| 欧美日韩中文字幕在线视频| 欧美日韩免费一区| 黑人巨大精品欧美一区免费视频| 亚洲理论在线a中文字幕| 久久av资源网站| 亚洲成年人在线播放| 国产成人精品一区二区在线| 亚洲美女喷白浆| 伊人久久久久久久久久久| 亚洲国产精品99久久| 日韩精品免费在线视频| 欧美一乱一性一交一视频| 中文字幕国产亚洲2019| 97免费视频在线| 亚洲国内精品视频| 国产精品爽爽爽爽爽爽在线观看| 亚洲自拍中文字幕| 亚洲欧美成人在线| 亚洲精品一区二区在线| 色悠悠久久88| 国产精品久久久久影院日本| 亚洲天堂男人的天堂| 国产成人综合一区二区三区| 欧美自拍视频在线| 上原亚衣av一区二区三区| 欧美影院久久久| 欧美xxxwww| 欧美成人h版在线观看| 亚洲黄页网在线观看| 中文字幕日本精品| 国产精品海角社区在线观看| 久久久久久国产精品三级玉女聊斋| 国产精品1区2区在线观看| 欧美极品第一页| 欧美日韩国产精品一区| 亚洲精品日韩在线| 茄子视频成人在线| 国产www精品| 综合激情国产一区| 夜夜嗨av色一区二区不卡| 日韩av成人在线观看| 日产日韩在线亚洲欧美| 亚洲成人久久一区| 亚洲欧美一区二区激情| 日韩电影第一页| 欧美中文字幕视频| 国产成人综合av| 黑人巨大精品欧美一区二区免费| 国产精品免费在线免费| 欧美黄色三级网站| 国产精品你懂得| 久久精品99国产精品酒店日本| 国产福利视频一区二区| 91精品国产91久久久久久| 亚洲综合成人婷婷小说| 国产欧美韩国高清| 久久久久久中文| 成人做爰www免费看视频网站| 国产精品色视频| 亚洲成人中文字幕| 伊人久久大香线蕉av一区二区| 国产精品久久色| 亚洲国产中文字幕久久网| 国内精品免费午夜毛片| 日韩精品极品视频免费观看| 国产精品视频免费在线观看| 久热精品视频在线观看一区| 欧美日韩另类视频| 日韩免费在线免费观看| 亚洲精品电影网站| 美女视频黄免费的亚洲男人天堂| 国产日产欧美精品| 亚洲国产高清高潮精品美女| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧美中文字幕在线一区| www.国产精品一二区| 亚洲性猛交xxxxwww| 成人免费淫片aa视频免费| 国产精品视频免费观看www| 亚洲自拍偷拍一区| 亚洲综合精品伊人久久| 九九热这里只有在线精品视| 亚洲国产精彩中文乱码av在线播放| 国产精品欧美日韩| 国产一区二区丝袜高跟鞋图片| 欧美日韩国产一区二区三区| 国产综合久久久久| 久久久伊人欧美| 久久99国产精品自在自在app| 亚洲女同精品视频| 性日韩欧美在线视频| 九九热精品视频在线播放| 精品视频在线播放色网色视频| 九九精品在线观看| 欧美在线观看一区二区三区| 亚洲精品中文字幕av| 日韩亚洲精品视频| 97国产一区二区精品久久呦| 91国内免费在线视频| 国产精品视频午夜| 国产一区二区欧美日韩| 欧美精品一本久久男人的天堂| 国产日韩精品在线播放| 亚洲免费一在线| 日韩电影在线观看永久视频免费网站| 精品视频一区在线视频| 欧美人与物videos| 最近更新的2019中文字幕| 91高清在线免费观看| 亚洲欧美一区二区三区四区| 欧美性69xxxx肥| 一区二区中文字幕| 成人福利视频网| 亚洲精品国产美女| 综合136福利视频在线| 欧美日本啪啪无遮挡网站| 国产免费一区二区三区香蕉精| 一区二区三欧美| 九九热这里只有精品6| 精品国产乱码久久久久久天美| 日韩欧美aⅴ综合网站发布| 亲爱的老师9免费观看全集电视剧| 国产成人精品视频在线| 亚洲美女性视频| 国产精品久久久久99| 日韩在线视频网| 久久久久久中文| 久久成人免费视频| 久久视频在线观看免费| 中文字幕在线看视频国产欧美在线看完整| 国产热re99久久6国产精品| 欧洲美女7788成人免费视频| 欧美裸体xxxx极品少妇软件| 日韩久久精品电影| www.精品av.com| 亚洲欧洲日韩国产| 91超碰caoporn97人人| 欧美激情精品久久久久久蜜臀| 久久久91精品国产一区不卡| 欧美激情一级欧美精品| 亚洲一区国产精品| 少妇久久久久久| 91精品久久久久久久久久另类| 日韩有码在线视频| 中文字幕久热精品在线视频| 久久激情五月丁香伊人| 日韩亚洲国产中文字幕| 成人av.网址在线网站| 日韩免费观看在线观看| 亚洲风情亚aⅴ在线发布| 亚洲在线观看视频网站|