我们翻译了最流行的代码规范系列文章,涵盖了以下主流编程语言:
这些代码规范是sideeffect.kr通过分析GitHub上托管的开源代码得出的。sideeffect.kr将用于统计分析的代码开源了。
安装
npm install
bower install
然后将github token保存为github.json
文件,置于.tokens
目录下。
依赖
popularconvention基于以下技术构建:
- Node.js
- CoffeeScript
- MongoDB
GitHub公共数据
GitHub上每天都会有大量的活动,包括报告bug、推送代码、发起合并请求,等等。sideeffect.kr就是通过查询GitHub的公共数据统计分析流行的代码规范的。
GitHub以Google BigQuery的形式提供公共数据的查询接口。你可以使用Google BigQuery语句来查询这些数据,例如,以下代码会找出推送数最多的100个Ruby仓库:
SELECT repository_name, count(repository_name) as pushes, repository_description, repository_url
FROM [githubarchive:github.timeline]
WHERE type="PushEvent"
AND repository_language="Ruby"
AND PARSE_UTC_USEC(created_at) >= PARSE_UTC_USEC('2012-04-01 00:00:00')
GROUP BY repository_name, repository_description, repository_url
ORDER BY pushes DESC
LIMIT 100
利用Google BigQuery,弹指之间查询GitHub的整个数据集。如果你不需要实时查询,那么你也可以使用GitHub Archive提供的按小时打包的数据。(自2011-02-12起)例如:
-
April 11, 2012, 3PM UTC
wget http://data.githubarchive.org/2012-04-11-15.json.gz
-
April 11, 2012
wget http://data.githubarchive.org/2012-04-11-{0..23}.json.gz
-
April 2012
wget http://data.githubarchive.org/2012-04-{01..31}-{0..23}.json.gz
数据格式为JSON,你可以用你惯用的语言来处理。下面是一个Ruby的例子:
require 'open-uri'
require 'zlib'
require 'yajl'
gz = open('http://data.githubarchive.org/2012-03-11-12.json.gz')
js = Zlib::GzipReader.new(gz).read
Yajl::Parser.parse(js) do |event|
print event
end
编撰 SegmentFault
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。