Grank icon indicating copy to clipboard operation
Grank copied to clipboard

根据项目主体代码进行分类

Open wxy opened this issue 5 years ago • 2 comments

根据项目主体代码,将所分析的项目分成几类:

  • 文档类项目,以 markdown、html 为主体的项目
  • 前端类项目,以 javascript、css(及预处理器) 为主体的项目
  • 开发类项目,以其它源代码为主体的项目

以上三类项目的开发和活跃度模式相差比较大,应该分别进行排行。

wxy avatar Oct 01 '18 01:10 wxy

实现思路

  1. 使用 GraphQL 获取语言的前5~10的语言,参考 GraphQL 如下
{
  repository(owner: "lctt", name: "grank") {
    name
  	languages(first:10,orderBy:{field:SIZE,direction:DESC}){
      nodes{
        id
        name
      }
    }
  }
}
  1. 根据前三或特定顺序来进行分组。建议以排名第一的语言进行排序。比如,JS 语言的不区分 Node 还是前端,统一归为前端。Python 的不区分网站还是cli,统一归为 Python 类型的。

  2. 数据以各自的列表进行排序。

需要注意的点:

  1. 可以在导出的 CSV 中添加对应的 type,排序由人工来完成。(也就是输出时带上 type,分析人员通过 Excel / Numbers 之类的软件进行手动实现排序)
  2. 第一步建议实现按语言划分(即区分 JavaScript 、Java、Php、Python 等语言),后续再考虑综合不同语言的排序来实现(文档类、前端类、开发类)。

bestony avatar Oct 05 '18 02:10 bestony

正如之前讨论的,我们需要一个记录被采集项目的配置文件,这个配置文件中的配置值与其它途径的配置存在优先级:

  • 全局配置,优先级最低
  • 程序自动分析的得出的配置,优先级次高
  • 数据配置文件中的配置,优先级更高
  • 命令行指定的配置,优先级最高

举例一:项目分类

全局配置中不会指定项目分类,所以项目的分类首先是据此 issue 算法的自动分析得出的;然后,如果数据配置文件中有指定该分类,则采用数据配置;如果命令行中强制指定,则采用命令行配置。

wxy avatar Oct 30 '18 16:10 wxy