github-ranking

授权协议 Readme
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 司马俊晖
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Vue GitHub排行榜

GitHub不同语言热门项目排行,Vue做页面展示。

源代码

源代码地址: �� GitHub欢迎大家 star和fork ��

预览地址

在线效果预览地址:https://microzz.com/github-ranking/

技术栈

  • Vue2.0:前端页面展示。
  • axios:一个基于 Promise 的 HTTP 库,向后端发起请求。
  • ExpressKoa2:因为vue-cli生成的项目是基于express的,所以在开发阶段我使用的是它,但是真正上线生产环境我换成了Koa2
  • requestrequest-promise:没有用Node.js原生的http/https模块是因为不喜欢回调函数式的异步,可读性和可维护性很差。所以选择了request+request-promise,让异步更为优雅一点。
  • cheerio:服务器特别定制的,快速、灵活、实施的jQuery核心实现,抓取页面内容很方便。
  • SASS(SCSS):用SCSS做CSS预处理语言,有些地方很方便,个人很喜欢用。(详看 �� SASS用法指南)
  • ES6ES7:采用ES6语法,这是以后的趋势。自己上线的生产环境后端增加了Async/await,使异步更加优雅。
  • Webpack:vue-cli自带Webpack,但是需要自己改造一下,比如要对 build/dev-server.js扩展express,增加后端请求路由(上线版本用的是Koa2)。此外需要安装sass相关loader,vue-cli已经配置好了webpack,你只需要安装依赖就可以,使用的时候只需要<style lang="scss"></style>
  • flex:flex弹性布局。
  • CSS3:CSS3过渡动画及样式。

遇到的问题

  1. 异步操作很容易出问题,异步处理一定要小心!要熟练掌握PromiseAsync/awaitGenerator等方法。(详看 �� 异步操作和Async函数Promise对象Generator 函数)
  2. 因为访问每次爬取GitHub速度慢,性能差,所以建议使用缓存,把爬取到的数据保存为json文件或者其他缓存方式,我在上线的正式版是保存为json文件。那么这个时候就要有一个定时爬取的工具了,这里推荐node-schedule模块,很方便就能实现定时任务,查看官方文档就能简单上手了。上线版本我是每隔几个小时就爬取一次,然后保存数据,这样减轻了服务器压力,前端访问速度也大大加快。
  3. GitHub貌似最多只能有10个并发,我尝试9个是正常的,10个就会报错,刚好我一次性爬取的语言数目超过数目,一看报错信息是429状态码。查信息发现:

    429 Too Many Requests (太多请求)当你需要限制客户端请求某个服务的数量,也就是限制请求速度时,该状态码就会非常有用。在此之前,有一些类似的状态码。例如“509 Bandwidth Limit Exceeded”。

所以一定好处理好这些异步请求,不然就爬取不到信息缓存了。

About

源代码地址: �� GitHub

个人网站: �� microzz-IT技术分享

GitHub: �� microzz

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report
  • 查看github排名 github输入:star:>数字,来查看star数的仓库; 输入:location:China,可以搜索指定地区用户USER github关注排名 使用Github 的站内搜索,搜索:Awesome + 你的关键字 登录github.com 选择Explore(探索),选择Trending(热门话题趋势预测),可以选择语言,以天、周、月为维度查看排名

  • 仿网易云webApp(持续更新中) 配置安装 开发环境 Node Latest Npm Latest Installing 使用npm安装依赖 �� npm install npm start 或 npm run start 打包生产环境 npm run build Deployment 线上服务可为静态资源服务器,将root设为 /dist 路径, 并将子路由$uri重定向至root。 Buil

  • About Grey Theory System that means uncertain relationships between the various factors within the system, this system in which part of information is known and another part is unknown. This theory ha

  • capitalfarmer 解析东方财富网上的API,包装成python库 调用方法 import capitalfarmer as cf 分时成交数据 cf.time_sharing_trans_3s(code, pos, lang) 获取最近pos个每隔3秒统计一次的分时成交数据 cf.time_sharing_trans(code, lang) 获取当日每隔3秒统计一次的分时成交数据 交易行

 相关资料
  • 所以现在我们已经介绍了 GitHub 的大部分功能与工作流程,但是任意一个小组或项目都会去自定义,因为他们想要创造或扩展想要整合的服务。 对我们来说很幸运的是,GitHub 在许多方面都真的很方便 Hack。 在本节中我们将会介绍如何使用 GitHub 钩子系统与 API 接口,使 GitHub 按照我们的设想来工作。 钩子 GitHub 仓库管理中的钩子与服务区块是 GitHub 与外部系统交互

  • 你可以在 Github 上为项目创建远程仓库。创建公开的远程仓库是免费的,私有仓库要收费。 任务 在 Github 网站申请一个帐号。 https://github.com 配置帐号的 ssh-key。 https://github.com/settings/keys ssh-key 在 Github 个人帐户里配置使用了 ssh-key,以后你往你的 Github 远程仓库推送的时候就不需要输入

  • 代码仓库 我们在GitHub上进行Tengine项目的开发:https://github.com/alibaba/tengine。 可以用git检出最新的Tengine代码: 参与开发 我们非常欢迎也很鼓励您在Tengine的项目的GitHub上报告issue或者pull request。 如果您还不熟悉GitHub的Fork and Pull开发模式,您可以阅读GitHub的文档(https:/

  • 类属性 $allowSignup 是否在登录页显示注册,默认false

  •   推荐大家使用 https://gitee.com 速度更快,项目直接部署、Android 自动构建! 私有库永久免费,提供手机客户端,国内首个同时支持 Git 和 SVN 的代码托管平台) 如何一键导入 Github 仓库:https://blog.gitee.com/2018/06/05/github_to_gitee/ GitHub 可以托管各种 git 库,并提供一个 Web 界面,但与

  • 在本章中,我们将向您展示如何使用GitHub API对用户进行身份验证。 步骤1 - 启用GitHub身份验证 打开Firebase仪表板,然后单击侧面菜单中的Auth ,然后单击标签栏中的SIGN-IN-METHOD 。 您需要启用GitHub身份验证并复制Callback URL 。 您将在步骤2中使用此选项。您可以打开此选项卡,因为完成第2步后需要添加Client ID和Client Sec