那些年用过的开源项目(一)

近期微软收购github新闻热搜各大媒体,微软,曾经开源的极力反对者,近几年也是积极拥抱开源。我司近来也是积极的拥抱开源,贡献了包括ui5,cloudfoudry等很是流行的开源项目。这里写一篇文章记录最近用到的开源项目,用做备忘。javascript

那些年用过的开源项目(一)

eclipse 经典java开发IDE,近几年intellij也很流行,特别是在移动端应用开发领域。css

toad eclipse插件,用于数据库操做。html

visualstidio code 轻量级IDE,前端开发很方便。前端

github 版本管理工具,最近已经被微软收购了。以前用过不少其余版本管理工具:svn、cvs、perforce,据说google的gitlab也有不少人用,特别是在微软收购github以后,不少人都把项目都转到了gitlab上,不知道是何考虑。java

maven-failsafe-plugin maven integration测试插件node

grunt nodejs application构建工具,同类的还有gulp。对应java的maven、gradle、ivy、ant等。git

sonar java代码静态代码扫描github

eslint javascript代码静态代码扫描web

jenkins 持续集成/部署,以前名字叫作hudsonredis

kibana elastic search 数据报表,查询

grafana 数据报表

docker 很是流行的容器技术,包括docker-compose、docker-machine等。如今不少paas平台都是基于容器技术实现。

nodejs 最近几年很是流行的用javascript作后台开发的技术,主要包含基于chrome V8的js引擎和用于服务器端开发的sdk,以及相应的开发库的生态。

express 基于nodejs的web容器

express-session 用做nodejs应用session管理的开源项目

helmet 用做security相关控制的开源项目,好比说content security policy。

cors 用做跨域访问控制的开源项目

nightwatch UI 自动化集成测试框架,基于selenum实现,经过broswer提供的web driver控制页面元素来达到自动操做页面的目的。相比原生selenum,nightwatch提供了更加友好的API。

ui5 sap 推出的基于mvc架构的前端框架,封装了html和css,开发者只需使用提供的control。这个有点像java的awt和swing的图形化开发,堆积组件在控制layout相关的container里面。

cloudfoudry 如今云平台主要能够分为iaas、paas、saas,而cloudfoundry是构建paas平台的一个主流的开源项目,如今sap,ibm,pivotal都有基于cloudfoundry运维的paas平台。其余同类的开源项目有herohu,openshift。

spring 从最开始的一个控制反转开源项目,发展到如今很是流行的开源社区,包含不少子项目,以下面提到的spring boot和spring web。

spring boot 快速构建一个spring项目,省掉了以前若是要建立一个spring项目,而须要的各类复杂的配置工做。

spring web 快速的构建一个restful api的web service。其余同类的开源项目有jersey,jersey是j2ee jax-rs标准的一个实现,也是用来开发restful web service的一个很流行的开源库。

spring actuator java web程序monitoring工具包, 同类的还有prometheus。记得以前的项目经历有用过java jmx来实现monitor application status。

spring jpa jpa是java推出的orm规范,主流的实现有eclipselink,hibernate。

postgres 开源的关系型数据库

mongodb Non-SQL数据库

h2 内存数据库,经常使用于测试环境

flywaydb 数据库schema变动版本管理工具,同类的还有liquibase

redis/hazelcast/ehcache/guava 几种流行的缓存框架,以前的项目经历有一个是专门作缓存的,基于gemfire(最开始是收费的,后来也开源了)。

vault 用于credential管理的开源项目,一般可用于大型系统背后各个系统之间交互的credential的管理。

eureka 服务注册和分发开源项目,同类的开源项目还有zookeeper。

velocity 模板替换工具,经常使用于自动生成代码,html页面等场景。

flying saucer 将html页面渲染成pdf的一个开源项目,可用于订单导出等场景。

slf4j simple logging facade for java,统一大多数流行的logging框架,如log4j、logback,提供了一个统一的API。

lombok 可用一些简单annotation替代重复简单编写的代码,如@Getter会自动生成全部field的get方法。

rest-assured java integration test库,代码写做规范和bdd的规范相似,given-when-then。

spring contract 合同测试,经常使用于一个项目里面互相有不少依赖的测试。

mockito 用于mock的一个开源项目

写在最后的话

  • 如何选择开源项目?我的以为能够基于如下几点考虑:

  • opensource是否知足功能需求

  • 社区支持程度

  • license要求

  • 开发人员的已有的开发技能

References

封面图片利用下面命令(sed 's/[^a-zA-Z]/ /g' opensource.txt)和工具生成:http://www.yyyweb.com/demo/inner-show/word-itout.html

相关文章
相关标签/搜索