前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >那些年用过的开源项目(一)

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

作者头像
Bruce Li
发布2019-07-30 16:53:38
6570
发布2019-07-30 16:53:38
举报

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

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

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

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

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

maven-failsafe-plugin maven integration测试插件

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

sonar java代码静态代码扫描

eslint javascript代码静态代码扫描

jenkins 持续集成/部署,之前名字叫做hudson

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 天马行空布鲁斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档