阿里Java编程规约(注释)提炼

【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用

// xxx 方式。

说明: IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE

中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。

 

【强制】所有的抽象方法包括接口中的方法必须要用 Javadoc 注释、除了返回值、参数、

异常说明外,还必须指出该方法做什么事情,实现什么功能。

说明:对子类的实现要求,或者调用注意事项,请一并说明。

 

【强制】所有的类都必须添加创建者和创建日期。

 

【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释

使用/* */注释,注意与代码对齐。

 

【强制】所有的枚举类型字段必须要有注释,说明每个数据项的用途。

 

【推荐】与其半吊子英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保

持英文原文即可。

反例:“TCP 连接超时解释成传输控制协议连接超时,理解反而费脑筋。

 

【推荐】代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻

辑等的修改。

说明:代码与注释更新不同步,就像路网与导航软件更新不同步一样,如果导航软件严重滞后,就失去了

导航的意义。

 

【参考】谨慎注释掉代码。在上方详细说明,而不是简单地注释掉。如果无用,则删除。

说明:代码被注释掉有两种可能性:1)后续会恢复此段代码逻辑。2)永久不用。前者如果没有备注信

息,难以知晓注释动机。后者建议直接删掉(代码仓库已然保存了历史代码)。

 

【参考】对于注释的要求:第一、能够准确反映设计思想和代码逻辑第二、能够描述业务

含义,使别的程序员能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者

形同天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路注释也是给继

任者看的,使其能够快速接替自己的工作。

 

【参考】好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的

一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

反例:

// put elephant into fridge

put(elephant, fridge);

方法名 put,加上两个有意义的变量名 elephant fridge,已经说明了这是在干什么,语义清晰的代

码不需要额外的注释。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面试题-交换两个数字的三种方法

Python实现两个数字交换解法1解法2解法3a6 b100 解法1 使用其他变量,最通用的方法 ca ab bc 解法2 不使用其他变量,利算法节省内存空间 aab ba-b aa-b 解法3 python 专有 a,b(b,a) #等号右边是一个元组 或者可以写为: a,bb,a print(a,b)

面试中海量数据处理总结

教你如何迅速秒杀掉:99%的海量数据处理面试题 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获&…

redis——旧版复制

Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致…

Linux(3)-网-ifconfig,ping,ssh

终端命令网-ping,ssh1. ifconfig -a2. ping3. ssh3.1安装3.2 连接3.3 配置登入别名防火墙端口号,todo1. ifconfig -a 查看IP地址, 还可以用于配置网口。 ifconfig -a 2. ping ping命令: 检测到IP地址的连接是否正常。命令开始后由本机发送数据包a&…

redis——相关问题汇总

什么是redis? Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理…

一文搞定面试中的二叉树问题

一文搞定面试中的二叉树问题 版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点…

无数踩坑系列(1)--Brightness Controller

Brightness Controller1.尝试找回系统自带亮度调节条1.1 配置grub文件,无效1.2 使用命令调节屏幕亮度,无效2.安装应用程序Brightness Controller2.1许多博文都写出了如下方案,无效:2.2 github 手动安装https://github.com/LordAmi…

springboot2——MyBatis入门

原生缺陷: 数据库dao层操作缺陷: ①jdbc的增删改查代码的冗余过大,查询的时候需要遍历。 ②Sql语句和数据库相关参数和代码的耦合性过高。 解决:使用Mybatis 业务层缺陷: ①业务层和数据…

面试--Linux命令总结

显示目录和文件的命令 Ls:用于查看所有文件夹的命令。 Dir:用于显示指定文件夹和目录的命令 Tree: 以树状图列出目录内容 Du:显示目录或文件大小 修改目录,文件权限和属主及数组命令 Chmod:用于改变指定…

Linux(4)-资源-du,top,free,gnome

Linux终端命令1.磁盘资源1.1 df -hl1.2 du1.3 统计文件数量2.缓存资源2.1 top2.2 free -m3.Gnome3.1系统监视器-gnome-system-monitor3.2 截屏--screenshot查看文件系统资源的一些命令1.磁盘资源 1.1 df -hl 查看分区磁盘使情况 硬盘空间不够时,跑程序会报错&…

redis——Java整合

redis官网 微软写的windows下的redis 我们下载第一个 额案后基本一路默认就行了 安装后&#xff0c;服务自动启动&#xff0c;以后也不用自动启动。 出现这个表示我们连接上了。 redis命令参考链接 Spring整合Redis 引入依赖 - spring-boot-starter-data-redis <depend…

无限踩坑系列(4)-远程登入服务器

远程操作服务器1.远程上传/下载命令&#xff08;文件夹/文件&#xff09;2.文本编辑vim3.一直保持服务器登入状态4.虚拟终端screenssh远程登入服务器&#xff0c;没有图形界面&#xff0c;只能在终端中操作文件与文件夹。本文总结了远程登入服务器过程中用到的一些命令。1.远程…

程序员不成熟的若干个特征

做我们这个项目也是一样&#xff0c;很多人来做这个生意&#xff0c;开始没有什么成绩&#xff0c;就想着要放弃&#xff0c;有的人一个月放弃&#xff0c;有的人三个月放弃&#xff0c;有的人半年放弃&#xff0c;有的人一年放 弃&#xff0c;我不明白人们为什么轻易放弃这个趋…

一文理解KMP算法

一文理解KMP算法 作者&#xff1a;July 时间&#xff1a;最初写于2011年12月&#xff0c;2014年7月21日晚10点 全部删除重写成此文&#xff0c;随后的半个多月不断反复改进。后收录于新书《编程之法&#xff1a;面试和算法心得》第4.4节中。 1. 引言 本KMP原文最初写于2年多前的…

小猫的java基础知识点汇总(下)

1、线程和进程有什么区别&#xff1f; 进程是操作系统资源分配的基本单位&#xff0c;而线程是任务调度和执行的基本单位 线程是进程的子集&#xff0c;一个进程可以有很多线程&#xff0c;每条线程并行执行不同的任务。 不同的进程使用不同的内存空间&#xff0c;而所有的线…

无数踩坑系列(3)-配置pytorch

配置pytorch环境1. 命令一键式安装2.源码安装问题1问题2问题3问题43.克隆一个已有环境&#xff0c;带pytorch4.GPU驱动版本不对在实际开发中&#xff0c;想要在自己的机子上跑别人的代码&#xff1b;或者&#xff0c;在新的机子上跑自己的代码&#xff0c;总是面临着环境配置的…

小猫的java基础知识点汇总(上)

1、一个".java"源文件中是否可以包括多个类&#xff08;不是内部类&#xff09;&#xff1f;有什么限制&#xff1f; 可以有多个类&#xff0c;但只能有一个public的类&#xff0c;并且public的类名必须与文件名相一致。 2、short s1 1; s1 s11; 有没有错&#xff…

机器学习算法分类总结

机器学习方法分类总结 这篇文章只是一个类似于知识概括的文章&#xff0c;主要作用是帮忙梳理&#xff1a; 1) 分类 贝叶斯模型&#xff08;Bayesian Mode&#xff09; - 朴素贝叶斯算法&#xff08;Naive Bayesian Mode&#xff09; - 平均单依赖估计&#xff08;AveragedO…

无限踩坑系列(5)-MySQLdb

MySQLdb在Python2.x 时使用的是MySQLdbpython3中这个库已经不再使用了&#xff0c;所有的功能都由pymysql或mysqlclient替代。所以 想在python3中配MySQLdb真是一个深的不能再深的坑了。下面记录了愚蠢的填坑过程&#xff0c;仅做有类似错误的参考。参考文档&#xff1a;https:…

后端 分页组件实例

/*** 分页相关信息*/ public class Page {//当前页码private int current1;//显示的上限private int limit10;//数据总数//用于计算页数private int rows;//路径private String path;public int getCurrent() {return current;}public void setCurrent(int current) {if (curre…