GitHub是一个开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
那么在今天小熊个人博客说到是就是github,谈谈目前github使用频率最高的是哪些库。
首先排名前三的编程语言库来进行分析,这三门语言分别是Java、Ruby、Javascript。分别分析了它们当中最流行的10000个项目(例如Github仓库),并且从中选出最受这些项目喜爱的库。此外,他们还分析了排名前100库所使用的组件、组合种类(例如测试、数据库、UI等等),并且看看这些语言直接的不同之处。
下面分别列出了10000个Java、Ruby、Javascript项目中使用率最高的10个库,并把一些值得特别关注的库和趋势进行总结和分析。
Java
HTML6-1
Guava是Google的开源库,目前,Google代码已成为主流,虽然Spring和Apache库非常普遍,在前100个项目当中,它们占到了高于25%的平均比例。但有些惊讶的是谷歌的一些库,例如GWT和Guava,Guava成功的排在了第7位,在Java的10000个项目中,有4.8%的项目使用了它。
另外值得大家关注的一个库是 ElasticSearch,它是一款非常强大的搜索和数据分析引擎,目前在Java调查的单螺杆泵项目里,有110个项目使用了该库。
数据处理占据了Java很大一部分,其中主要集中在数据管理。而在大数据方面,Hadoop处于领先地位。在被调查的10000个项目中,有168个项目采用Hadoop,最知名并且也是最常用的SQL数据库之一MySql被225项目采用,另一个知名的关系数据库PostgreSQL则是121个。
测试驱动开发在Java和Ruby中占据很大一部分,在这三门语言中,测试都扮演着非常重要的角色,在Java和Ruby中,40%-50%的单螺杆泵项目都使用了自动测试框架进行项目复查工作。
Mocking是一种在测试和开发中模拟真实世界对象的一种方法,目前该方法也得到了很多项目组的追捧,其中Java中有10%、Ruby里有7%的项目在使用该方法。
Ruby
it4-1
HTMl6-2
在所调查的10000个Ruby项目中,虽然NoSQL数据库在这些天风靡一时,但关系数据库SQL在Ruby世界里仍在占主导地位——Sqlite、postgreSQL、在研究的项目中,有25%的项目使用MySql,而Redis和MongoDB仅占3%,其中有185个项目采用MongoDB作为数据库,这个数据是Java项目里的两倍。
Twitter在Ruby中也有不小的影响力,在百强项目里,有3个库和382个项目使用它们。这是相当庞大的,但仍然没有谷歌在Java里的影响力大。
Javascript
HTML6-3
avaScript可以应用和支持更多类型的应用程序,但一些新特性和功能并未在语言和标准库上得到应用。因此,在研究中我们也看到,在TOP100项目里,有超过50%的框架被Javascript库所使用。
Grunt自动化框架在JS开发中扮演着非常重要的角色(尤其是node.js),在百强库当中,有23%的库使用它。
在Javascript库里面,有一大部分的库是用来进行网络和客户端/服务端通信的,数量是Java和Ruby里的3倍。这很有可能是因为Web开发人员不得不在浏览器端处理一些支离破碎的生态系统和相对较早的服务器堆栈。而对于服务器端Web开发,Node.js的express框架占据领先地位,有631个项目采用它进行研发。
努力朝着结构化方向发展,Javascript在语言扩展上有很多优势,在调研的1万个项目中,有844个项目具有这一功能。此外,Javascript还是一门非常灵活的语言,开发者也正在使用更加结构化的方法来塑造它。Underscore.js库提供了函数编程语言功能,类似于一些结构化的语言,例如Scala,它在此次排行中处于第五位。
sencha运行的时候需要有服务器的环境,一种是在比如xampp上面或者IIS,只需要把压缩包解压到根目录下即可运行其中的例子;另一种是用它提供的sencha cmd工具,cd到你解压sencha包的目录,输入”sencha web start”,即可开启服务器,路径为“http://www.zjut.edu.cn/:1841/xxx/xxx”,默认的端口是1841。
下面就开始创建新的app了,方法先用cmd的方式,cd到SDK的路径:
HTML7-1
后面的最后一个参数一定要给的,因为指定了新app的路径。执行后会自动生成一个app的框架出来,也就是sencha cmd代码生成器的功能。
HTML7-2
有必要截张生成app框架文件的图上来,sencha touch是以MVC的逻辑方式来组织的。其中app文件夹里面就是M,V,C三层的代码,app.json是app的配置文件,而packager.json是当打包成native时候的配置文件;resources文件夹包含资源文件,其中CSS也作为资源文件在里面。而app.js就是整个的app的入口文件,控制着接下来的逻辑展现