dar*_*ple 4 java intellij-idea
我最近一直在使用声纳进行代码分析.当我彻底违反钻取时,我发现许多带有if语句的java文件没有大括号(数千个地方).是否有一种简单的方法可以替换或添加if语句的大括号,或者我可以执行哪些步骤来完成此任务,而无需在每个文件中手动执行.
我目前正在使用intelliJ.
是否有一种简单的方法可以替换或添加if语句的大括号,或者我可以执行哪些步骤来完成此任务,而无需在每个文件中手动执行.
我不知道是否有自动执行此操作的工具.(可能有...)但是假设存在这样的工具,我不相信这是正确的方法.
退一步,考虑为什么代码分析报告这是一个问题.很多人(比如@pst和我)认为括号总是应该在那里,即使各种风格指南都不坚持这一点.这有一个很好的理由......除了"它看起来很难看".请考虑以下示例代码段:
if (i == 1)
i++;
doSomething();
while (i < 1)
i++;
doSomething();
Run Code Online (Sandbox Code Playgroud)
如果你没有仔细阅读这些内容,那么你的眼睛会欺骗你,doSomething();因为不正确的缩进会让你觉得有条件地被称为.它发生了.
(除此之外:因误读代码没有帮助而将某人标记为"无能为力".如果你拼命想要解决一个停止错误并且你已经连续工作了14个小时,那么你很可能会错过这种事情并不是因为你是无能为力的.一旦你遇到过这种情况,这一课就会陷入......)
好的,现在假设你运行一个自动工具来添加大括号.你会得到的是:
if (i == 1) {
i++;
}
doSomething();
while (i < 1) {
i++;
}
doSomething();
Run Code Online (Sandbox Code Playgroud)
它意味着与原始代码完全相同. 但是 ......如果原始代码实际上是一个错误怎么办?如果程序员打算将这些doSomething()调用设置为有条件的话怎么办?
简而言之,通过自动添加括号,我们掩盖了原始程序员的意图,并使这些错误更难以追踪.
底线-我认为这将是审慎的,以人工审查每一个出现的......而不仅仅是自动"修复"它们.事实上,我认为如果你没有时间或耐心手动审查它们,最好不要单独留下代码.最好关掉警告...... IMO.
我可以重新格式化代码以使intelliJ为我做的事情,但我需要浏览所有文件并重新格式化.是的,我可能会关闭支票,但想知道是否有一个很好的工具来完成任务.我有一套很好的测试来检查它是否在这个过程中引入了bug.
如果您确定有一些方法可以测试不会引入错误,那么请使用IntelliJ 重新格式代码功能.
只需确保您在IntelliJ 中的代码样式符合您公司的政策.否则你也会把你的风格强加给别人.
要强制括号,只需将它们标记为IntelliJ中代码样式设置对话框中Always的环绕和括号标记.
在项目视图中标记源文件夹,然后按Ctrl-Alt-L.弹出一个对话框,您可以选择All files in directory <...>.
然后按Run,看看会发生什么.如果您不满意,请从您的VCS恢复.
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |