V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blindpirate
V2EX  ›  Java

拿阿里巴巴自己的编程规范扫了一下阿里巴巴的所有开源项目

  blindpirate ·
blindpirate · 2019-03-13 07:19:21 +08:00 · 24186 次点击
这是一个创建于 2117 天前的主题,其中的信息可能已经有所发展或是发生改变。

项目地址在这里

https://github.com/blindpirate/does-alibaba-follow-their-own-guidelines

1

想发起一个“帮阿里巴巴遵守阿里巴巴规范的活动”,给他们提 PR。

知乎问题: https://www.zhihu.com/question/55642203

第 1 条附言  ·  2019-03-13 09:21:09 +08:00
第一个 PR 已经提交: https://github.com/alibaba/p3c/pull/466
第 2 条附言  ·  2019-03-13 10:43:18 +08:00
刚刚试图给 arthas 项目修 code style 的时候发现,arthas 项目里面的 4 个 violation 实际上只是一个子项目 arthas-spy 中的。。。修掉之后发现现另一个子项目 arthas-common 里面有 23 个。。。不乏相当低级的 style 问题,比如这里的 private static final 字段 https://github.com/alibaba/arthas/blob/88ed7897bdd5dcbe8a16618695f7601f31baec40/common/src/main/java/com/taobao/arthas/common/JavaVersionUtils.java#L11
第 3 条附言  ·  2019-03-13 17:53:27 +08:00
有人指出应当只进行 Priority=1 的检查,因此我调成了最高优先级(只扫描 [强制] :-DminimumPriority=1 )。结果更新在 GitHub 仓库中,请移步观看。
第 4 条附言  ·  2019-03-14 14:37:58 +08:00
142 条回复    2019-03-15 00:54:46 +08:00
1  2  
dfjslkjdf
    101
dfjslkjdf  
   2019-03-13 16:02:46 +08:00
@ykrank
““比较阿里巴巴的规范和您的做法,我看到的是一个建设和一个破坏。是真正的提供帮助,还是以提供帮助为借口来施加嘲讽,希望您能够好自为之。”。比如这句话,你到底认为是道理,还是你的个人认知呢”
这算信念的一部分吧,
有的人就是乐于助人,
有的人就是喜欢杀人放火,这种人也不是没有。
dfjslkjdf
    102
dfjslkjdf  
   2019-03-13 16:04:45 +08:00   ❤️ 2
@Abercrombie
古文没学好,
"圣人论迹不论心 "这句话是谁说的,出处拿来看看。
真正出处是,
"百善孝为先,论心不论迹,论迹贫家无孝子;万恶淫为首,论迹不论心,论心终古少完人。"

理解上下文很重要。
saulshao
    103
saulshao  
   2019-03-13 16:10:50 +08:00
代码规范这个东西,很多公司都有,我经历过的公司基本上是每个项目定一次代码规范,或者每个写代码的小部门定一个规范。
至于是不是遵守,那就是另外一个故事了。
鉴于此,楼主干得不错,就算阿里没想着继续改进,至少提醒他们自己说的话,自己要开始尝试照着做。
dfjslkjdf
    104
dfjslkjdf  
   2019-03-13 16:12:51 +08:00
@PP
“一个规范,可能需要二三十年才能“成熟”,阿里巴巴的这个规范是一个大部头,成熟的时间短不了。规范自称修正很彻底,如同小孩子吹嘘自己什么都知道,能伤害什么呢?让这个小孩子继续成长就好了。说这种话的规范负责人显然有些自满,年轻人,无所谓的啊!建设得很好,膨胀一下有什么不可以的呢?”

你的行事逻辑我倒是能够理解,
不过阿里可不是小孩子哦,阿里早就成了垄断巨头了。
blindpirate
    105
blindpirate  
OP
   2019-03-13 16:15:51 +08:00
@JinyAa -DminimumPriority=1 的结果已经更新在 GitHub 仓库里,请移步 https://github.com/blindpirate/does-alibaba-follow-their-own-guidelines/blob/master/README.md 观看。
dfjslkjdf
    106
dfjslkjdf  
   2019-03-13 16:17:28 +08:00   ❤️ 2
@PP
阿里才不需要他们呵护了,说到底不过是一帮程序员自娱自乐而已,
阿里说不定理都懒得理他们了,说不定在阿里眼中,不过是一帮屌丝自我高潮而已。
就像愤青动辄谈国家大事,说不定下一顿吃啥都不知道呢。
Amit
    107
Amit  
   2019-03-13 17:20:15 +08:00
这都能吵起来,你们是真的闲。
缩进要使用 tab 还是空格?
tougee
    108
tougee  
   2019-03-13 17:37:54 +08:00
楼主好狠,这脸打的
icylogic
    109
icylogic  
   2019-03-13 18:45:24 +08:00 via iPhone
本帖我明白一件事,要警惕那些动不动就把一件很具体清晰的事情提升到宏观的角度然后一顿说教试图把你整懵逼的人。
kelvinji2009
    110
kelvinji2009  
   2019-03-13 18:54:08 +08:00
PP 这个鬼人直接 block 了,没见过价值观如此扭曲之人。。。
CtrlSpace
    111
CtrlSpace  
   2019-03-13 19:07:12 +08:00
V 站上面的杠精比知乎还多...
Xbluer
    112
Xbluer  
   2019-03-13 19:14:31 +08:00 via iPhone
要不再刷刷 google 家的开源代码和规范😭
PP
    113
PP  
   2019-03-13 20:17:01 +08:00 via iPad
回来吓了一跳,三十几条未读提醒,一一看过,有些小感慨。

有一群陌生人堆了一座金山。

一个路人说堆的和说的不一样。

另一个路人说金山很好啊,价值很高啊,可以慢慢修。

又有人说了,你替修金山的人说什么话?

还有人说,金山就是有刺。

还有人说,我能修刺你修一个试试。

还有人说,你很讨厌。

还有人说,这个人一贯就是个伪君子。

最搞笑的是有人说,我前面说的不是你。

……

金山的价值就是金山的价值,上面布满了钩刺也还是金山,和堆金山的人是谁家的没关系。

我大约从 2014 年起至今在 V 站对阿里巴巴是持续批评的,可是我非常喜欢和欣赏阿里巴巴的工程师,因为阿里巴巴公司和阿里巴巴工程师这是非常明显的两码事。

这一则回复是专门写给默默发来感谢和公开发布认同言论的朋友的,不能一一 @ 了,谢谢大家的认可和支持!我很高兴你们对商业价值有着清晰并且正确的判断,有些话不方便明说,否则可能会冒犯到一些人,我相信你们的认知和判断代表着你们的智慧和职业潜力,我坚信并且预祝你们在职业生涯上宏图大展、事业千里!祝大家好!
uTOmOuk3L6sb4MSI
    114
uTOmOuk3L6sb4MSI  
   2019-03-13 21:15:31 +08:00 via iPhone
antileech
    115
antileech  
   2019-03-13 21:18:07 +08:00 via Android
@winglight2016 外行人为何不能评价内行人?你不是厨师,就不容许评价这家餐馆难吃了吗?你不是医生,就不容许评价他的医术医德了吗?你不是警察,就不容许评价警察怠慢你的案件了吗?

兼听则明。你可以坚持你的认知,那请不要评价快递员不上楼,不要评价教师打分低,不要评价销售员坑你,不要评价人大代表剥削你的权益,因为你是程序员,没资格评价外行
winglight2016
    116
winglight2016  
   2019-03-13 21:24:27 +08:00
@antileech 早就知道你要搞这种滑坡谬误外加不当类比。厨师也好、教师也好、医生也好、警察也好,你都会在生活中发生交集,产生认知,你在此事件中有参与的角色吗?你这个外行,知道别人在做什么吗?你知道自己在评价什么吗?什么都不知道的情况下,你的评价毫无价值。
noFound
    117
noFound  
   2019-03-13 22:10:42 +08:00
@PP 前面一直在强调要对事不对人,不过在围绕一个问题进行讨论的时候,有一点不应忽略的就是讨论者的角度,或者说屁股。制定规则时会受影响者与不受影响者(狭义上),对规则的看法不同,这是正常的,毕竟只缘身在此山中。
antileech
    118
antileech  
   2019-03-13 22:40:09 +08:00 via Android
@winglight2016 一,请论证“代码规范”不涉及管理学科,确保楼上的“管理者”是外行;二,请论证交集的大小,与评价价值的关系,确保无交集的情况下,外行的评价是 100%无参考价值的
wdlth
    119
wdlth  
   2019-03-13 22:42:59 +08:00
Spring Cloud Alibaba 一堆……
binux
    120
binux  
   2019-03-13 23:15:46 +08:00 via Android   ❤️ 3
你们看看,这 P P 说的是人话吗?
对事尽是些大道理,对人一套一套的。
表面上说些好听的文明用语,背地里尽是些嘲讽诅咒。
yhxx
    121
yhxx  
   2019-03-13 23:34:04 +08:00
@binux 我发现在一些大公司里有很多这种 40 岁左右的整天满嘴高大上的道理要教你做人,一到要 show me your code 就转移话题的鸟人
Ncanback
    122
Ncanback  
   2019-03-14 00:02:06 +08:00
没有不规范的代码....哪来的规范呢?
二会规定的东西,也是在两会后实施,而且是一个循序渐进的过程.....
不知道为什么很多人都反对 @PP 就因为他不能 show code ? 那如果他 show code 了,他的观点你们还会反对么?
wyz123723
    123
wyz123723  
   2019-03-14 00:16:12 +08:00   ❤️ 2
@PP 我不是反对或赞同您的观点的,我只是想向您请教如何掌握您这样的话术,因为我看许多管理者说话都是这种风格?
jppxhz01
    124
jppxhz01  
   2019-03-14 00:20:42 +08:00
@Ncanback 估计还得看 code 有没有说服力吧
yuikns
    125
yuikns  
   2019-03-14 00:38:49 +08:00 via iPhone
就好像某些咨询公司一样,一个自己实操经验就那么多,唯独高大上的字眼一套一套的。为啥人家(看上去)那么理直气壮呢?因为是在掩盖虚弱的本质啊。

show code or not 并不决定其结论的正误,但是是互为矛盾的观点的基础。

一个醉汉说,登月不是很简单,手电筒对月亮一照,然后爬上去不就行。轻量级!
另一个醉汉嘲讽道,你撒啊,半空中电筒一关咋办?鲁棒性!
第一个醉汉呵呵了,你不会多开几个?分布式!

路过一个航天民工,瞅了眼
jimmy2010
    126
jimmy2010  
   2019-03-14 00:42:45 +08:00 via Android
@binux 从这个帖子就可以看出有多少人是对人不对事,就 7 楼那个回复还有 17 个人点赞,不知道有多少仅凭对这个人的映像就无脑点赞的。不能否认 PP 以前某些帖子回复得体,有一定的智者形象。但在这个帖子中,实在有点强词夺理。
@PP 楼主做的事情我认为很有意义,即便是嘲讽,这也是推动大家关注规范,完善规范的一种方式啊。杂文见过吗?鲁迅的文章见过吗,讽刺得少?是为了讽刺而讽刺吗?
你也说了阿里是这么大一个企业,工程师如何如何厉害,然后自己制定的规范自己都不理会,这不搞笑吗?没有一点诚意啊,即便它是什么雏形,那也是规范,是用来照做的,不是说某一天这个规范到了终极形态大家再来说:好,规范终于长大了,我们来照做吧。
PP
    127
PP  
   2019-03-14 01:13:19 +08:00 via iPad   ❤️ 1
@wyz123723 很抱歉我无法在这方面提供帮助,因为“您这样的话术”在我自己来看并不存在,特别是我已经脱离管理岗位十年多了。我来 V 站的目的是学习,同时以我的知识和认知来回报大家,这一点未曾改变。

作为额外的个人意见,我相信在专业之外学习一些管理知识和商业知识,会带来很大的收益,不仅仅是可以用专业的角度看待问题以及用专业的语言表达问题,更可以提升自己的视野,让自己的职业发展更加坚实顺畅。

如果您让自己对某些能力的认识停留在“话术”上,可能会误导和限制您自己。祝好!
designer
    128
designer  
   2019-03-14 01:24:28 +08:00 via iPhone
@PP 不赞同你的观点哦,但是挺喜欢你的说话方式和态度。比较有水平!
你的观点有点像你并不正真搬砖的人,却觉得搬砖挺锻炼身体,有益健康。如果你真正搬砖(认真撸码)可能就不一样了。
tyrealgray
    129
tyrealgray  
   2019-03-14 01:28:44 +08:00 via Android
@winglight2016 按照这个逻辑我有一点不解的是,按理说我不会踢足球,也没有和中国足球队产生交集,但是我确实觉得中国足球队相比其他足球队踢的很烂,我的评论不算是有意义的吗?
PP
    130
PP  
   2019-03-14 01:35:05 +08:00 via iPad   ❤️ 1
@designer 哈哈哈哈。闲扯几句啊!代码不规范对软件企业是致命缺陷,意味着“未知不可控”。任何一个组织只要脑子没进水都不会容忍这种情况的发生,在预算和人力到位的情况下必然先把这张保命符做出来。所以无论员工怎么看,从什么角度或立场看,都替代和阻止不了企业对这件事的极端重视。为此我在这场讨论中不停的阐述规范的价值,有些人理解了,有些人没理解。认识不到组织选择和商业价值,可能职业潜力也就真的有限了。祝好!
wogong
    131
wogong  
   2019-03-14 02:25:08 +08:00 via iPhone   ❤️ 2
在互联网上的相互交流确实太难了,楼主本意我觉得没什么大问题,挺有趣的。PP 说的我更加赞同,是我看到之前没有想到的,很有启发性。

大家表达看法而已,没办法交流便不交流,怎么还盖起理中客的帽子来了?恕我直言,这个社区的讨论质量下降有你们的贡献。抱歉我在这里也对人不对事了。
ericgui
    132
ericgui  
   2019-03-14 02:31:15 +08:00
挺好,如果他们自己都不遵守,凭什么让别人遵守
johnnie502
    133
johnnie502  
   2019-03-14 04:24:22 +08:00
你们都在 dis 这个 PP,还加入黑名单,作为一个成熟的人不应该这样。


应该努力学习他的话术,一生受益。
binux
    134
binux  
   2019-03-14 04:45:56 +08:00 via Android
@johnnie502 不愿意成为自己讨厌的人?
yuikns
    135
yuikns  
   2019-03-14 05:24:04 +08:00   ❤️ 1
此处讲的不是 “要不要这个标准” 的问题,而是 “这个标准是不是可信服” 的问题。

Google C++ Style 也有很多批评,无论是保守还是取舍,皆可商榷。但据我所知是没有很多 KPI 方面的怀疑?我模仿他们的几个开源工程时候,至少大致是符合规范的。


回到此处,
这个帖子和相关 repo 的性质取决于阿里他们自己怎么看待这个他们的标准的?
他们觉得他们自己定义的规范是 exe,那么这个 repo 就是建设性的。
他们觉得他们自己定义的规范是 txt,那么这个 repo 就是嘲讽性的。

即便楼主本意是嘲讽,阿里如果改善他们的代码,那个 repo 则会不以作者原本意愿而变成助攻。


世间安得双全法,又当标准制定者又“需要时间去成长、改进、调整。”
进可攻退可守,当真是美滴狠。
yuikns
    136
yuikns  
   2019-03-14 05:25:49 +08:00   ❤️ 1
顺便的,从个人角度看,本鶸鶸觉得它当作 txt 读,尝试知其所以然的话,很多条目还是有参考性的。
sniffles
    137
sniffles  
   2019-03-14 14:33:39 +08:00   ❤️ 2
顺便跑个题。

报个 MBA,您也可以学会管理,掌握一套又一套理论,保证看起来很有道理,能够唬住别人。

在辩论上更容易啦,说错了赶紧给对方扣帽子,我是正义的理智的,你是坏的愚蠢的,这样永远立于不败之地啦。

以上,祝好:)
die4live
    138
die4live  
   2019-03-14 17:36:31 +08:00   ❤️ 2
支持楼主, 这个世界需要你这样的实干者, 就算语气再讽刺, 只要道理对, 这事就是对的

反之, 有的人只是满嘴冠冕堂皇, 对事不对人, 自己的观点就是真理, 别人的不同观点就是 "他的错误", 逼急了就只能此人不值得, 我要投诉你, 我不回复你了哦, 一股子酸臭腐朽味, 还要假装在不经意间透露出我可是高等教育的哦, 十几年管理经验哦, 来 V2 是学习的哦, 同时嘴上说着不浪费时间, 不说车轱辘话, 自己却打脸打的啪啪的, 真是生活比小说更精彩啊, 正应了个小人长戚戚, 徒增笑耳
gujin
    139
gujin  
   2019-03-14 18:50:54 +08:00   ❤️ 3
感谢楼主对阿里巴巴开源项目的关注与支持,楼主扫描的 26 个项目目前已推进执行代码规范自查。同时感谢楼主和社区同学对项目提出 issue,我们会及时 review。在致谢的同时,我们认识到,阿里巴巴的确需要一个更好的规范来约束开发。

代码规约的出现是为了解决集团内部的代码规范问题,当前集团内部 95% 以上 Java 开发工程师都已经安装了 P3C 扫描插件,大家在提交代码时会主动地扫描一下。在数万个应用中,发现了数百万计的问题,近 4000 个应用实现了错误清零。在整个阿里巴巴经济体内,推动并初步达成规约共识是在 2017 年。

GitHub 上阿里巴巴的 Org 建立时间是 2012 年,多数开源项目是比较早期的作品,开源的初心也是我们的同学希望能够分享自己的代码、对技术的积累和认知,希望能和社区有更多的交流。随着时间的推移,阿里巴巴的开源已经不止是分享,更多的是想要和大家共建社区从而真正地打造好的开源产品帮助大家更好地解决问题,最近一年开源的项目我们做得会好一点,也需要在大家的推动下做得更好一些。

我们深深知道,要真正做好开源,还有很长的路要走。代码规范与否是必须要解决的问题,我们正在积极推动各项工具的落地,希望社区可以参与进来,也非常期待能有更多的人加入进来一起做好开源。

如果你有任何想要了解的问题,欢迎随时联系我们: opensource@alibaba-inc.com

再次感谢。

阿里巴巴开源开放小组
gujin
    140
gujin  
   2019-03-14 18:58:19 +08:00
每个项目都可能会有不同的社区 Code Style 标准,可能用一套标准来评审所有项目不够严谨,所以需要更多的工具和社区同学来参与 review,这里要感谢各个社区的 contributor 在持续地贡献,参与社区的建设。从《阿里巴巴 JAVA 开发手册》到《码出高效》,收到很多小伙伴们的反馈,我们也把这两本书的书籍收入捐赠公益,回馈社区。
winglight2016
    141
winglight2016  
   2019-03-14 20:37:22 +08:00
@tyrealgray 你如果从来不下场踢球,也不看足球,不听足球新闻,不和别人聊起任何足球话题,换句话说,你并没有以任何形式参与到这项运动中,你去评价国足有何价值?——不是说要上场踢球才叫参与,对不对?你现在站在一个专业的圈子之外评价圈内的行为如何如何不妥,跟民科号称解决哥德巴赫猜想而控告科学院并不理睬有何不同?
dan666
    142
dan666  
   2019-03-15 00:54:46 +08:00
@gujin 很赞,继续加油。态度很好!
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2594 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.