javadoc 开源项目_在下一个项目中不使用JavaDoc的5大原因

javadoc 开源项目

JavaDoc对于框架和库的开发是绝对必需的,这些框架和库为其他框架(例如Spring Framework,JDK)提供了公共接口。 对于内部企业软件和/或产品开发,我有以下原因会在将来忽略“ 100%JavaDoc Policy”。

1)大约95%的评论没有附加值的观察

如果您有一个JavaDoc在项目中是强制性的规则,则大多数开发人员将使用JavaDoc生成向导(例如http://jautodoc.sourceforge.net/ )。 这些生成的评论很快,并且创建了几乎一文不值的内容。 但是对于像PMD这样的静态代码分析工具,一切看起来都不错。

现有的大多数JavaDoc描述都解释了WHAT,而不是WHY。 每个开发人员都应该能够阅读源代码,而事实就是代码。 通常,仅需要注释即可了解开发人员为何决定使用当前解决方案。 在某些情况下,对引用的基本概念的提示可能会有所帮助,例如设计模式,教科书章节,标准算法。

2)使用断言来检查有效参数比纯文本描述更有效

即使使用100%JavaDoc和高质量的描述,只要没有明显的问题出现,许多开发人员就不会阅读注释。 对于这些情况,对具有断言和/或验证功能的方法的有效输入进行自动检查会有所帮助。 Spring框架是使用Asserts的一个很好的例子。 开发或测试过程中的异常比不读注释有更多帮助。

3)源代码的可读性越来越差

广泛的JavaDoc可能不是最关键的缺点是可读性差。 屏幕空间有限。 这也可能是错误的根源,因为我们是人类,屏幕上显示的更多代码意味着更好的概览。

4)随着时间的流逝,很多评论都错了

假设您有完善的JavaDoc注释,并且有一些增强请求,缺陷或重构。 许多评论将是不正确的,因为没有人花时间来更新它们。 这是一个非常糟糕的情况。 开发人员应该在评论或新实现中相信测试什么? 没有文件比不一致或过时的文件更好。

5)重构将更慢

在大多数情况下,借助现代开发工具支持,重构是一项快速而轻松的工作。 更新JavaDoc仍然是一个手动过程,需要很多时间。 这导致由于JavaDoc导致不需要重构的情况。
建议不只是背面和白色。 在某些情况下,JavaDoc非常有意义,并为维护团队创造了价值。 在团队中讨论何时使用JavaDoc。 我保证将来会这样做。

参考:来自JCG合作伙伴 Markus Sprunck的Software Engineering Candies博客上的下一个项目中未使用JavaDoc的5大原因 。


翻译自: https://www.javacodegeeks.com/2012/06/top-5-reasons-for-not-using-javadoc-in.html

javadoc 开源项目

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

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

相关文章

android拍照功能无预览,Android 无预览拍照

最近得到了一个需求,在后台拍照并保存public void onTakePhotoClicked() {final SurfaceView preview new SurfaceView(this);SurfaceHolder holder preview.getHolder();// deprecated setting, but required on Android versions prior to 3.0holder.setType(Su…

vim选中字符复制/剪切/粘贴

问题描述: vim 中选中指定字符,进行复制/剪切/粘贴 问题解决: 进入vim中visual模式,visual模式进入,可以有三种方式: (1)在普通模式(normal)下&#xf…

使用JavaFX构建反应系统

JavaFX是用于在Java中构建图形应用程序的新标准库,但是许多程序员仍然对Swing甚至(高音)AWT感到困惑。 在Java诞生20年来,发生了很多事情。 两年前,当我开始研究Speedment UI的JavaFX库时,发现很多东西很着…

android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...

我正在使用Netbeans和java开发我的android应用程序.当我使用模拟器时,我可以通过访问以下路径,data / data / com.example.helloandroid / database来访问File explorer并将SQLite数据库插入设备内部存储器但是当我使用真实设备时,我无法访问此位置以将SQLite文件推送到手机的内…

Spring中@Autowired注解、@Resource注解的区别

Spring不但支持自己定义的Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是Resource、PostConstruct以及PreDestroy。Resource的作用相当于Autowired,只不过Autowired按byType自动注入,而Resource默认按 byName自动注…

android中白色怎么表示,通知栏图标在android 5中变成白色

接受的答案不完全正确。当然,它会使通知图标显示颜色,但是这样做有一个很大的缺点-将目标SDK设置为比AndroidLolliop低!如果您按照建议将目标SDK设置为20来解决您的白色图标问题,您的应用程序将不会针对AndroidLolliop&#xff0c…

Merge Sorted Array

这是一道我觉得有点不是很好的简单题 题目: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:     You may assume that nums1 has enough space (size that is greater or equal to m n) to hold additi…

阿里巴巴android图标素材网,阿里巴巴矢量图标库

网站简介:IconFont:阿里巴巴矢量图标库是由阿里巴巴体验团队倾力打造的中国第一个最大且功能最全的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能,是设计师和前端开发的便捷工具。IconFont平台是由阿里巴巴UX部门推出的矢量图标管理…

gkz cloud sql_使用Cloud SQL的Google App Engine全文搜索

gkz cloud sql许多Google AppEngine开发人员一直在等待全文搜索功能,特别是来自网络上最大的搜索引擎Google。 我很高兴看到Google团队正在努力,您可以在Google I / O 2011会议上查看:Bo Majewski和Ged Ellis进行的全文本搜索 。 据我所知&am…

poj1419 Graph Coloring 最大独立集(最大团)

最大独立集&#xff1a; 顶点集V中取 K个顶点&#xff0c;其两两间无连接。 最大团&#xff1a; 顶点集V中取 K个顶点&#xff0c;其两两间有边连接。 最大独立集补图的最大团最大团补图的最大独立集 #include<iostream> #include<cstring> #include<cstdio>…

android短信增加条目,Android仿短信条目右上角的红色小圆球提示气泡

可以重写View的onDraw完成该功能&#xff0c;也可以写布局文件完成该功能。现在使用布局文件完成。暂时先简单写一个TextView右上角的提示小红球&#xff0c;也可以根据需要写一个ImageView右上角的小红球提示。android:layout_width"match_parent"android:layout_he…

AccuREST Stub Runner发布

最近发布时间不错&#xff01; 我在Too Much Coding博客上的博客更多是关于发布&#xff0c;然后是关于任何具体主题;&#xff09; 在作为Brixton RC1的一部分发布Spring Cloud Sleuth之后&#xff0c;我们刚刚发布了AccuREST 1.0.4版本。 我们修复了一些错误&#xff0c;但引…

idea使用码云

每更改项目的内容会弹出框提示你是否需要发送码云更新 如果没选yes后想要更新码云 联合开发 发现回到A同事的项目中&#xff0c;Student.java并没有修改 完成后&#xff0c;发现的Student.java已经更新了&#xff0c;跟B同事的代码也是一样。因为从服务器下载了最新的代码。 …

android webview rem,Android部分webview rem计算误差记录

上周做了一个原生H5小游戏页面&#xff0c;使用rem来布局&#xff0c;然后在三星和华为的部分机型里面出现了rem计算出现误差的情况&#xff0c;截图如下在页面rem计算完成后&#xff0c;用两种方式获取font-size。然后结果不一样&#xff0c;导致某些元素通过rem计算后的值&am…

android usb弹窗权限r,Android USB权限对话框永远不会出现

我写了一个简单的应用程序,通过USB将命令发送到连接到Android 4.0平板电脑的USB打印机.出于某种原因,我无法获得声明接口和打开连接的权限.这是相关的代码&#xff1a;public class TestPrintActivity extends Activity {private UsbManager mUsbManager;private UsbDevice mDe…

mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据

mvvm 耗时加载进度条先前的文章简要介绍了RIA框架ZK&#xff0c;以及其CSS Selector启发的控制器机制如何通过使在控制器类中引用UI组件的任务变得相对灵活来减轻UI更改所带来的一些负担。 然后&#xff0c;我们在上一篇文章中探讨了ZK中的MVVM模式如何允许单个ViewModel提供不…

@Autowired和可选依赖项

Autowired注释使我们的生活更轻松。 如果我们在类的属性上使用它&#xff0c;也可能导致代码量减少。 我们既不需要构造函数也不需要setter方法。 乍一看看起来很棒&#xff0c;但好处很少是没有成本的。 今天&#xff0c;我想让您知道必须支付的费用。 Autowired&#xff08…

¥人民币符号怎么打

有一种快捷键的方法&#xff08;不方便记忆&#xff09; 按住Alt0165 此方法适合任何输入法。转载于:https://www.cnblogs.com/wulibo/p/7575348.html

android 使用javascript,可以在Android中使用JavaScript吗?

可以在Android中使用JavaScript吗&#xff1f;如果是这样&#xff0c;怎么办&#xff1f;请提供一些示例。谢谢。最佳答案我在这里参加聚会很晚&#xff0c;但是我确实有这个需要。 iOS 7现在包含JavaScriptCorenative &#xff0c;并且确实很容易使用(尽管文档有限)。问题是我…

[POJ2151]Check the difficulty of problems(概率DP)

传送门 每个队之间是独立的 f[i][j]表示当前队伍前i个题答对j个的概率 满足条件的概率 全部方案&#xff08;除去答对0&#xff09;的概率 - 不满足条件的概率&#xff08;每个队伍答对1~n-1&#xff09; #include <cstdio> #include <cstring> #define N 101int …