重磅!GitHub 上的顶级项目都是做什么的?

作者 | Angry Bugs

来源 | http://bit.ly/34Q9bJW

前一阵看到同事在用一个名叫 AirFlow 的工具,而我竟然素未耳闻,一番搜索之后发现这个 工具是 Apache 的顶级项目,而且在 GitHub 上有 1w+ 的 Star。

震惊之余,感觉有必要把 GitHub 上常用工具捋一遍,以避免以后发生重复造轮子的情况。计划是把 GitHub 上 5k+ Star 的项目都知道是做什么用的,每周看 50 个。

下面是本周记录:

教程资源类

  1. freeCodeCamp/freeCodeCamp

    免费代码训练营

  2. EbookFoundation/free-programming-book

    免费编程图书

  3. sindresorhus/awesome

    awesome 列表的列表。这个项目起源于某个人做了一个 awesome-php 的 php 优质资源 列表,然后大家就做了 awesome-python,awesome-vue 等各种列表,这个项目又把 各种 awesome 列表收集了起来。

  4. gzc426/Java-Interview/

    国人编写的计算机基础教程,中文

  5. jwasham/coding-interview-university

    面试考点总结

  6. h5bp/Front-end-Developer-Interview-Questions

    前端工程师面试问题

  7. vinta/awesome-python

    Python 的一些优质资源。前面提到的 awesome 系列列表,不再赘述

  8. airbnb/javascript

    Airbnb 的 js 编码规范,值得参考。

  9. github/gitignore

    GitHub 提供的各种项目的 gitignore 文件模板,省了自己写了

  10. getify/You-Dont-Know-JS

    前端(JS)的一些坑的总结

  11. vuejs/awesome-vue

    Vue 的一些优质资源。awesome 系列,不再赘述。

前端 UI 框架 / 库

  1. twbs/bootstrap

    Twitter 推出的前端 UI 框架,有网格系统和各种组件,曾经常年在 GitHub 上排名第一,可以说是后端工程师画界面的利器。竞品:Semantic UI, pure-css

  2. FontAwesome/Font-Awesome

    字体和图标库,可以使用 SVG 和字体等等多种格式。

  3. ant-design/ant-design

    蚂蚁金服出的  react/vue  组件库,去年的  “圣诞彩蛋”  就是这个库搞得。主要提供 React 的组件库,用于企业中后端的后台的建设。

    关于 React/Vue 和前端的组 件化是一个很有意思的话题,可以查阅相关资料。它和 Bootstrap 等的区别在于,Bootstrap 更偏向于 UI 方面,是 CSS 框架,而 antd 则是完整的包括 UI 和功能在内的 React 组件。可以理解为 Bootstrap 只做了 “皮”, 而 antd 是 “皮” + “骨”。

  4. Semantic-Org/Sematic-UI

    和 Bootstrap 类似的一个组件库。Semantic UI 更强调使用语义化的 class 来定义样式。

  5. google / material-design-icons

    Google 推出的 Material 风格图标库。

  6. daneden/animate.css

    CSS 动画效果库。

大前端框架和库

  1. vuejs/vue

    Vue 是国人推出的一个前端框架,可以通过写不同的 Vue 组件来组成一个完整的应用, 支持服务端渲染(SSR)。和 React 一样,Vue 也使用了 Virtual-DOM 技术来提高性能。

  2. facebook/react

    facebook 推出的一个前端框架,特点是每个组件的 HTML/JS/CSS 组合在一起,使用 Virtual-DOM 渲染。在 React 出现之前,前端框架普遍采用了后端广泛使用的 MVC 模式,强调 HTML/JS/CSS 三者要分离,而 React 则反其道而行之,强调从组件构建, 可以说 React 的出现是前端界的一场革命。

  3. facebook/react-native

    使用 React 的语法来构建 native app,注意这里并不是使用一个 iOS 或者 Android 的 WebView 中嵌套了一个 webapp,而是直接使用 JS 来操作原生组件。

  4. angular/angular.js

    Google 推出的前端框架,没用过

  5. reactjs/redux

    react.js 的一个组件,用来管理数据。

  6. meteor/meteor

    前几年火过一阵,号称要统一前后端,然而我从来没搞明白到底是干啥的,如今热度已经大减了。HN 上甚至直接有人问 Is meteor.js dead?

  7. webpack/webpack

    用于打包前端资源。

  8. chartjs/Chart.js

    前端数据可视化组件。

  9. electron

    可以使用前端的工具链来编写桌面应用,同时能够跨平台。

  10. jQuery

    老牌的跨浏览器兼容库。随着浏览器的发展,现在使用 jQuery 的越来越少了。

  11. create-react-app

    用来构造 react app 的辅助工具。

  12. d3.js

    前端数据可视化组件。

后端工具

  1. elasticsearch

    使用 Java 编写的一个搜索工具,要实现全文搜索的话,选择 ES 就对了。

  2. moby

  Docker 的内核. Docker 可以让你打包应用的所有环境,像虚拟机一样隔离,但是又不像虚拟机 一样过多消耗资源。

  1. ReactiveX/RxJava

    TODO 一种编程模式,现在还不是很了解。

机器学习

  1. TensorFlow

    Google 推出的深度学习库,目前占主流地位。

语言

  1. Microsoft/TypeScript

    微软推出的一个 JavaScript 的超集。我们知道 JavaScript 是一个动态弱类型的语言, 这种特性在小项目上很方便,然而随着前端项目越来越大,强类型对于程序正确性的保证 就显得越来越重要了。TypeScript 重点就在于增强了类型,甚至名字都叫 TypeScript。强类型的语言是近年来语言的发展趋势,新语言诸如 Rust、Go、Swift 都是强类型的 语言。而一些老语言,比如 Python 也加入了 Type Hint 的功能来增强类型支持。

  2. Apple/swift

    Apple 推出的新语言,用来代替 Obj-C。

  3. golang

    Google 推出的编程语言。特点是通过 Goroutine 支持高并发。

  4. nodejs

    可以在服务器上运行的 js。

通用工具类

  1. hakimel / reveal.js

    使用 js 来做 PPT 的一个框架或者说工具

  2. GoogleChrome/puppeteer

    Google 推出的操作 Chrome 浏览器的 node.js API。可以用在自动化测试和爬虫等领域。官方 API 的推出基本上意味着第三方工具已经失去意义了。比如说 Phantom.js 直接宣 布停止维护了。

  3. atom

    GitHub 推出的一个代码编辑器。

  4. oh-my-zsh

    zsh 的增强组件集,可以让你的 shell 异常强大,建议刚学命令行的可以体验一下.

  5. vscode

    微软推出的代码编辑工具,目前占据了市场优势地位。

Web 框架

  1. rails

    Ruby 的一个 MVC 模式的 web 框架,当年可谓大红大紫,现在似乎热度有所衰减了, 可能是因为大家都不写 Web 应用了。

  2. expressjs

    Node.js 的一个 Web 框架。

  3. http://socket.io

    实现 WebSocket 的一个库,使用 node.js 编写。WebSocket 是在浏览器和服务器之间 实现全双工通信的一个协议。

  4. laravel

    一个比较现代的 PHP MVC web 框架,不过 PHP 这几年的热度衰减也很厉害,好多搞 PHP 的都直接转 Go 了。

内核

  1. torvalds/linux

    这个不用说了吧。评论里提到 Linux 的贡献者在 GitHub 上显示为正无穷,厉害了。

教程资源类

  1. jlevy/the-art-of-command-line

    命令行的基础教程,有中文翻译

  1. justjavac/free-programming-books-zh_CN

    免费中文编程书

  1. googlesamples/android-architecture

    Google 官方提供的 Android 应用架构例子

  1. sindresorhus/awesome-nodejs

    Nodejs 资源,awesome 系列,不再赘述。

  1. toddmotto/public-apis

    一些免费的公共 API,值得收藏。

前端 UI 框架/库

  1. moment/moment

    moment.js 是前端处理验证以及显示时间的一个库. 没想到这个功能这么常用啊,竟然能进 GitHub 前100。

  1. ElementUI/Element

    饿了么出品的 Vue 组件库

  1. google/material-design-lite

    Google 的 Material Design 的一个简化版,貌似现在不再支持了。

  1. Dogfalo/materialize

    Material 风格的前端 CSS 库

  1. callemall/material-ui

    Material 风格的 React 组件库

  1. necolas/normalize.css

    我们知道当不使用任何 CSS 的时候,HTML 页面在不同浏览器还是有略微不同的,这是因为浏览 器自带了一些样式,而 normalize 的意义就在于把这些样式统一起来。有人把它比喻成女生化妆的打底妆过程,可以说是非常形象生动了~

  1. zurb/foundation-sites

    类似 Bootstrap 的前端 UI 框架,貌似响应式支持更好一些。

大前端框架和库

  1. ionic-team/ionic

    使用 web 技术来编写移动应用的库. 和 React Native 相比可以说是两条不同的路子吧. Ionic 更加 web 一些。

  1. mrdoob/three.js

    前端的 3D 库. 可能需要一些基础的图形学知识才能用好。

  1. zeit/next.js

    基于 React 的一个框架. 前端不是很懂,不多说了. 关于现在的前端三大框架 React/Vue/Angular 可以阅读前文。

  1. nwjs/nw.js

    前身是 NodeWebkit,使用 web 技术来编写跨平台的桌面应用的工具。

  1. apache/incubator-echarts

    前端的一个显示饼图等示意图的库

  1. gatsbyjs/gatsby

    Gatsby.js 是一个基于 React 的静态网站生成器

  1. square/retrofit

    用于 Java 和 Android 的 HTTP 客户端

  1. AFNetworking/AFNetworking

    用于苹果系列系统的网络库

  1. babel/babel

    JavaScript 这些年的进化速度非常快,但是不能保证浏览器升级足够快,好多过时的浏览器还 有不少市场份额,但是你又想用新的语法,这时候就可以使用 babel,他可以帮你把新版本的 JavaScript 编译到老版本的浏览器支持的语法。

  1. square/okhttp

    Square 提供的又一个 Java 和 Android 的 HTTP 客户端。

  1. blueimp/jQuery-File-Upload

    jQuery 的文件上传插件

  1. gulpjs/gulp

    JS 的构建工具,有点类似于 C 语言的 make

  1. yarnpkg/yarn

    Facebook 出品的 Nodejs 包管理器,貌似有比官方的 npm 优秀的地方,不太清楚了。

  1. jashkenas/backbone

    老牌的前端框架了,现在用的人应该很少了

后端工具

  1. ansible/ansible

    Ansible 是一个用于部署,管理多台机器的工具. 和 Puppet 等工具不同的是,Ansible 不需要在被控机上安装任何 Agent,只需要能够 SSH 上去就行。Ansible 使用 Python 编写。

  1. google/guava

    Google 的 Java 核心库,当想造 Java 的轮子的时候不妨来这里看看是不是已经有了。

  1. requests/requests

    Python 的第三方 HTTP 客户端,接口相比标准库的urllib 友好一些,不过有内存泄露的严重问 题. 建议生产应用考虑使用 pycurl 比较好,虽然接口不太友好,但是特别稳定。

语言

  1. iojs/node-v0.x-archive

    Node.js 老版本的归档,不再赘述. 请参考 Nodejs

通用工具类

  1. typicode/json-server

    这个其实既是前端工具也是后端工具吧. 根据给定的 json 文件,提供一个模拟接口. 在后端接 口还没有开发好,或者需要测试的时候供前端调用,非常方便。

  1. jykell/jykell

    jykell 是一个使用 Ruby 编写的静态网站生成器,也就是说把你的网站预编译成 HTML. 经常用 在 GitHub Pages 上做免费的博客. 不过我个人更喜欢 Pelican。

  1. impress/impress.js

    又一个基于前端技术来做幻灯片的工具,不过更加强调 CSS3 的应用,效果更酷炫一些。

  1. getlatern/latern

    这个不好多说,懂的自然懂~

  1. jakubroztocil/httpie

    命令行调试接口的工具,相比 curl 来说,更加直观一点,对新手友好. 不过我还是喜欢用 curl。

  1. resume/resume.github.com

    利用 GitHub 上的信息生成简历的工具

  1. nvbn/thefuck

    这个工具很有意思,当你在命令行敲错命令的时候,一定会心里默念一句: fuck. 现在你可以直 接再敲一遍 fuck,他会帮你猜出来你刚刚应该输入的正确命令。

  1. s/s 系列

    这个库懂的自然懂,不便多说。

  1. NARKOZ/hacker-scripts

    一个黑客的一些脚本,比如说如果九点之后还在开发机上登录的话就给老婆发个短信解释一下 ..。

  1. rg3/youtube-dl

    YouTube 视频下载工具

  1. adobe/brackets

    Adobe 出品的一个代码编辑器,貌似现在已经不火了吧。

  1. zeit/hyper

    基于 Electron 做的一个终端模拟器,不过我现在还在用 iterm2,有空了体验下。

  1. discourse/discourse

    一个开源的论坛

Web 框架

  1. Pallets/flask

    Flask 是一个 Python 的微框架,相对 Django 来说上手更简单. 不过我个人用得不多,感觉业 务的复杂性是不可避免的,框架并不能解决多少问题。

  1. spring-projects/spring-boot

    spring 框架相关的东西,不太熟悉,有做 Java 的同学欢迎在评论区补充。

  1. django/django

    老牌的 Python web 框架,自带了 ORM 和管理界面,配合 DRF 做后端 Restful API 爽歪歪。

架构

  1. kubernetes/kubernetes

    Kubernetes 经常被缩写成 K8S,可以毫不犹豫地说,K8S 已经取得了容器编排市场的胜利. 用 Docker 打镜像可以避免装环境的困扰,同时相对于虚拟机来说,又不会有很多性能损失。

    但是当 Docker 构成的服务太多的时候,Container 的伸缩,网络通信等等问题都需要系统性的解 决,就好比想要多个进程同时运行就需要操作系统来管理一样,这时候就需要 K8S 来做容器编 排工具了. 有人说,K8S 是云时代的操作系统,我觉得这个比喻是非常好的。

  2. Google/protobuf

    使用 RPC 的时候,可以选择不同序列化工具,ProtoBuffer 可以说是其中的佼佼者了. 支持的 语言多,序列化性能高,而且很省空间。

除此上述提到的开源项目之外,你还见过哪些优秀项目呢?

640?wx_fmt=png点个“在看”再走吧,谢谢?

你可能感兴趣的:(重磅!GitHub 上的顶级项目都是做什么的?)