Slide 1

Slide 1 text

基于GitHub开放数据的   开发者能力评价系统   刘帅     1103710207   指导教师   计算机科学与技术学院  吴晋   的设计与实现

Slide 2

Slide 2 text

内容提要 •  项目来源 &  背景   •  需求分析   •  系统设计 &  实现   •  运行结果 &  性能分析   •  结论  

Slide 3

Slide 3 text

项目来源 &  背景 为什么要做这个项目?

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ü  招聘会   ü  评阅简历   ü  笔试 &  面试   ü  找的人真的靠谱?  

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

为了解决这个问题… •  对GitHub上开发者的行为做分析   •  设计一个评价模型对开发者做评价   •  根据地域对开发者做分类   •  支持检索  

Slide 8

Slide 8 text

行为数据的获取 h"ps://api.github.com/events   h"p://www.githubarchive.org/  

Slide 9

Slide 9 text

需求分析 这样的系统该有什么功能?

Slide 10

Slide 10 text

功能需求 •  GitHub上开发者行为数据的处理   •  下载、归档、清洗、持久化   •  数据查询、可视化   •  为每个开发者生成能力评价报告  

Slide 11

Slide 11 text

非功能需求 •  性能   •  数据处理   •  网络访问   •  可靠性   •  数据的可靠性   •  系统的可用性

Slide 12

Slide 12 text

系统设计 &  实现

Slide 13

Slide 13 text

系统功能结构模型图

Slide 14

Slide 14 text

GitHub上开发者评价模型设计 开发者 对 软件项目 做了操作 做了什么 软件项目 开发者 项目被star的个数 ×  star权重 +  项目被fork个数 ×  fork权重 PushEvent、 IssueEvent、PullRequestEvent 截止到某一时间点开发者的所有行为价值之和

Slide 15

Slide 15 text

总体实现方案 •  Python     •  Node.js   •  MongoDB  +  Redis   •  并发操作的实现:多进程 +  协程   •  gevent  +  whoosh  +  Fluentd  +  SemanHc-­‐UI  +  mapbox.js  +  high-­‐charts  

Slide 16

Slide 16 text

遇到的问题——规范化开发者地域信息 Harbin  Heilongjiang  China Harbin 中国黑龙江省哈尔滨市   …  …

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

系统运行结果 &  性能测试 结果怎么样?

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

性能测试 •  每天行为总数量:50万(平均每小时2万)   •  经过数据清洗后:12万(平均每小时5000)   •  调用地名规范化的Web  Service次数:≤800   •  缓存命中次数:≥7.5万,缓存数量:2.4万,命中率:98%   •  平均每天数据处理所需时间:约300秒

Slide 25

Slide 25 text

性能测试 缓存命中率趋势图 每日数据处理时间趋势图

Slide 26

Slide 26 text

性能测试——nGrinder 简单页面虚拟用户为100时的TPS变化 复杂页面虚拟用户为30时的TPS变化

Slide 27

Slide 27 text

结论 总结

Slide 28

Slide 28 text

总结 •  利用GitHub开放的描述开发者行为的数据   •  设计了一个对开发者进行能力评价的模型     •  在前端对数据做了可视化   •  对系统做了测试,分析了系统的不足之处  

Slide 29

Slide 29 text

对未来的展望 •  继续调整能力评价模型   •  对系统性能方面优化不足   •  提高系统的安全性

Slide 30

Slide 30 text

谢谢各位老师。

Slide 31

Slide 31 text

No content