阿裡巴巴Java網頁版開發手冊-註釋規約

来源:https://www.cnblogs.com/chenxuy/archive/2018/04/24/8926209.html
-Advertisement-
Play Games

阿裡發佈了<<阿裡巴巴Java開發手冊終極版>>,也許看過後也不能完全吸收,我在這裡分類整理,方便大家在手機端查看,一起學習阿裡對Java工程師編程的規約。 註釋規約 1. 【強制】類、類屬性、類方法的註釋必須使用 Javadoc 規範,使用/**內容*/格式,不得使用// xxx 方式。 說明:在 ...


阿裡發佈了<<阿裡巴巴Java開發手冊終極版>>,也許看過後也不能完全吸收,我在這裡分類整理,方便大家在手機端查看,一起學習阿裡對Java工程師編程的規約。

註釋規約


 

1. 【強制】類、類屬性、類方法的註釋必須使用 Javadoc 規範,使用/**內容*/格式,不得使用//  xxx 方式。

說明:在 IDE 編輯視窗中, Javadoc 方式會提示相關註釋,生成 Javadoc 可以正確輸出相應註釋 ; 在 IDE 中,工程調用方法時,不進入方法即可懸浮提示方法、參數、返回值的意義,提高閱讀效率。

 

2. 【強制】所有的抽象方法 ( 包括介面中的方法 ) 必須要用 Javadoc 註釋、除了返回值、參數、異常說明外,還必須指出該方法做什麼事情,實現什麼功能。

說明:對子類的實現要求,或者調用註意事項,請一併說明。

 

3. 【強制】所有的類都必須添加創建者和創建日期。

 

4. 【強制】方法內部單行註釋,在被註釋語句上方另起一行,使用//註釋。方法內部多行註釋使用/* */註釋,註意與代碼對齊。

 

5. 【強制】所有的枚舉類型欄位必須要有註釋,說明每個數據項的用途。

 

6. 【推薦】與其“半吊子”英文來註釋,不如用中文註釋把問題說清楚。專有名詞與關鍵字保持英文原文即可。

反例:“ TCP 連接超時”解釋成“傳輸控制協議連接超時”,理解反而費腦筋。

 

7. 【推薦】代碼修改的同時,註釋也要進行相應的修改,尤其是參數、返回值、異常、核心邏輯等的修改。

說明:代碼與註釋更新不同步,就像路網與導航軟體更新不同步一樣,如果導航軟體嚴重滯後,就失去了導航的意義。

 

8. 【參考】謹慎註釋掉代碼。在上方詳細說明,而不是簡單的註釋掉。如果無用,則刪除。

說明:代碼被註釋掉有兩種可能性:1 ) 後續會恢復此段代碼邏輯。2 ) 永久不用。前者如果沒有備註信息,難以知曉註釋動機。後者建議直接刪掉 ( 代碼倉庫保存了歷史代碼 ) 。

 

9. 【參考】對於註釋的要求:第一、能夠準確反應設計思想和代碼邏輯 ; 第二、能夠描述業務含義,使別的程式員能夠迅速瞭解到代碼背後的信息。完全沒有註釋的大段代碼對於閱讀者形同天書,註釋是給自己看的,即使隔很長時間,也能清晰理解當時的思路 ; 註釋也是給繼任者看的,使其能夠快速接替自己的工作。

 

10. 【參考】好的命名、代碼結構是自解釋的,註釋力求精簡準確、表達到位。避免出現註釋的一個極端:過多過濫的註釋,代碼的邏輯一旦修改,修改註釋是相當大的負擔。

反例:

// put elephant into fridge

put(elephant, fridge);

方法名 put ,加上兩個有意義的變數名 elephant 和 fridge ,已經說明瞭這是在乾什麼,語義清晰的代碼不需要額外的註釋。

 

11. 【參考】特殊註釋標記,請註明標記人與標記時間。註意及時處理這些標記,通過標記掃描,經常清理此類標記。線上故障有時候就是來源於這些標記處的代碼。

1 ) 待辦事宜 (TODO) : ( 標記人,標記時間, [ 預計處理時間 ])

表示需要實現,但目前還未實現的功能。這實際上是一個 Javadoc 的標簽,目前的 Javadoc還沒有實現,但已經被廣泛使用。只能應用於類,介面和方法 ( 因為它是一個 Javadoc 標簽 ) 。

2 ) 錯誤,不能工作 (FIXME) : ( 標記人,標記時間, [ 預計處理時間 ])

在註釋中用 FIXME 標記某代碼是錯誤的,而且不能工作,需要及時糾正的情況。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0. 瀏覽器渲染原理: 1. 瀏覽器宿主環境層面: 2. 網路層面: 3. 代碼層面: ...
  • 原型鏈是js面向對象的基礎,非常重要。 一,創建對象的幾種方法: 1,字面量 var o1 = { name:'o1' }; 2,構造函數 var M = function(name){ this.name = name; }; var o2 = new M('o2'); var a = {} 其實 ...
  • 1.模板名片發送後不顯示內容?(如第一張圖) 經過查看官方文檔,是data數據格式問題,小程式端傳給後端的data數據被服務端解析出了一點問題(data裡面的字元串加入了"\")。現在後端將數據從新做了清洗。已解決。解決後的展示如第二張圖。 2.上傳圖片一直失敗。 解決答案相關鏈接:https:// ...
  • 概述 理解柯里化函數,需要有閉包的基礎,只有徹底理解閉包後才能理解柯里化,如果尚未理解閉包,建議閱讀上文js引擎的執行過程(一);如果理解了閉包再研究柯里化函數,則會大大的加深你對閉包理解,並且更清楚的認識到閉包的應用場景,那麼如果在面試時候問到閉包,你就可以侃侃而談了;並且理解柯里化函數會在很大的 ...
  • 當代碼在執行環境中執行時,會創建一個作用域鏈。作用域鏈本質是一個指向變數對象的指針列表。 如果執行環境是函數,則將其活動對象(最開始時只包含一個變數->argument對象)作為變數對象。ps:argument對象在全局環境中是不存在的. (基於2條件下)作用域鏈中的下一個變數對象來自外部環境,而再 ...
  • 概述 js是一種非常靈活的語言,理解js引擎的執行過程對我們學習javascript非常重要,但是網上講解js引擎的文章也大多是淺嘗輒止或者只局部分析,例如只分析事件迴圈(Event Loop)或者變數提升等等,並沒有全面深入的分析其中過程。所以我一直想把js執行的詳細過程整理成一個較為詳細的知識體 ...
  • Document ...
  • 百度一下WebRTC,我想也是一堆。本以為用SkyRTC-demo 就可以一馬平川的實現聊天,結果折騰了半天,文本信息都發不出去,更別說視頻了。網上的SimpWebRTCDemo,WebRTC-Experiment等對於第一次部署的人來說,都是相當的蛋疼。於是親自踩坑填坑,完美實現! ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...