前情提要: 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 ![]() 你发高烧了吧………… |
![]() | 3 blindpirate OP ![]() @pabupa 我刚数了一下我迄今为止已经在 GitHub 上提交了 365 个 PR 了,可能发了 365 次高烧吧。 |
![]() | 4 mswlander 2019-03-14 07:51:59 +08:00 via Android ![]() 工作量不够饱和。。。 |
5 skd918 2019-03-14 07:57:55 +08:00 via Android 你气量可真够可以的 |
![]() | 6 KinneyZhang 2019-03-14 08:00:47 +08:00 ![]() 意思是阿里自己的项目代码没有遵守自己的规范?有点滑稽^o^ |
![]() | 7 PALELESS 2019-03-14 08:12:18 +08:00 via Android ![]() 这不算为开源做贡献,这算杠,写代码的人八成很感谢你来修人家的代码 |
![]() | 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 ![]() 这很正常,这在开源中很正常,无论是在国内还是国外都很正常。 当年那个给我项目提 pep8 的,人家现在已经是 CTO 了。 |
![]() | 15 yhxx 2019-03-14 09:50:21 +08:00 ![]() @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 ![]() 挺好的啊 既然阿里自己出了规范, 那么就应该觉得这个规范是好的. 如果开源项目不用遵守这个规范, 说明规范有提高的空间 无论是哪个角度, 都有提高的空间 |
![]() | 23 HongJay 2019-03-14 15:24:19 +08:00 大气量。支持楼主一楼艾特 pp ( dog ) |
![]() | 24 lovelive1024 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 ![]() 看见 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 div class="badge op">OP 2019-03-14 22:24:46 +08:00 ![]() @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 ![]() 那个… 楼主在 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 tL28Qt7jS56Yy8F9 2019-03-14 23:46:47 +08:00 ![]() 坐等理学家,高级软件工程师,语言学家和礼仪学家 PP 出现。 后排支持楼主。 BTW,自己觉得有意义的事自己去做就行了,用不着和别人争执,一件事是否有意义取决于双方的能力,个人状况,阅历和价值观种种因素,有分歧很正常,如果引起争执就很没有必要了。 |
40 David1119 2019-03-14 23:48:00 +08:00 ![]() |
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 ![]() 勿以恶小而为之,勿以善小而不为。 如楼主所说,改 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 lovelive1024 2019-03-15 11:25:34 +08:00 @Raymon111111 规范里的“强制”是指,你遵守规范的前提下,请搞清楚前后的因果关系 |
59 Raymon111111 2019-03-15 11:48:51 +08:00 |