在饭局上,老程序员和我分享的几个GitHub开源项目的Tips
Posted Spuer_Tiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在饭局上,老程序员和我分享的几个GitHub开源项目的Tips相关的知识,希望对你有一定的参考价值。
前言
前两天,我和一个8年python工作经验的老程序员吃了顿晚饭,然后他给我分享了几个GitHub开源项目的Tips,后来经过查阅网上的资料,整理成此文。本文主要包括开源项目的精确搜索
,github项目源码的在线阅读的技巧
,跟踪github热门项目的趋势动态
,以及如何源码阅读
和在开源项目中做出贡献的建议。
文章目录
1.关于开源项目的精准搜索
关于开源项目的精准搜索,通过更加细化的搜索条件,能够更加精准地找到我们“心仪”
的项目源码,下面是用法的总结:
用法 | 解释 |
---|---|
in:name xx | 搜索仓库名称包含"xx"的仓库 |
in:description xx | 搜索仓库描述包含"xx"的仓库 |
in:readme xx | 搜索仓库readme文件包含"xx"的仓库 |
fork/stars: >=3000 xx | 搜索仓库fork/star数大于等于3000且与"xx"相关的仓库 |
size:>=5000 xx | 搜索仓库磁盘占用空间大于等于5000kB=5MB且与"xx"相关的仓库 |
pushed:>2019-01-03 xx | 搜索仓库更新时间在2019-01-03之后且与"xx"相关的仓库 |
license:apache-2.0 xx | 搜索仓库使用apache-2.0协议且与"xx"相关的仓库 |
language:java xx | 搜索仓库使用java编程语言且与"xx"相关的仓库 |
user:joshlong xx | 搜索仓库的用户名称为joshlong且与"xx"相关的仓库 |
点击这里->参考链接:你真的知道如何在 GitHub 上高效搜索开源项目吗?
2.关于github上开源项目在线阅读的技巧
就在你想要在线阅读的仓库的域名后添加"1s",一键开启新世界的大门:
3.关于如何跟踪github热门项目的动态趋势的建议
这里推荐一个近乎于完美的 GitHub 中文排行榜,在这里,所有优秀的高分项目都有,而且做出了排行! 关于该项目,作者是 kon9chunkit,GitHub 中文排行榜,帮助你发现高分优秀中文项目、更高效地吸收国人的优秀经验成果;榜单每周更新一次,敬请关注!
跟踪优质的github开源项目的站点推荐ヽ(•ω•。)ノ,向下看↓。
站点名称及链接 | 相关介绍 |
---|---|
GitHub Trending | 是来自于 GitHub 官方的项目趋势列表,一些 Star 增长比较快的项目会在这里出现。开发者可以针对不同编程语言进行过滤筛选,是个挖掘优质项目的好渠道。 |
GitHub Topic | GitHub 正在慢慢优化项目的信息分类,让一些优质开源项目得到更有针对性的推送。早期大部分开发者都是 Trending 或关注的人的动态来了解一些开源项目,但这样的曝光量显然对一个新启动的开源项目不太友好,因此后续 GitHub 应该会推出一些更为丰富的渠道,让大家可以更好的挖掘一些优质的开源项目。 |
Hack News | 技术人常逛的一个网站,著名 YC 创始人 Paul Graham 搞的,也是不少优质开源项目的起源地。不少开发者会时常上去推荐自己的开源项目,说不定你现在在用的某个开源项目,可能一开始就是通过这个渠道被人知晓,然后慢慢发展壮大的。 |
Changelog | 这个渠道可能知道的人相对来说会少一些,但是质量却很高,很多开源项目在不为人知的时候就已经有出现在这里了,Changelog 的 nightly 邮件我订阅了多年,有时闲着无事我就会去挨个翻出来看一看。 |
这里免不了还是要谈到 Reddit 这个大杂烩网站,上面的 opensource 主题也有不少优秀的开源项目,但是因为 Reddit 上面主题繁多,其本身也不是针对开发者的垂直网站,因此更新的频率会低一些。 | |
Git Hunt | 一个开源的 Chrome 插件,把你 Chrome 的 Tab 页转为 GitHub 开源项目的推荐页,我是这个插件的重度用户,装了好几年,从来没卸载过,自认为是开发者必装浏览器插件之一。有时候用 Chrome 搜东西的时候,⌘+T 常常会给我意向不到的惊喜。 |
4.关于如何阅读github项目源码的建议
Tips—1:写注解
写注解是在阅读代码中最重要的一个步骤,在我们阅读的源代码一般来说是我们不熟悉的系统,阅读别人的代码一般会有几个问题:
搞明白别人的编程思想不是一件很容易的事情,即使你知道这段程序的思路的时候也是一样。
阅读代码的时候代码量一般会比较大,如果不及时写注解往往会造成读明白了后边忘了前边的 现象。
阅读代码的时候难免会出现理解错误,如果没有及时的写注解很难及时的发现这些错误。
不写注解有时候你发生你很难确定一个函数你时候阅读过,它的功能是什么,经常会发生重复阅读、理解的现象。
写注解的核心思想如下:
- 猜测的去写,刚开始阅读一个代码的时候,你很难一下子就确定所有的函数的功能,不妨采用猜测的方法去写注解, 根据函数的名字、位置写一个大致的注解,随着对项目源码的深入理解,不断地调整注解。
- 在核心代码段要写较为详细的注解,有一些函数或类在程序中起关键的作用,那么要写比较详细的注解。这样对你理解代码有很大的帮助。
Tips—2:学会重复阅读
- 一次就可以将所有的代码都阅读明白的人是没有的。至少我还没有遇到过。 反复的去阅读同一段代码有助于得代码的理解。 一般来说,
在第一次阅读代码的时候 你可以跳过很多一时不明白的代码段,只写一些简单的注解,在以后的重复阅读过程用,你对代码的理解会比上一次理解的更深刻,这样你可以修改那些注解错误的地方和上一次没有理解的对方
。一般来说,对代码阅读3,4次基本可以理解代码的含义和作用。
Tips—3:运行并修改代码
- 如果你的代码是可运行的,那么先让它运行起来,用单步跟踪的方法来阅读代码,会提高你的代码速度。 代码通过看中间变量了解代码的含义,而且对 以后的修改会提供很大的帮助。关于如何进行断点调试,请参考这篇博文:全网最实用的 Debug调试技巧汇总,以及这篇博文:Pycharm教程–断点调试。
- 用自己的代码代替原有代码,验证自己的猜想,但在之前要保留源代码。 600行的一个函数,阅读起来很困难,编程的人不是一个好的习惯。在阅读这个代码的时候将代码进行修改,变成了14个函数(每一个大约是40-50 行左右)。
点这里->参考链接:如何有效阅读Github上开源项目代码?
5.关于如何在github开源项目中做出贡献的建议
如何找到那个你想贡献的项目?
在面对开源项目时,先端正态度。
要参与到开源,就必须成为那个能发现或解决问题的人。 找到那个你感兴趣的项目,从点滴小事做起,修复文档的无效链接和错别字是参与开源,发现问题并详述、复现问题也是参与开源。
28% 的贡献工作
来源于对项目文档的优化,如更正错别字、优化排版、提交翻译。
当你这样->
“这项目有个地方错误处理没写好,我看看代码...嗯,就是个智障问题,顺手PR一波…”
“这项目怎么连Xxx都不支持…我看看咋整…嗯,做出来了,顺手PR一下…”
“你这项目怎么不开源?不开源就是原罪啊!所有项目都应该AGPLv3!所有人都应该加入FSF,给自由软件打钱”
然后,继续保持前面那种精神,再加上『不重复造轮子所以尽量用开源社区写好的代码』,多写代码,你应该就能变成一个优秀的贡献者。
除此之外,你可以通过下面的这些渠道,来发现你感兴趣开源项目。
- GitHub Explore
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- Contributor-ninja
- First Contributions
如何提交贡献?
为了更加高效的沟通与合作,请确保在你进行提问或提交 PR 的时候,做到了以下几点:
给定上下文,别没头没尾
提前做好准备工作
提前阅读相关文档与资料
说话简明扼要
尽量让沟通信息公开透明
提问时请保持耐心
尊重社区的决定
最重要的是,保持高雅
做到上面几点后,你还需要搜索项目 issue、README、stackoverflow 等渠道,确保问题未被其它人修复。最好,通过以下几种方式来提交贡献:
GitHub issue - 发起提问,进行讨论
GitHub pull request - 提交解决方案
其它渠道 - Stack Overflow、IRC、Slack
提问的时候,为了减少双方沟通的时间,请使用最为高效直接的提问方式。推荐阅读:点这里->参考链接:提问的智慧
在你参与贡献之后
每个人在一开始参与贡献时,内心都较为忐忑。一般在你参与贡献后,会发生以下几种情况:
1)没有得到任何反馈
首先,确保你提前核对过项目的各种情况,具体可查看该 核对清单。
如果一切都正常,可在一周后尝试联系项目相关人员,询问具体情况。
2)有人更改了你的贡献
在你得到相关通知后,出于礼貌与高效沟通,请及时给出反馈。因为他人可能花了不少时间来审核你的问题 / 代码,然后发起的更改提交。
如果你没有时间处理他人提交的更改,也请提前告知提交者与项目维护人员,找到一个可以接手并处理该问题的人。
3)你的贡献未被接受
这种情况很正常,一般作者也都会说明未被接受的具体原因。如果没有,可以在项目的相关讨论帖下询问作者具体原因。
4)你的贡献被接受了
恭喜你,你作出的贡献真真切切帮到了其他人。希望后面接着坚持,请记住,千里之行始于足下。
以上是关于在饭局上,老程序员和我分享的几个GitHub开源项目的Tips的主要内容,如果未能解决你的问题,请参考以下文章
硬核! Github上 ,star超高的Java 开源项目分享给你!