那些年用過的開源項目(一)

近期微軟收購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

相關文章
相關標籤/搜索