卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/09:20
登录|注册

第14期 | GitHub颠覆了编程世界吗?

讲述:池建强大小:8.56M时长:09:20
你好,这里是卖桃者说。
最近我们聊了不少编程相关的话题,而谈起编程和程序员,就不得不说 GitHub。GitHub 差不多是程序员最喜欢的网站和服务之一,因此也被戏称为全球最大的同性交友网站。它的 Logo 是一个猫咪和章鱼的混合体,有的程序员还设计了很多 Logo 变体,非常有趣,事实上,GitHub 已经在程序员群体形成了一种独特的文化。
目前,全球绝大部分开源项目都托管在 GitHub 上,包括 Linux、VS Code、OpenStack、Docker、React、Vue、OpenResty、TensorFlow 等重量级项目。
我们简单来看一组数据就能明白它的影响力了:
GitHub 在 2018 年 10 月份发布的年度 Octoverse 观察报告显示,GitHub 上的开发者已经超过 3100 万,其中
2018 年增加了 800 万新用户,比以往 6 年增加的总数还要多。GitHub 上目前有 210 万个组织,管理的代码仓库超过 9600
万个,这两个数据都比 2017 年增加了 40%。
另外,过去的一年里,GitHub 上的开发者共提交了 11 亿次有效贡献,社区协作贡献的程度是前所未有的,项目数量也远超往年。
这些数据展示了技术的生命力和开发者旺盛的创新精神。不客气的说,其他代码托管平台都绑一起,也打不过 GitHub 一个。
值得一提的是,GitHub 上的中国用户数和代码贡献量从 2015 年超过英国之后,一直维持在第二名的位置,仅次于美国。可以看出随着国内开源的项目越来越多,质量越来越高,使用 GitHub 的中国组织和个人用户正在不断增长。
世界上就这么多开发者吗?并不是。想想你们自己,有多少人有自己的 GitHub 账户呢?又有多少人提交过代码呢?多少人创建了自己的项目呢?如果你是 GitHub 用户,欢迎留言讲述你的故事。
很多人最初接触 GitHub 会以为这是个 Git 仓库的网络公开版本,实际上 GitHub 和 Git 完全是两码事,Git 是类似 CSV 或 SVN 的代码版本管理工具,而 GitHub 提供的是服务能力,除了代码托管,GitHub 还提供了一系列协作功能,帮助开发者或开发团队实现高效率高品质的代码编写。除了开源项目,很多著名的企业都在基于 GitHub 的企业版研发和管理自己的产品和服务。
不夸张的说,GitHub 的出现,以及它所践行的“社会化编程”的宗旨,让现代世界的软件开发发生了翻天覆地的变化,说是一场革命也不为过。很多复制 GitHub 的产品最终都败走麦城,很大程度上都是因为它们不具备社会化编程的特质,或者没有将其贯彻到底。
去年 GitHub 被微软收购后,依旧保持了开发者至上的风格、独立运营的立场以及社会化编程的特性。
在 GitHub 之前,出现过很多协作软件。程序员们虽然“文人相轻”,每次有编程语言之争就冲上去和别人打的灰头土脸满地找 Bug,但在工具方面却不会亏待自己,他们开发出了各种各样的版本管理软件、Bug 跟踪系统、代码审查工具、邮件讨论组、即时通讯工具等等,为了完成一次良好的协作,程序员们把这些工具组合起来依次使用,其难度系数相当于跳水向后翻腾一周半转体三周半。
不是有个段子么,当产品经理过来询问“上周提的一个 Bug 怎么还没修复”的时候,程序员们自豪的说:“我们还在邮件组里讨论由谁来修复”。
GitHub 的出现解决了所有的问题,Git 完成代码托管,Issue 用来进行 Bug 跟踪和管理,Pull Request 实现了协作开发、Code Review 和交流功能,Wiki 和 扩展的 Markdown 格式 GFM 可以编写优雅的开发文档……
GitHub 服务的出现,为开源世界带来了社会化编程的概念,这个概念影响了全世界众多程序员和技术团队。什么是社会化编程呢?就是在自由、开源、民主的环境下,一群陌生的程序员通过网络和协作的方式共同开发和维护一个软件产品。
真正有生命力的开源软件都是基于社会化编程的方式构建出来的。另外,现在越来越多的大公司把自己的一些代码放到 GitHub 上,也许是真的为了拥抱开源,也许只是因为 KPI,但不论如何,GitHub 都是他们的第一选择。
那 GitHub 是如何实现这种社会化编程的模式呢?这里就必须说一说 Pull Request 了。
Pull Request 采用了一种精巧的设计,让开发者实现了真正的代码对话:Talk is cheap, show me the code。
很多开发者把 GiuHub 当 Git 用,在账户里建个仓库扔些代码就以为是开源了。如果你没用过 Pull Request 与别人协作过,也没有 Merge 过别人的代码,那就不是个真正的 GitHub 程序员。
什么是 Pull Request 呢?举例来说,比如你写了一篇论文,想找人做 Review,你保留了原本,他拿走了副本进行修改。这里的原本就是仓库,拿走副本的行为就是 Fork,然后人家基于副本进行修改和批注,叫 Commit,最后把修改好的副本提交给你,这就是一次 Pull Request。你根据副本内容修正原本,这叫 Merge。
程序员们常常管 Pull Request 叫做 PR。一次完整的 PR 过程是这样的:
你在使用或参与一个开源项目,想要开发功能或修复 Bug,首先要 Fork 这个项目的仓库,然后通过 Clone 命令得到一份本地代码。
创建特性分支,编写代码增加功能或修复 Bug 并进行 Commit。
发起 Pull Request 给原仓库请求合并。
开发者们可以基于这个 Pull Request 分宾主落座,并进行气氛友好祥和的交流,比如“你改错了,你没改对,你代码这么烂还想 Merge,做梦去吧”等等。
如果你竟然改对了,原仓库管理员就会把你的代码 Merge 到他的项目里,你就成为了这个项目的贡献者之一。你编写的代码就有可能被全世界的程序员使用,这是社会化编程最大的乐趣之一。
GitHub 的 Pull Request 不但能够轻松查看代码的前后差别,还可以针对每一行代码进行评论和交流,细节一览无余。Code Review 变成了一件充满乐趣的事情,同时开源代码质量也最大程度的得到了保障。
PR 的设计为工程师的协作带来了革命性的变化,这种影响不止在开源世界,很多企业开发自己的商业化产品和服务都采用了这种方式,并做出了惊人的商业成就。
所以,一个优秀的开源项目不仅仅要看它的 Star 数,还要看有多少活跃的 Issue 和多少次 PR。
总的来说,GitHub 提供了一种更为开放和自由的编写代码和协作方式,同时,因为它在程序员中的巨大影响力,一个好的 GitHub 账号可以像成功的项目那样成为技术人的名片。现在不少公司都会在招聘时表示有 GitHub 项目是一个加分项。
那要怎么用好 GitHub,同时打造好自己的 GitHub 账号呢?这个话题展开又是一篇文章了,如果你感兴趣的话,可以留言告诉我。当然 ,你也可以在留言区分享给大家,你是怎么使用 GitHub 的。
好,今天的话题我们就先聊到这儿。卖桃者说,明天见!
(编辑:成敏) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(23)

  • 最新
  • 精选
  • youaresherlock
    @池老师 老师,现在互联网寒冬好明显,入职门槛提高了好多,你怎么看2019年寒冬?它好像比任何一年都强烈? 现在找15k,python web初级开发要熟悉django flask等等,还有熟悉linux后台开发,需要会vue,寒冬很明显,要求太高了,找的我吐了

    池建强回复: 这个时间会持续一整子了,建议好好学习极客时间

  • 迷羊
    Github只用来把自己本地的代码提交上去,或者又不会写的代码在上面找例子。

    池建强回复: 你看你这就不是社会化编程,用得不好啊

    2
  • 250ZH
    虽然注册了账号,但是不知道怎么用好。公司的项目不能上传,自己又没有什么项目可传,不知道应该如何用好GitHub
    1
    13
  • 怪盗キッド
    Hi,我利用ASM写了一个高性能、低消耗且无侵入的 Java 性能监控工具 MyPerf4J,通过 JavaAgent 方式对 Java 方法进行字节码注入,可以统计出方法的执行性能指标,包括 RPS、Avg、Min、Max、StdDev、 TP50、TP90、TP99、TP999 等;同时也支持 JVM 监控,包括 Thread、GC、Memory 和 ClassLoad。 GitHub 地址:https://github.com/LinShunKang/MyPerf4J
    11
  • 德育处主任
    极客时间就有一套github教程呀,卖桃是不是忘打广告了😂
    6
  • youaresherlock
    作为一个刚毕业小白,在2016年左右注册github,近一年基本把格子填了满,不管写了什么都会传到github上,哈哈,看着一篇深浅不一的绿色很自豪也很无奈。 身边哪怕是好多高级开发者也可能真的没有参与过比较有名的开源项目合作。 使用github真的可以看出一个人的水平,基本 路线是从注册----学习git,desktop使用----提交自己的demo-----提交自己的项目(不足万行代码小项目-----这个过程可能持续很长时间,比如你可能会读linux,openjdk,sqlachemy,tornado源码,这个过程可能好几年,因为你不具备参与项目的能力,只是打酱油的参与----参与小中项目-----和大牛做一些知名框架----这时候你基本已经40左右了,可能45以上,在技术行业有一定话语权 当然本人的眼界有限,说的不一定准,只是以我个人和所见所闻这样理解的。我现在菜慢慢开始看源码了,嘛也,啥都不会。。。。。。。。。。
    4
  • 吃草🐴~
    我对 Github 的使用可能也就仅限于注册了账号吧,嘿嘿,目前是没有贡献的。之前公司老古董,用的 csv,新公司用的 GitBucket,也仅仅会使用 Git 的一些常用指令。有空会在 Github 上 download 点例子研究。学习为主。
    3
  • 匠心零度
    Github搜索不错,特别看看排名的,了解一些最近比较热能的!
    3
  • coder
    最近除了华为手机android系统事件,就是GitHub 受控,池大可以聊一下这个事情🌝🌝🌝
    2
  • mai
    Go 夜读,一个学习型组织已在 GitHub ,不单单是学习,而且也是让大家参与熟悉开源项目的协作流程,欢迎大家来参与。
    2
收起评论
显示
设置
留言
23
收藏
96
沉浸
阅读
分享
手机端
快捷键
回顶部