为何阿里规约在 Java 中不能行尾注释?你们有什么看法?

2019-07-26 09:46:06 +08:00
 legiorange
17270 次点击
所在节点    Java
59 条回复
daozhihun
2019-07-26 10:38:40 +08:00
人家自己定的规定,觉得好就采用,觉得不好就理会就是咯
skiy
2019-07-26 10:39:23 +08:00
@laoyur 我没有承认错了吗?我是要换行写代码时,按了回车键。没见我用了分号吗?
uyz
2019-07-26 10:39:55 +08:00
for(j=0; j<array_len; j+ =8)
{
total += array[j+0 ];
total += array[j+1 ];
total += array[j+2 ]; /* Main body of
total += array[j+3]; * loop is unrolled
total += array[j+4]; * for greater speed.
total += array[j+5]; */
total += array[j+6 ];
total += array[j+7 ];
}
laoyur
2019-07-26 10:44:01 +08:00
@skiy > 我没有承认错了吗?我是要换行写代码时,按了回车键。没见我用了分号吗?

我错了,抱歉,误伤了。写回复的时候只看到「行尾是指:」你这一条回复,还以为你故意装糊涂反问什么是行尾呢
xnode
2019-07-26 10:44:10 +08:00
是为了减少这样的帖子,如果允许在行尾注释,那么就会有人发帖问为什么不能在行首注释
zsdroid
2019-07-26 10:51:09 +08:00
我用的行首,这样代码看上去不会密密麻麻的堆在一起
polebug
2019-07-26 10:51:22 +08:00
我觉得没毛病 我观察过一般人
定义变量的时候 习惯行末注释
定义函数的时候 习惯在上方一行注释

我猜是因为 定义变量 比较短且密集

规定不能行末注释也挺好的 比如很长很长的类定义后面可不会再有注释了(比如 java 可真是又臭又长
brust
2019-07-26 10:53:42 +08:00
我也是混搭
但是我习惯是
var abc = 1; // abc 的注释
var bcd = 2; // bcd 的注释
如果
// abc 的注释
var abc = 1;

// bcd 的注释
var bcd = 2;
如果这种局部变量太多
这样可能一个方法一个屏幕看不完
W1angMh
2019-07-26 11:14:03 +08:00
阿里 Java 开发手册里有三个建议级别:强制 > 推荐 > 参考,“方法内部的单行注释,在被注释语句的上方另起一行”属于强制级别
Mogugugugu
2019-07-26 11:22:20 +08:00
因为我没有带鱼屏,另外注释比较长换行咋解决?
VoidChen
2019-07-26 11:39:41 +08:00
@skiy 这样呢?
// abc
if abc {

/
} else {
// 放在这里注释

}
chocotan
2019-07-26 11:45:06 +08:00
人家的家规,开心就好 +1
opengps
2019-07-26 12:20:30 +08:00
可能是屏幕都是竖着用,竖着看方便吧
opengps
2019-07-26 12:23:56 +08:00
回答个正规的,可能是代码审查工具更利用统计
行位注释可能会跟转移字符的斜杠冲突识别不准
passerbytiny
2019-07-26 13:12:48 +08:00
家规不是行规。
如果你不是打算进去,那么还是建议参照谷歌的规范: https://google.github.io/styleguide/javaguide.html
jinliming2
2019-07-26 13:26:29 +08:00
我觉得楼上都进入了一个误区:不能在行尾注释就一定要在上一行注释,这没问题。但是允许在行尾注释,就不能在上一行注释了吗?肯定也可以啊!
所以,该行尾注释就行尾注释,该上一行注释就上一行注释,该用块注释就用块注释。

规则是为了代码更好看易读,统一可以方便理解。但是如果规则的出现导致代码变得不可读,那就得不偿失了!
所以,所有的代码格式化工具都会提供忽略的功能,毕竟工具都是死的,没有办法根据实际代码情况做出调整(别跟我说接入 AI,毕竟现在 AI 也不是十分可靠)。

所以,可以有规定,但是也要根据实际情况变通!
人是活的!
AlphaTr
2019-07-26 13:32:55 +08:00
行如果比较长,行尾注释就不适合了;但这个不太好规则化程序验证检测,所以直接禁用掉
gabezhao
2019-07-26 13:44:36 +08:00
@AlphaTr 我觉得也是这样的,看个注释还得向后拉
skiy
2019-07-26 13:50:24 +08:00
@VoidChen

f abc {

/
} else {
// 放在这里注释的话,就感觉像是下一行的注释,不像这段代码块的注释了。


}
LukeChien
2019-07-26 14:20:09 +08:00
听说是,代码审计工具会判断注释所属语句,定义变量没有注释会警告

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX