前情提要: https://www.v2ex.com/t/543954
想要为开源项目做贡献,但是苦于找不到门路?请加入我,一起向阿里巴巴提交 PR,修正阿里巴巴的开源项目中违背 https://github.com/alibaba/p3c 规范的代码吧!许多人向开源社区做贡献就是 fix typo/code style 开始的,我也不例外。现在有一个好机会向知名项目提交代码,并且十分容易!
pom.xml
中加入: <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.8</version>
<configuration>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<targetJdk>1.8</targetJdk>
<printFailingErrors>true</printFailingErrors>
<rulesets>
<ruleset>rulesets/java/ali-comment.xml</ruleset>
<ruleset>rulesets/java/ali-concurrent.xml</ruleset>
<ruleset>rulesets/java/ali-constant.xml</ruleset>
<ruleset>rulesets/java/ali-exception.xml</ruleset>
<ruleset>rulesets/java/ali-flowcontrol.xml</ruleset>
<ruleset>rulesets/java/ali-naming.xml</ruleset>
<ruleset>rulesets/java/ali-oop.xml</ruleset>
<ruleset>rulesets/java/ali-orm.xml</ruleset>
<ruleset>rulesets/java/ali-other.xml</ruleset>
<ruleset>rulesets/java/ali-set.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.alibaba.p3c</groupId>
<artifactId>p3c-pmd</artifactId>
<version>1.3.6</version>
</dependency>
</dependencies>
</plugin>
mvn clean install -DskipTests -DminimumPriority=1
,修正列出的 violations。如果你拿不准如何修改,可以使用@SuppressWarnings("PMD.<RuleName>")
(这是编译期注解,放心使用),这样至少可以保证未来的代码不会变得更差。-DminimumPriority=1
,修正所有 violations。代价是工作量可能增长数倍。非常简单,唯一困难的地方就是迈出第一步。我向 arthas 项目提交了一个 PR 作为样例: https://github.com/alibaba/arthas/pull/568
可以看到几乎都是体力活,十五分钟足够了。
欢迎 review 我的 PR。有任何问题欢迎在此贴中讨论。
1
blindpirate OP @PP 我已经提交了两个 PR 了,你呢?你还在那里高谈阔论么?
|
2
pabupa 2019-03-14 07:39:05 +08:00 1
你发高烧了吧…………
|
3
blindpirate OP @pabupa 我刚数了一下我迄今为止已经在 GitHub 上提交了 365 个 PR 了,可能发了 365 次高烧吧。
|
4
mswlander 2019-03-14 07:51:59 +08:00 via Android 1
工作量不够饱和。。。
|
5
skd918 2019-03-14 07:57:55 +08:00 via Android
你气量可真够可以的
|
6
KinneyZhang 2019-03-14 08:00:47 +08:00 1
意思是阿里自己的项目代码没有遵守自己的规范?有点滑稽^o^
|
7
PALELESS 2019-03-14 08:12:18 +08:00 via Android 1
这不算为开源做贡献,这算杠,写代码的人八成很感谢你来修人家的代码
|
8
fzy0728 2019-03-14 09:01:04 +08:00
工作量不饱和...
|
9
hirasawayui 2019-03-14 09:03:12 +08:00
这也算开源?
|
10
honeycomb 2019-03-14 09:03:48 +08:00 via Android
不错
|
11
hhhsuan 2019-03-14 09:05:40 +08:00 via Android
支持,阿里的规范自己都不遵守,拿出来忽悠人
|
12
jeffersonpig 2019-03-14 09:11:33 +08:00
阿里付我工资了吗我就要帮它?总觉得是阿里的人自己推规范推不动,想利用外面的人来施加压力,大家千万别上当受骗被利用做了免费苦力
|
14
binux 2019-03-14 09:45:22 +08:00 1
这很正常,这在开源中很正常,无论是在国内还是国外都很正常。
当年那个给我项目提 pep8 的,人家现在已经是 CTO 了。 |
15
yhxx 2019-03-14 09:50:21 +08:00 1
@hirasawayui 这都不算,难道只有 “致阿里巴巴,此人不值得”,这样才算?
|
16
morethansean 2019-03-14 09:51:08 +08:00
@VoidChen 哈哈哈,看原文我觉得 PP 言辞和善观点也挺正的,不知道楼主为啥这么杠……
|
17
mingqing 2019-03-14 09:51:10 +08:00
规范是经历过大量基础实践才总结出来的,原先的实践也必须通过一定的时间去迭代改进,不可能一出规范所有的项目都一定遵守(主要是给新项目做标准)
|
18
huangdayu 2019-03-14 09:51:12 +08:00 via Android
声援
|
19
VoidChen 2019-03-14 10:03:04 +08:00
@morethansean 大概是“除了我以外在座各位都是键盘侠,别瞎 BB 打扰到我用 TNT 提 PR 了”。其实事情本身是件好事,想要改变整个环境规范也非一日之功,就是心急了想提前摘果子= =
|
20
leeloc 2019-03-14 11:53:46 +08:00
支持。看看这些冷嘲热讽的,还言辞和善观点正
|
21
abmin521 2019-03-14 12:07:38 +08:00 via Android
这种帖子大多反对上一个观点
不管怎么说 我是支持的 这就像有些人总是让别人早睡早起 自己却天天熬夜一样 还有一个不得不面对的现实 有一部分人只关注能用就行 而不是尽力优化。 |
22
Raymon111111 2019-03-14 14:54:06 +08:00 1
挺好的啊
既然阿里自己出了规范, 那么就应该觉得这个规范是好的. 如果开源项目不用遵守这个规范, 说明规范有提高的空间 无论是哪个角度, 都有提高的空间 |
23
HongJay 2019-03-14 15:24:19 +08:00
大气量。支持楼主一楼艾特 pp ( dog )
|
24
ily433664 2019-03-14 15:50:24 +08:00
规范也只是规范而已,又不是强制,就像所有人都知道早睡有助于健康,但是很多人不也是经常熬夜,lz 明显就是专门来杠的。
还是吃的太饱——袁隆平(并不是) |
25
natforum 2019-03-14 15:56:26 +08:00
钢筋同学,你好
|
26
tyrealgray 2019-03-14 16:03:58 +08:00 via Android
楼主这种事是好事,不过发帖一次就可以了,再发第二次别人就真的觉得你是要蹭热度搞事了
|
27
pabupa 2019-03-14 19:50:40 +08:00
@blindpirate 和您其他的 364 次有什么关系呀……
|
28
dfjslkjdf 2019-03-14 21:33:16 +08:00 2
看见 lz 说,“阿里开源项目的负责人已经联系我了。我们碰巧很久前就认识。”
我想,哟,这是个大人物啊,想必有什么好东西吧,看看。 我就随便翻了一个文件,这都是什么东西? lz 你是不是闲的蛋疼? ![]( ) |
30
cuebyte 2019-03-14 21:45:09 +08:00
已經不懂中國程序員了。指出 typo 在你們看來都算貢獻的情況下,用阿里的代碼規範來敲打阿里開源項目不是比修修 typo 更有意義嗎?難道樓上都是阿里員工?
|
31
blindpirate OP @fancyhan @dfjslkjdf
阿里巴巴 Java 开发手册: (七) 控制语句 2. [强制] 在 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,避免采用 单行的编码方式:if (condition) statements; https://stackoverflow.com/questions/2125066/is-it-a-bad-practice-to-use-an-if-statement-without-curly-braces https://coolshell.cn/articles/11112.html 历史上引起过严重 bug。 无知不是你们的错,出来嘲讽就是你们的不对了。 |
32
blindpirate OP @dfjslkjdf 想看我的代码的话,这是给 OpenJDK 修的 bug:
http://hg.openjdk.java.net/jdk/jdk/rev/53a4760e9fcc https://bugs.openjdk.java.net/browse/JDK-8210810 无知不是你的错,出来嘲讽就是你的不对了。 |
33
dfjslkjdf 2019-03-14 22:41:48 +08:00
|
34
dfjslkjdf 2019-03-14 22:48:03 +08:00
@blindpirate
第二个链接我打不开,不过我没觉得哪里有水平了。 你要是发个自己的什么构想,什么奇思妙想,什么项目框架,让别人能拍案而起的东西让别人看看,让我们也佩服佩服。 但是你发这个,这就跟国家主席拍个照一样,有人觉得了不起,我反正不吃这一套。 |
35
blindpirate OP @dfjslkjdf 我的时间比你值钱的多,但我乐意。合并 PR 的人都没意见,你算个什么东西。
|
36
dfjslkjdf 2019-03-14 22:52:57 +08:00
|
37
yuikns 2019-03-14 23:27:21 +08:00 via iPhone 3
那个… 楼主在 gradle 的 contribution 列表排 #19,654 commits 40,489 ++ 156,545 --
虽然我打开和关闭了 sbt 和 bazel 比较熟练,但还是觉得很厉害了。 至少比只会 judge 别人的厉害 |
38
Zzdex 2019-03-14 23:34:52 +08:00 via iPhone
支持楼主
|
39
ilgharkus 2019-03-14 23:46:47 +08:00 2
坐等理学家,高级软件工程师,语言学家和礼仪学家 PP 出现。
后排支持楼主。 BTW,自己觉得有意义的事自己去做就行了,用不着和别人争执,一件事是否有意义取决于双方的能力,个人状况,阅历和价值观种种因素,有分歧很正常,如果引起争执就很没有必要了。 |
40
David1119 2019-03-14 23:48:00 +08:00 1
|
41
dfjslkjdf 2019-03-14 23:53:09 +08:00
@blindpirate
你要是 qa,我收回我的话,我不知道啥叫一个好的 qa。 |
42
dfjslkjdf 2019-03-14 23:54:09 +08:00
|
43
yuikns 2019-03-15 00:23:48 +08:00 11
勿以恶小而为之,勿以善小而不为。
如楼主所说,改 typo 是向开源社区做贡献的开始,不仅因为它让新手们可以开始学会正确地沟通和协作,也可以让一个很好的项目的 #19 的作者可以将更多精力花费在更多 feature 上。 相反的,作为一个评论者,动不动就论心定罪,恐怕脱袜子来了,都能说人家一句抄 Unix 吧。这也是一种做法。 前者枯燥而收益不大,后者当场站在了世界之巅。当然选后者。 |
44
ericgui 2019-03-15 00:36:16 +08:00
支持楼主
|
45
zwh2698 2019-03-15 00:44:41 +08:00 via Android
楼主,规范已经是公司建立影响行销的手段,你认真了
|
46
Cabana 2019-03-15 00:47:41 +08:00 via Android
支持楼主,首先不管楼主心态是怎样的,但至少是真的有在「做」,而不是站在 xx 的制高点评头论足
|
47
dan666 2019-03-15 00:59:59 +08:00
其实如果有人给我的丑代码提修正规范——而且是按照我自己的规范来提的,我很乐意啊——这不正是我从开源社区获得到的吗
|
48
dangyuluo 2019-03-15 04:50:58 +08:00
黑一下得了啊,还得工作呢
|
49
lxml 2019-03-15 04:57:55 +08:00 via Android
想问楼上的,认真有什么错?
|
50
ironMan1995 2019-03-15 05:41:38 +08:00 via Android
支持楼主,我强烈建议那些只会嘴上叫嚣,没有一点实际行动的人,闭上你们臭嘴。教育为开源社区做贡献的人,有些人还不配。
|
51
TuringGunner 2019-03-15 08:41:16 +08:00 via Android
支持楼主,自己出的规范自己不遵守,这不搞笑么
|
52
yoshiyuki 2019-03-15 09:42:07 +08:00
实干胜空谈
|
53
fatedier 2019-03-15 09:43:26 +08:00
规范代码,提倡大家一起来改进,怎么反而有人嘲讽?
本来就是一件吃力不讨好的事,有点体力活的意思,但是也可以让更多的人接触开源项目,顺带学习一下大厂的规范和经验,对提 PR 的人和项目社区来说是双赢的事情。 |
54
mentalkiller 2019-03-15 09:52:07 +08:00
支持楼主。楼主对于开源社区是实实在在的贡献,即使每一步可能都很微小。但是相比于坐在制高点指点江山的键盘侠,真的是高得不知道哪里去了。
|
55
Raymon111111 2019-03-15 10:22:03 +08:00
@ily433664 并不是, 阿里那个规范里面很多项都是标注"强制", 如果认为标注"强制"的可以不用改, 那么规范本身应该把"强制"给降级成"推荐". 这也不是推进规范更好的发展吗?
|
57
Nostalgiaaaa 2019-03-15 11:03:43 +08:00
能实干的人已经很佩服了,支持!
|
58
ily433664 2019-03-15 11:25:34 +08:00
@Raymon111111 规范里的“强制”是指,你遵守规范的前提下,请搞清楚前后的因果关系
|
59
Raymon111111 2019-03-15 11:48:51 +08:00
|