前一阵看到同事在用一个名叫 AirFlow 的工具,而我竟然素未耳闻,一番搜索之后发现这个工具是 Apache 的顶级项目,而且在 GitHub 上有 1w 的 Star。震惊之余,感觉有必要把 GitHub 上常用工具捋一遍,以避免以后发生重复造轮子的情况。计划是把 GitHub 上 5k Star 的项目都知道是做什么用的,每周看 50 个,数据来源是这里:https://gitstar-ranking.com/repositories。
下面是本周的记录:
教程资源类
- freeCodeCamp/freeCodeCamp 292180 免费代码训练营
- EbookFoundation / free-programming-books 114236 免费编程图书
- sindresorhus / awesome awesome 列表的列表。这个项目起源于某个人做了一个 awesome-php 的 php 优质资源列表,然后大家就做了 awesome-python,awesome-vue 等各种列表,这个项目又把各种 awesome 列表收集了起来。。
- CyC2018 / CS-Notes 国人编写的计算机基础教程,中文
- jwasham / coding-interview-university 面试考点总结
- h5bp / Front-end-Developer-Interview-Questions 前端工程师面试问题
- vinta/awesome-python 前面提到的 awesome 系列列表,不在赘述
- airbnb / javascript Airbnb 的 js 编码规范,值得参考。
- github / gitignore GitHub 提供的各种项目的 gitignore 文件模板,省了自己写了
- getify / You-Dont-Know-JS 前端(JS)的一些坑的总结
- vuejs/awesome-vue awesome 系列,不再赘述
前端 UI 框架/库
- twbs/bootstrap Twitter 推出的前端 UI 框架,有网格系统和各种组件,曾经常年在 GitHub 上排名第一,可以说是后端工程师画界面的利器。 竞品:Semantic UI, pure-css
- FontAwesome/Font-Awesome 字体和图标库,可以使用 SVG 和字体等等多种格式。
- ant-design/ant-design 蚂蚁金服出的 react 组件库,前一阵大名鼎鼎的“圣诞彩蛋”就是这个库搞得。主要提供 React 的组件库,用于企业中后端的后台的建设。关于 React/Vue 和前端的组件化是一个很有意思的话题,可以查阅相关资料。 和 Bootstrap 等的区别在于,Bootstrap 更偏向于 UI 方面,是 CSS 框架,而 antd 则是完整的包括 UI 和功能在内的 React 组件。可以理解为 Bootstrap 只做了“皮”,而 antd 是 “皮” “骨”。
- Semantic-Org/Sematic-UI 和 Bootstrap 类似的一个组件库。Semantic UI 更强调使用语义化的 class 来定义样式
- google / material-design-icons Google 推出的 Material 风格图标库。
- daneden/animate.css CSS 动画效果库
大前端框架和库
- vuejs/vue Vue 是国人推出的一个前端框架,可以通过写不同的 Vue 组件来组成一个完整的应用,支持服务端渲染(SSR)。和 React 一样,Vue 也使用了 Virtual-DOM 技术来提高性能。
- facebook/react facebook 推出的一个前端框架,特点是每个组件的 HTML/JS/CSS 组合在一起,使用 Virtual-DOM 渲染。在 React 出现之前,前端框架普遍采用了后端广泛使用的 MVC 模式,强调 HTML/JS/CSS 三者要分离,而 React 则反其道而行之,强调从组件构建,可以 React 的出现是前端界的一场革命。
- facebook/react-native 使用 React 的语法来构建 native app,注意这里并不是使用一个 iOS 或者 Android 的 WebView 中嵌套了一个 webapp,而是直接使用 JS 来操作原生组件。
- angular/angular.js Google 推出的前端框架,没用过
- reactjs/redux react.js 的一个组件,用来管理数据。
- meteor/meteor 前几年火过一阵,号称要统一前后端,然而我从来没搞明白到底是干啥的,如今热度已经大减了。HN 上甚至直接有人问 Is meteor.js dead?
- webpack/webpack 用于打包前端资源
- chartjs/Chart.js
- electron 可以使用前端的工具链来编写桌面应用,同时能够跨平台。
- jquery 老牌的跨浏览器兼容库。随着浏览器的发展,现在使用 jquery 的越来越少了。
- create-react-app 用来构造 react app 的辅助工具。
- d3.js
后端工具
- elasticsearch 使用 Java 编写的一个搜索工具,要实现全文搜索的话,选择 ES 就对了。
- moby Docker 的内核
库
- ReactiveX/RxJava TODO 一种编程模式,现在还不是很了解。
机器学习
- TensorFlow
语言
- Microsoft/TypeScript 微软推出的一个 JavaScript 的超集。我们知道 JavaScript 是一个动态弱类型的语言,这种特性在小项目上很方便,然而随着前端项目越来越大,强类型对于程序正确性的保证就显得越来越重要了。TypeScript 重点就在于增强了类型,甚至名字都叫 TypeScript。 强类型的语言是近年来语言的发展趋势,新语言诸如 Rust、Go、Swift 都是强类型的语言。而一些老语言,比如 Python 也加入了 Type Hint 的功能来增强类型支持。
- Apple/swift Apple 推出的新语言,用来代替 Obj-C。
- golang Google 推出的编程语言。特点是通过 Goroutine 支持高并发。
- nodejs 可以在服务器上运行的 js。
通用工具类
- hakimel / reveal.js 使用 js 来做 PPT 的一个框架或者说工具
- GoogleChrome/puppeteer Google 推出的操作 Chrome 浏览器的 node.js API。可以用在自动化测试和爬虫的领域。官方 API 的推出基本上意味着第三方工具已经失去意义了。比如说 Phantom.js 直接宣布停止维护了。
- atom GitHub 推出的一个代码编辑器。
- oh-my-zsh zsh 的增强组件集,可以让你的 shell 异常强大呢。
- vscode 微软推出的代码编辑工具,目前占据了市场优势地位。
Web 框架
- rails Ruby 的一个 MVC 模式的 web 框架,当年可谓大红大紫,现在似乎热度有所衰减了,可能是因为大家都不写 Web 应用了。
- expressjs Node.js 的一个 Web 框架。
- socket.io 实现 WebSocket 的一个库,使用 node.js 编写。WebSocket 是在浏览器和服务器之间实现全双工通信的一个协议。
- laravel 一个比较现代的 PHP MVC web 框架,不过 PHP 这几年的热度衰减也很厉害,好多搞 PHP 的都直接转 Go 了。
内核
- linux 这个不用说了吧。