日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

代碼編程教學(xué)入門 代碼怎么編寫

一、什么是好代碼
拋開性能、并發(fā)、一致性等技術(shù)因素,好的業(yè)務(wù)代碼應(yīng)當(dāng)如一篇顯淺易懂的業(yè)務(wù)敘實文章,滿足以下幾個基本條件:

  • 詞要達意:最基礎(chǔ)的變量、函數(shù)、類的命名,是否名達其意 。
  • 結(jié)構(gòu)清晰:類的關(guān)系結(jié)構(gòu),函數(shù)的調(diào)用結(jié)構(gòu),是否如文章的章節(jié)、段落劃分層次分明和邏輯清晰 。
  • 緊扣主題:包、類、函數(shù)是否內(nèi)聚,是否破壞了單一和開閉原則 。
因此,好代碼如同好文章,它應(yīng)該是飽含業(yè)務(wù)語義(詞要達意)、具有自明性和可讀性(結(jié)構(gòu)清晰),能夠顯性化表達業(yè)務(wù)意圖(緊扣主題),讓人賞心悅目 。
二、從最基本做起
2.1 命名
好的代碼,從好的命名開始,做到名副其實 。
變量命名
變量名是名詞,要正確和清晰地描述業(yè)務(wù)語義,如果一個變量需要通過注釋補充說明,那可能就是沒取好變量名 。
變量命名的關(guān)鍵點:
1、詞要達意:避免無業(yè)務(wù)語義的命名,如:list、val、a…;
2、語境范圍:避免小范圍詞套大范圍數(shù)據(jù),反之亦然,不使用過于寬泛的名詞 。
3、名詞復(fù)數(shù):統(tǒng)一風(fēng)格,加s或List尾綴,變量名建議使用s尾綴,函數(shù)名建議使用List尾綴 。
4、后置限定詞:限定詞是對前面變量名的修飾,可以描述名詞的作用范圍屬性,例如:
  • 請求入?yún)ⅲ簒xxQuery/xxxRequest
  • 返回結(jié)果:xxxResponse/xxxResult
  • 傳參數(shù)據(jù):xxxDTO/xxxVO/xxxInfo
  • 運算結(jié)果:xxxTotal(總和)/xxxMax(最大值)/xxxAverage(平均值)
Bad case:
代碼編程教學(xué)入門 代碼怎么編寫


Good case:
代碼編程教學(xué)入門 代碼怎么編寫


函數(shù)命名
函數(shù)命名要體現(xiàn)做什么,而不是怎么做,要清楚表達出操作意圖和業(yè)務(wù)語義 。
函數(shù)命名的關(guān)鍵點:
  1. 動名詞搭配,動詞表達操作意圖,名詞表達業(yè)務(wù)語義 。
  2. 正反操作使用對仗詞,例如:
  • add/remove
  • open/close
  • begin/end
  • insert/delete
  • first/last
  • min/max
Bad Case:
代碼編程教學(xué)入門 代碼怎么編寫


Good Case:
代碼編程教學(xué)入門 代碼怎么編寫


類命名
類是面向?qū)ο笾凶钪匾母拍?,是一組關(guān)聯(lián)數(shù)據(jù)的相關(guān)操作的封裝,通??梢园杨惙譃閮煞N:
  • 實體類:承載業(yè)務(wù)的核心數(shù)據(jù)和業(yè)務(wù)邏輯,命名要充分體現(xiàn)業(yè)務(wù)語義,比如Order/Buyer/Item 。
  • 輔助類:協(xié)調(diào)實體類完成業(yè)務(wù)邏輯,命名通常加后綴體現(xiàn)出其功能性,比如OrderQueryService/OrderRepository 。
函數(shù)命名的關(guān)鍵點:
  1. 輔助類盡量避免用 Helper/Util 之類的后綴,因為其含義過于籠統(tǒng),容易破壞單一職責(zé)原則 。
  2. 針對某個實體的輔助操作過多,或單個操作很復(fù)雜,可通過 “實體 + 操作類型 + 功能后綴”來命名,同時符合職責(zé)單一和接口隔離的原則,比如OrderService:
  • OrderCreateService:訂單創(chuàng)建服務(wù) 。
  • OrderUpdateService:訂單更新服務(wù) 。
  • OrderQueryService:訂單查詢服務(wù) 。
包命名
包(package)是一組強關(guān)聯(lián)(內(nèi)聚)的類的集合,起分類收納和命名空間的作用 。