freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

20xx年代碼規(guī)范優(yōu)秀(十篇)(編輯修改稿)

2025-08-06 19:04 本頁面
 

【文章內(nèi)容簡介】 進方式(tab或二空格,四空格均可),基于ide自動轉(zhuǎn)換。一段代碼也是一段文章,需要合理的分段。不同組的變量之間,不同業(yè)務邏輯的代碼行之間,插入一個空行,起邏輯分段的作用。而聯(lián)系緊密的變量之間、語句之間,則盡量不要插入空行。對于一些特殊場景(如使用大量的字符串拼接成一段文字,或者想把大量的枚舉值排成一列),為了避免ide自動格式化,常常會把注釋符號//加在每一行的末尾,這會導致很多無意義的視覺干擾??梢允褂聾formatter:off和@formatter:on來包裝這段不需要格式化的代碼,讓ide就會跳過這段的格式化。[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(imgynjfoih91624848159255)(c:\users\86134\appdata\roaming\typora\typorauserimages\)]代碼將被大量后續(xù)維護,注釋如果對閱讀者有幫助,不要吝嗇在注釋上花費的時間。除了特別簡單特別清晰的類(見規(guī)則2,3),每個類都盡量編寫注釋,說明類的目的和使用方法。對外提供的公有方法,同樣需要清晰的描述,期待的輸入,對應的輸出,錯誤的處理和返回碼,盡量把可能的異常都一一列明。在編寫注釋前,考慮是否可以通過更好的命名,更清晰的代碼結(jié)構(gòu),更好的函數(shù)和變量的抽取,讓代碼不言自明,此時不需要額外的注釋?!禼lean code》建議,如果沒有想說的,不要留著ide自動生成的,空的@param,@return,@throws 標記,讓代碼更簡潔。反例:方法名為put,加上兩個有意義的變量名elephant和fridge,已經(jīng)說明了這是在干什么,不需要任何額外的注釋。代碼后續(xù)還會有多人多次維護,讓我們相信源碼版本控制系統(tǒng)能做得更好。正確的javadoc格式可以用在很多地方,比如在ide中,查看調(diào)用方法時,不進入方法即可懸浮提示方法、參數(shù)、返回值的意義,提高閱讀效率。如果為了html版javadoc的顯示,大量使用p\pre\這樣的html標簽,以及amp。ltamp。quot這樣的html轉(zhuǎn)義字符,對嚴重影響直接閱讀代碼時的直觀性,而直接閱讀代碼的幾率其實比看html版javadoc大得多。有時候java doc的格式化也要求p之類的標簽來換行,可以配置讓ide不進行java doc的自動格式化。清晰描述待修改的事項,保證過幾個月后仍然能夠清楚要做什么修改。如果近期會處理的事項,寫明處理人。通過標記掃描,經(jīng)常清理此類標記,線上故障經(jīng)常來源于這些標記但未處理的代碼。如果后續(xù)會恢復此段代碼,在目標代碼上方用///注釋詳細說明,而不是簡單的注釋掉。如果無用,則直接刪除(版本管理工具保存了歷史代碼)。方法盡量不要超過100行,或其他團隊共同商定的行數(shù)。另外,方法長度超過8000個字節(jié)碼時,將不會被jit編譯成二進制碼。反例:一個方法里,前20行代碼在進行很復雜的基本價格計算,然后調(diào)用一個折扣計算函數(shù),再調(diào)用一個贈品計算函數(shù)。此時可將前20行也封裝成一個價格計算函數(shù),使整個方法在同一抽象層級上。超過5行以上重復的代碼,都可以考慮抽取公用的方法。1)如果多個參數(shù)同屬于一個對象,直接傳遞對象。例外: 你不希望依賴整個對象,傳播了類之間的依賴性。2)將多個參數(shù)合并為一個新創(chuàng)建的邏輯對象。例外: 多個參數(shù)之間毫無邏輯關聯(lián)。3)將函數(shù)拆分成多個函數(shù),讓每個函數(shù)所需的參數(shù)減少。1) 調(diào)用頻次低的方法。2) 執(zhí)行時間開銷很大的方法。此情形中,參數(shù)校驗時間幾乎可以忽略不計,但如果因為參數(shù)錯誤導致中間執(zhí)行回退,或者錯誤,代價更大。3) 需要極高穩(wěn)定性和可用性的方法。4) 對外提供的開放接口,不管是rpc//公共類庫的api接口。如果使用apache validate 或 guava precondition進行校驗,并附加錯誤提示信息時,注意不要每次校驗都做一次字符串拼接。1) 極有可能被循環(huán)調(diào)用的方法。2) 底層調(diào)用頻度比較高的方法。畢竟是像純凈水過濾的最后一道,參數(shù)錯誤不太可能到底層才會暴露問題。比如,一般dao層與service層都在同一個應用中,所以dao層的參數(shù)校驗,可以省略。3) 被聲明成private,或其他只會被自己代碼所調(diào)用的方法,如果能夠確定在調(diào)用方已經(jīng)做過檢查,或者肯定不會有問題則可省略。即使忽略檢查,也盡量在方法說明里注明參數(shù)的要求,比如vjkit中的@notnull,@nullable標識。assert斷言僅用于測試環(huán)境調(diào)試,無需在生產(chǎn)環(huán)境時進行的校驗。因為它需要增加ea啟動參數(shù)才會被執(zhí)行。而且校驗失敗會拋出一個assertionerror(屬于error,需要捕獲throwable)因此在生產(chǎn)環(huán)境進行的校驗,需要使用apache mons lang的validate或guava的precondition。不強制返回空集合,或者空對象。但需要添加注釋充分說明什么情況下會返回null值。本手冊明確防止npe是調(diào)用者的責任。即使被調(diào)用方法返回空集合或者空對象,對調(diào)用者來說,也并非高枕無憂,必須考慮到遠程調(diào)用失敗、序列化失敗、運行時異常等場景返回null的情況。jdk8的optional類的使用這里不展開。如果覺得被外部修改的可能性不大,或沒有影響時,不強制在返回前包裹成immutable集合,或進行數(shù)組克隆。因為方法重載的參數(shù)類型是根據(jù)編譯時表面類型匹配的,不根據(jù)運行時的實際類型匹配。只能新增新接口,并對已過時接口加@deprecated注解,并清晰地說明新接口是什么。接口提供方既然明確是過時接口并提供新接口,那么作為調(diào)用方來說,有義務去考證過時方法的新實現(xiàn)是什么。比如 中的方法decode(string encodestr) 這個方法已經(jīng)過時,應該使用雙參數(shù)decode(string source, string encode)。.*,sun.*包下的類,或者底層類庫中名稱為internal的包下的類,都是不對外暴露的,可隨時被改變的不穩(wěn)定類。比如如果a類只依賴b類的某個屬性,在構(gòu)造函數(shù)和方法參數(shù)中,只傳入該屬性。讓閱讀者知道,a類只依賴了b類的這個屬性,而不依賴其他屬性,也不會調(diào)用b類的任何方法。類盡量不要超過300行,或其他團隊共同商定的行數(shù)。對過大的類進行分拆時,可考慮其內(nèi)聚性,即類的屬性與類的方法的關聯(lián)程度,如果有些屬性沒有被大部分的方法使用,其內(nèi)聚性是低的。曾經(jīng)試過合并代碼時,因為沒加括號,單條語句合并成兩條語句后,仍然認為只有單條語句,另一條語句在循環(huán)外執(zhí)行。其他增加調(diào)試語句等情況也經(jīng)常引起同樣錯誤??稍趇de的save action中配置自動添加。例外:一般由ide生成的equals()函數(shù)所有if/else/for/while/try的嵌套,當層次過多時,將引起巨大的閱讀障礙,因此一般推薦嵌套層次不超過4。 通過抽取方法,或哨兵語句(見rule 2)來減少嵌套。不使用取反的邏輯,有利于快速理解。且大部分情況,取反邏輯存在對應的正向邏輯寫法。1)在一個switch塊內(nèi),每個case要么通過break/return等來終止,要么注釋說明程序?qū)⒗^續(xù)執(zhí)行到哪一個case為止;2)在一個switch塊內(nèi),都必須包含一個default語句并且放在最后,即使它什么代碼也沒有。1)不必要的耗時較大的對象構(gòu)造;2)不必要的trycatch(除非出錯時需要循
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1