关于github一点小知识

GitHub 越来越有名,很多同学都把它作为一个关键字加入自己的简历当中。不过我在面试中,问到如何使用 GitHub,对方通常会答复:上去看源码呀!这个答案完全无法让我满意,接下来我想简单谈一下,我认为应该如何使用 GitHub。

Issues 和 PR

一个 GitHub 仓库可不仅仅是一份源代码那么简单。GitHub 是开发者社交平台,所以每个项目在代码之外,都会有两个非常重要的模块:

  1. Issues 问题,包括 Bug,和其它使用者希望有的功能
  2. Pull Requests(PR) 其他的开发者在这个项目上做出了一些改进,或者修复了一些 Bug,希望能够合并到 master 当中,就会发起 PR

完美的代码是不存在的,越是用的人多的库,存在的问题,或者说被发现的问题可能就越多。阅读其他人提的问题,很多时候可以获得不小的收获,比如,大家开发时都遇到了什么问题?有没有与我类似的情况?他们是怎么解决的?大家最想要的新功能是什么?有哪些值得关注?我能做什么?等等。

以及,可能是更重要的,我们应该怎么样通过 Issues 与仓库的原作者进行交流。

毕竟我们每个人的时间都是有限的,对于大部分开源的类库来说,了解怎么用、有哪些问题、怎么避免踩坑,通常会比你知道它某个函数是怎么写的更有价值。

看文档

好的开源类库通常还会有一个做得非常到位的地方,便是它们的文档,做得通常详尽有价值。通过阅读文档,可以很快的了解这个仓库是干嘛用的,应该怎么用,能解决哪些问题,以及接下来,它的发展方向是怎样的。

据我观察,文档通常分布在三个地方:

  1. README.md,也就是打开仓库页面,默认渲染在文件列表下面的那块
  2. 官方网站,通常在导航下方,仓库简介那里
  3. wiki,通过导航链接可以到达

观察提交频率

并不是所有的仓库,都有开发者在进行积极地开发和维护。如果搜索到几年前的文章,被导引到一些比较古老的仓库,可能出于某种原因,已经没人对它进行维护了,这个时候,该放弃就要放弃。

人生苦短,时间有限,总会有更具价值的仓库供我们学习。

GitHub 热门趋势

GitHub 还有一个热门趋势页面,从中你可以了解到全世界的开发者都在关注哪些仓库,你可以把自己感兴趣的那些加星标记一下,将来不定时的翻一翻看一看它的 Issue、PR 和文档,通常都会有不小的收获。

GitHub Pages

GitHub 还提供给我们一个非常好的静态网站空间,完全免费,全世界都有 CDN,不用白不用。便是传说中的 GitHub Pages。

我们可以用它写博客,做笔记,重点是内容完全可以进行版本管理。

具体做法请自行 Google。

不要放弃提交自己的仓库,也应积极向别的开发者提出 Issue 和发起 PR

我觉得这件事和写博客一样,如果你只是在纸上记笔记给自己看,那多半会不求甚解;但是你想到写成博客总会有人看到,那多半还是会把要写的内容搞清楚,写全面,逻辑清晰可自洽。所以写博客是比记笔记更好的学习方法。以此类推,把自己的仓库推到 GitHub,也理应也是比在本地练习更好的学习方式。

这里绝不鼓励大家乱来,相反,我希望大家对自己的行为负责,重视 Issue 和 PR,毕竟都是提给其他开发者的,或多或少都会对别人造成影响。所以在提之前,十分有必要阅读仓库主人的提交须知,按照对方的代码规范书写代码,写好相关测试,然后再提交。做到言之有物,切不可乱来画猫。


总结

这篇文章不是传授大家应聘技巧的,而是希望分享自己的一些经验,让大家能够通过 GitHub 这个世界上最大的代码托管平台,正确的学习开发技巧。

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2017-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

从15000个Python开源项目中精选TOP30,GitHub平均star为3707,赶紧收藏!

参与 | SuiSui 继推出 2017年机器学习开源项目Top 30榜单 后,Mybridge AI又推出了一个Python开源项目Top 30榜单,包括开源...

2199
来自专栏恰同学骚年

Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

  本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖,如图1所示。

1002
来自专栏BestSDK

Google发布Nearby Connections API 2.0版本,可拓展本地信息和数据分享

关注过 I/O 2017 开发者大会的网友们,或许还记得 Google 提到过的“情境应用体验”(Contextual App Experiences)。这组 ...

3004
来自专栏媒矿工厂

视频传输延迟分析及解决方案:CMAF、LHLS

使用在线流媒体平台做直播时,实时体验至关重要:看世界杯时,您还边正在聚精会神地盯着C罗的金刚腿等着罚球,隔壁老王就传出进球欢呼声,您肯定无比郁闷。视频播放领域的...

9334
来自专栏每日一篇技术文章

教你如何制作APP 赚钱

1.识别图片中多张人脸的年龄 2.有分享功能 3.用评分功能 4.投放Google广告

3261
来自专栏程序人生 阅读快乐

Linux性能优化大师

性能调优有时被称为“黑色艺术”,因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特...

1191
来自专栏Debian社区

使用 Go 语言的三个原因

几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 ...

833
来自专栏有趣的Python和你

Django开发之简书推荐作者可视化

折腾了几天,终于完成了第一个web开发项目,其中乐趣多多,坑也是巨多,听我娓娓道来之前,按例给大家上网站链接:

662
来自专栏Android 开发者

app 里的 A/B 测试简介

3163
来自专栏Astropeak

软件设计---高层设计(一):共性可变性分析和分析矩阵

1011

扫码关注云+社区