前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub 上的顶级项目都是做什么的?

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

作者头像
乔戈里
发布2019-10-09 14:19:13
1.6K0
发布2019-10-09 14:19:13
举报
文章被收录于专栏:Java那些事Java那些事

前一阵看到同事在用一个名叫 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 命令行的基础教程,有中文翻译
  2. justjavac/free-programming-books-zh_CN 免费中文编程书
  3. googlesamples/android-architecture Google 官方提供的 Android 应用架构例子
  4. sindresorhus/awesome-nodejs Nodejs 资源,awesome 系列,不再赘述。
  5. toddmotto/public-apis 一些免费的公共 API,值得收藏。

前端 UI 框架/库

  1. moment/moment moment.js 是前端处理验证以及显示时间的一个库. 没想到这个功能这么常用啊,竟然能进 GitHub 前100。
  2. ElementUI/Element 饿了么出品的 Vue 组件库
  3. google/material-design-lite Google 的 Material Design 的一个简化版,貌似现在不再支持了。
  4. Dogfalo/materialize Material 风格的前端 CSS 库
  5. callemall/material-ui Material 风格的 React 组件库
  6. necolas/normalize.css 我们知道当不使用任何 CSS 的时候,HTML 页面在不同浏览器还是有略微不同的,这是因为浏览 器自带了一些样式,而 normalize 的意义就在于把这些样式统一起来。有人把它比喻成女生化妆的打底妆过程,可以说是非常形象生动了~
  7. zurb/foundation-sites 类似 Bootstrap 的前端 UI 框架,貌似响应式支持更好一些。

大前端框架和库

  1. ionic-team/ionic 使用 web 技术来编写移动应用的库. 和 React Native 相比可以说是两条不同的路子吧. Ionic 更加 web 一些。
  2. mrdoob/three.js 前端的 3D 库. 可能需要一些基础的图形学知识才能用好。
  3. zeit/next.js 基于 React 的一个框架. 前端不是很懂,不多说了. 关于现在的前端三大框架 React/Vue/Angular 可以阅读前文。
  4. nwjs/nw.js 前身是 NodeWebkit,使用 web 技术来编写跨平台的桌面应用的工具。
  5. apache/incubator-echarts 前端的一个显示饼图等示意图的库
  6. gatsbyjs/gatsby Gatsby.js 是一个基于 React 的静态网站生成器
  7. square/retrofit 用于 Java 和 Android 的 HTTP 客户端
  8. AFNetworking/AFNetworking 用于苹果系列系统的网络库
  9. babel/babel JavaScript 这些年的进化速度非常快,但是不能保证浏览器升级足够快,好多过时的浏览器还 有不少市场份额,但是你又想用新的语法,这时候就可以使用 babel,他可以帮你把新版本的 JavaScript 编译到老版本的浏览器支持的语法。
  10. square/okhttp Square 提供的又一个 Java 和 Android 的 HTTP 客户端。
  11. blueimp/jQuery-File-Upload jQuery 的文件上传插件
  12. gulpjs/gulp JS 的构建工具,有点类似于 C 语言的 make
  13. yarnpkg/yarn Facebook 出品的 Nodejs 包管理器,貌似有比官方的 npm 优秀的地方,不太清楚了。
  14. jashkenas/backbone 老牌的前端框架了,现在用的人应该很少了

后端工具

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

  1. google/guava Google 的 Java 核心库,当想造 Java 的轮子的时候不妨来这里看看是不是已经有了。
  2. requests/requests Python 的第三方 HTTP 客户端,接口相比标准库的urllib 友好一些,不过有内存泄露的严重问 题. 建议生产应用考虑使用 pycurl 比较好,虽然接口不太友好,但是特别稳定。

语言

  1. iojs/node-v0.x-archive Node.js 老版本的归档,不再赘述. 请参考 Nodejs

通用工具类

  1. typicode/json-server 这个其实既是前端工具也是后端工具吧. 根据给定的 json 文件,提供一个模拟接口. 在后端接 口还没有开发好,或者需要测试的时候供前端调用,非常方便。
  2. jykell/jykell jykell 是一个使用 Ruby 编写的静态网站生成器,也就是说把你的网站预编译成 HTML. 经常用 在 GitHub Pages 上做免费的博客. 不过我个人更喜欢 Pelican。
  3. impress/impress.js 又一个基于前端技术来做幻灯片的工具,不过更加强调 CSS3 的应用,效果更酷炫一些。
  4. getlatern/latern 这个不好多说,懂的自然懂~
  5. jakubroztocil/httpie 命令行调试接口的工具,相比 curl 来说,更加直观一点,对新手友好. 不过我还是喜欢用 curl。
  6. resume/resume.github.com 利用 GitHub 上的信息生成简历的工具
  7. nvbn/thefuck 这个工具很有意思,当你在命令行敲错命令的时候,一定会心里默念一句: fuck. 现在你可以直 接再敲一遍 fuck,他会帮你猜出来你刚刚应该输入的正确命令。
  8. shadowsocks/shadowsocks 系列 这个库懂的自然懂,不便多说。
  9. NARKOZ/hacker-scripts 一个黑客的一些脚本,比如说如果九点之后还在开发机上登录的话就给老婆发个短信解释一下 ..。
  10. rg3/youtube-dl YouTube 视频下载工具
  11. adobe/brackets Adobe 出品的一个代码编辑器,貌似现在已经不火了吧。
  12. zeit/hyper 基于 Electron 做的一个终端模拟器,不过我现在还在用 iterm2,有空了体验下。
  13. discourse/discourse 一个开源的论坛

Web 框架

  1. Pallets/flask Flask 是一个 Python 的微框架,相对 Django 来说上手更简单. 不过我个人用得不多,感觉业 务的复杂性是不可避免的,框架并不能解决多少问题。
  2. spring-projects/spring-boot spring 框架相关的东西,不太熟悉,有做 Java 的同学欢迎在评论区补充。
  3. django/django 老牌的 Python web 框架,自带了 ORM 和管理界面,配合 DRF 做后端 Restful API 爽歪歪。

架构

  1. kubernetes/kubernetes Kubernetes 经常被缩写成 K8S,可以毫不犹豫地说,K8S 已经取得了容器编排市场的胜利. 用 Docker 打镜像可以避免装环境的困扰,同时相对于虚拟机来说,又不会有很多性能损失。 但是当 Docker 构成的服务太多的时候,Container 的伸缩,网络通信等等问题都需要系统性的解 决,就好比想要多个进程同时运行就需要操作系统来管理一样,这时候就需要 K8S 来做容器编 排工具了. 有人说,K8S 是云时代的操作系统,我觉得这个比喻是非常好的。
  2. Google/protobuf 使用 RPC 的时候,可以选择不同序列化工具,ProtoBuffer 可以说是其中的佼佼者了. 支持的 语言多,序列化性能高,而且很省空间。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员乔戈里 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 教程资源类
  • 大前端框架和库
  • 后端工具
  • 机器学习
  • 语言
  • 通用工具类
  • Web 框架
  • 内核
  • 教程资源类
  • 前端 UI 框架/库
  • 大前端框架和库
  • 后端工具
  • 语言
  • 通用工具类
  • Web 框架
  • 架构
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档