以前发过一系列有关 GitHub 的文章,有同窗问了,GitHub 我大概了解了,Git 也差很少会使用了,可是仍是搞不清 GitHub 如何帮助个人工做,怎么提高个人工做效率?java
问到点子上了,GitHub 其中一个最重要的做用就是发现全世界最优秀的开源项目,你没事的时候刷刷微博、知乎,人家没事的时候刷刷 GitHub ,看看最近有哪些流行的项目,长此以往,这差距就愈来愈大,那么如何发现优秀的开源项目呢?这篇文章我就来给你们介绍下。python
GitHub 主页有一个相似微博的时间线功能,全部你关注的人的动做,好比 star、fork 了某个项目都会出如今你的时间线上,这种方式适合我这种比较懒的人,不用主动去找项目,而这种基本是我天天获取信息的一个很重要的方式。不知道怎么关注这些人?那么很简单,关注我 stormzhang ,以及我 GitHub 上关注的一些大牛,基本就差很少了。android
点击下图的 Explore 菜单到“发现”页面ios
紧接着点击 Trending 按钮git
这个 Trending 页面是干吗的呢?直译过来就是趋势的意思,就是说这个页面你能够看到最近一些热门的开源项目,这个页面能够算是不少人主动获取一些开源项目最好的途径,能够选择「当天热门」、「一周以内热门」和「一月以内热门」来查看,而且还能够分语言类来查看,好比你想查看最近热门的 Android 项目,那么右边就能够选择 Java 语言。程序员
这样页面推荐你们每隔几天就去看下,主动发掘一些优秀的开源项目。github
除了 Trending ,还有一种最主动的获取开源项目的方式,那就是 GitHub 的 Search 功能。面试
举个例子,你是作 Android 的,接触 GitHub 没多久,那么第一件事就应该输入 android 关键字进行搜索,而后右上角选择按照 star 来排序,结果以下图:算法
若是你是学习 iOS 的,那么不妨一样的方法输入 iOS 关键字看看结果:shell
能够看到按照 star 数,排名靠前基本是一些比较火的项目,必定是颇有用,才会这么火。值得一提的是左侧依然能够选择语言进行过滤。
而对于实际项目中用到一些库,基本上都会第一时间去 GitHub 搜索下有没有相似的库,好比项目中想采用一个网络库,那么不妨输入 android http 关键字进行搜索,由于我只想找到关于 Android 的项目,因此搜索的时候都会加上 android 关键字,按照 star 数进行排序,咱们来看下结果:
能够看到 Retrofit、OkHttp、android-async-http 是最流行的网络库,只不过 android-async-http 的做者不维护了,以前不少人问我网络库用哪一个比较好?哪怕你对每一个网络库都不是很了解,那么单纯的按照这种方式你都该优先选择 Retrofit 或者 OkHttp,而目前绝大部分 Android 开发者确实也都是在用这两个网络库,固然还有部分在用 Volley 的,由于 google 没有选择在 GitHub 开源 volley,因此搜不到 volley 的上榜。
除此以外,GitHub 的 Search 还有一些小技巧,好比你想搜索的结果中 star 数大于1000的,那么能够这样搜索:
android http stars:>1000
固然还有其余小技巧,可是我以为不是很重要,就很少说了。
有些人若是习惯用 Google 进行搜索,那么想搜索 GitHub 上的结果,不妨前面加 GitHub 关键字就ok了,好比我在 google 里输入 GitHub android http ,每一个关键字用空格隔开,而后搜索结果以下:
能够看到,基本也是咱们想要的结果,只不过排序就不是单纯的按照 star 来排序了。
相信以上三种方法够你们遨游在 GitHub 的海洋了,最后给你们献上一些福利,这些项目是 GitHub 上影响力很大,同时又对大家颇有用的项目:
这个项目目前 star 数排名 GitHub 第三,总 star 数超过6w,这个项目整理了全部跟编程相关的免费书籍,并且全球多国语言版的都有,中文版的在这里:free-programming-books-zh,有了这个项目,理论上你能够获取任何编程相关的学习资料,强烈推荐给大家!
俗话说,不会用 shell 的程序员不是真正的程序员,因此建议每一个程序员都懂点 shell,有用不说,装逼利器啊!而 oh-my-zsh 毫无疑问就是目前最流行,最酷炫的 shell,很少说了,懂得天然懂,不懂的之后大家会懂的!
GitHub 上有各类 awesome 系列,简单来讲就是这个系列搜罗整理了 GitHub 上各领域的资源大汇总,好比有 awesome-android, awesome-ios, awesome-java, awesome-python 等等等,就不截图了,大家自行去感觉。
GitHub 的使用有各类技巧,只不过基本的就够咱们用了,可是若是你对 GitHub 超级感兴趣,想更多的了解 GitHub 的使用技巧,那么这个项目就恰好是你须要的,每一个 GitHub 粉都应该知道这个项目。
这个项目是我一个好朋友 Trinea 整理的一个开源项目,基本囊括了全部 GitHub 上的 Android 优秀开源项目,可是缺点就是太多了不适合快速搜索定位,可是身为 Android 开发不管如何大家应该知道这个项目。
这个项目跟上面的区别是,这个项目只整理了全部跟 Android UI 相关的优秀开源项目,基本你在实际开发终于到的各类效果上面都几乎能找到相似的项目,简直是开发必备。
这个项目是个人邪教群的一位管理员整理的,几乎包括了国内各类学习 Android 的资料,简直太全了,我为这个项目也稍微作了点力,强烈推荐大家收藏起来。
这个就很少说了,以前给你们推荐过的,国内一线互联网公司内部面试题库。
这是一份很是详细的面试资料,涉及 Android、Java、设计模式、算法等等等,你能想到的,你不能想到的基本都包含了,能够说是适应于任何准备面试的 Android 开发者,看完这个以后别说你还不知道怎么面试!
GitHub 上优秀开源项目真的是一大堆,就不一一推荐了,授人以鱼不如授人以渔,请你们自行主动发掘本身须要的开源项目吧,不论是应用在实际项目上,仍是对源码的学习,都是提高本身工做效率与技能的很重要的一个渠道,总有一天,你会忽然意识到,原来不知不觉你已经走了这么远!
出处:微信公众平台: AndroidDeveloper「googdev」