下面这张是技能栈思维导图:
技能栈
什么是技能栈? 举个例子: 开拓一个普通管理系统,会用到Sprin Boot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,这些技能合起来就可以称为技能栈。
我将技能栈大致分为5大块:前端、后端、中间件、数据库和工具。

JSP全称Java Server Pages,是一种动态网页开拓技能。它利用JSP标签在HTML网页中插入Java代码。
JSP实质上是一个servlet,紧张用于实现Java web运用程序的用户界面部分。
<html> <head> <title>第一个 JSP 程序</title> </head> <body> <% out.println("Hello World!
"); %> </body></html>
JSP这种网页技能我猜5年以下的程序员基本没打仗过,10年前我打仗的项目前端基本都是采取的JSP技能,jsp合营各种html+jquery/JavaScript+css完成前端页面开拓。
前端框架DWZ、EasyUI、EXT、BootStrap、KendoUI 都是基于基于 HTML、CSS、JavaScript/jquery的一些富文本客户端UI框架,在当时切实其实是后端开拓职员的福音。这些框架最大的特点便是官网上供应了各种组件的利用方法,后端职员只要套到JSP页面中,进行数据渲染即可。这些UI框架风格基本已经固定,更适宜开拓一些管理类系统,都包括:强大的数据源,通用的拖沓(Drag-and-Drop)功能,模板,和UI控件。
DWZ是中国人自己开拓的基于jQuery实现的Ajax RIA开源框架,设计目标是大略实用,快速开拓,降落ajax开拓本钱。
官网:https://jui.org/
EasyUI
easyui是一种基于jQuery的用户界面插件凑集,为创建当代化,互动,JavaScript运用程序,供应必要的功能。利用easyui你不须要写很多代码,你只须要通过编写一些大略HTML标记,就可以定义用户界面,为网页开拓的韶光和规模。
官网;http://www.jeasyui.com/
EXTExtJS是基于YUI(雅虎用户界面)的sencha的JavaScript框架和产品,它基本上是具有当代UI的桌面运用程序开拓平台。
中文官网:http://extjs-doc-cn.github.io/ext4api/#!/api/Ext
BootStrapbootstrap是Twitter推出的一个用于前端开拓的开源工具包
中文官网:https://www.bootcss.com/
KendoUI是一套 JavaScript 函式库,供应抽象化、可自订主题的 GUI 掌握项与动画效果。基于 jQuery JavaScript 函式库,可用来建构互动式的 Web 运用
官网:http://www.kendoui.io/
FreeMarkerFreeMarker是一个免费的模板引擎,一个基于模板天生文本输出的通用工具,利用纯Java编写的,用来天生HTML Web页面,特殊是基于MVC模式的运用程序。常日由Java程序准备要显示的数据,由FreeMarker天生页面,通过模板显示准备的数据(如下图)
FreeMarker不是一个Web运用框架,FreeMarker与容器无关,也可以在模板中利用JSP标记库。
<html><head> <title>Welcome!</title></head><body> <h1>Welcome ${user}!</h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>!</body></html>
html
上面很多前端框架都是基于html的,须要你有js/jq、css根本,这是所有前端框架的根本。由于光框架有时并不能知足我们的需求,有时须要对框架无法实现的功能须要在框架根本上调度;还有这个飞速发展的互联网时期,对前真个哀求越来越高,原生html得到了快速发展,基本所有前端效果利用原生时可以实现的。
VUEvue.js 利用了基于 HTML 的模板语法,许可开拓者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,以是能被遵照规范的浏览器和 HTML 解析器解析。
在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合相应系统,Vue 能够智能地皮算出最少须要重新渲染多少组件,并把 DOM 操作次数减到最少。
VUE+elementUI目前利用最多的,尤其是开拓一些后台管理系统还是比较大略便捷的。
后端servletservlet是Server Applet的简称,翻译过来便是做事程序,大略的讲便是是运行在做事器上的一个小程序,用来处理做事器要求的。我们通过浏览器访问一个运用,在这个过程中,我们的浏览器发送访问要求,做事器吸收要求,并对浏览器的要求作出相应的处理,这便是我们熟习的B/S模型(浏览器-做事器模型).而servlet便是对要求作出处理的组件,运行于支持Java的运用做事器中。如图如是:
struts
struts紧张是指struts1和struts2,是经典的MVC框架,撤除一些老项目,现在用的越来越少了。但struts1和struts2还是有差异的,紧张差异二者实质不一样。
struts1:通过采取Java Servlet/JSP技能,实现了基于Java EE Web运用的Model-View-Controller(MVC)设计模式的运用框架,是MVC经典设计模式中的一个经典产品。
struts2:以WebWork为核心,采取拦截器的机制来处理用户的要求,这样的设计也使得业务逻辑掌握器能够与ServletAPI完备分开开,以是Struts 2可以理解为WebWork的更新产品。
最经典的组合strutsMVC+SPring+Hibernate,号称SSH,当年都是口试必问的技能。
SpringSpring框架是一个开源Java运用框架,办理了开拓者在开拓中碰着的许多常见的问题,供应了功能强大IOC、AOP及Web MVC等功能。Spring可以单独运用于运用程序,也可以和Struts、Webwork等浩瀚Web框架组合利用。Spring框架紧张由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
持久层框架jdbc
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于实行SQL语句的Java API,可以为多种关系数据库供应统一访问,它由一组用Java措辞编写的类和接口组成。JDBC供应了一种基准,据此可以构建更高等的工具和接口,使数据库开拓职员能够编写数据库运用程序。
早期项目大部分都是通过对JDBC封装来操作数据库,实现增编削查,对性能考虑也不多,随韶光推移不断衍生出很多框架,例如:mybatis,hibernate等。
ibatis
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开拓,现在是一个基于Java的持久层框架。iBATIS供应的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还供应一个利用这个框架开拓的JPetStore实例。
iBATIS 目前供应了三种措辞实现的版本,包括:Java、.NET以及Ruby。
mybatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
MyBatis 是一款精良的持久层框架,它支持定制化SQL、存储过程以及高等映射。MyBatis 避免了险些所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis-PlusMybatis 增强工具包 - 只做增强不做改变,简化CRUD操作
JPAJPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0表明或XML描述工具-关系表的映射关系,并将运行期的实体工具持久化到数据库中。
Sun引入新的JPA ORM规范出于两个缘故原由:其一,简化现有Java EE和Java SE运用开拓事情;其二,Sun希望整合ORM技能,实现天下归一。
Spring BootSpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继续了Spring框架原有的精良特性,而且还通过简化配置来进一步简化了Spring运用的全体搭建和开拓过程。其余SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的办理。
分布式/微做事Spring CloudSpring Cloud 为开拓者供应了在分布式系统(如配置管理、做事创造、断路器、智能路由、微代理、掌握总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态)操作的开拓工具。利用 Spring Cloud 开拓者可以快速实现上述这些模式。
Spring Cloud 的 GitHub 主页:https://github.com/spring-cloud
dubboDubbo 是阿里巴巴公司开源的一个高性能精良的做事框架,使得运用可通过高性能的 RPC 实现做事的输出和输入功能,可以和 Spring 框架无缝集成。
紧张核心部件:
Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 机制
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 做事目录框架用于做事的注册和做事事宜发布和订阅
Spring Cloud AlibabaSpring Cloud Alibaba 致力于供应分布式运用做事开拓的一站式办理方案。此项目包含开拓分布式运用做事的必需组件,方便开拓者通过 Spring Cloud 编程模型轻松利用这些组件来开拓分布式运用做事。
依托 Spring Cloud Alibaba,您只须要添加一些表明和少量配置,就可以将 Spring Cloud 运用接入阿里分布式运用办理方案,通过阿里中间件来迅速搭建分布式运用系统。
安全框架shiroApache Shiro 是 Java 的一个安全框架。目前,利用 Apache Shiro 的人越来越多,由于它相称大略,比拟 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际事情时可能并不须要那么繁芜的东西,以是利用小而大略的 Shiro 就足够了。对付它俩到底哪个好,这个不必纠结,能更大略的办理项目问题就好了。
Spring Security
Spring Security是一个能够为基于Spring的企业运用系统供应声明式的安全访问掌握办理方案的安全框架。它供应了一组可以在Spring运用高下文中配置的Bean,充分利用了Spring IoC,DI(掌握反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为运用系统供应声明式的安全访问掌握功能,减少了为企业系统安全掌握编写大量重复代码的事情。
oauth2.0OAuth(开放授权)是一个开放标准,许可用户让第三方运用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码供应给第三方运用。
OAuth 2.0 是目前比较盛行的做法,它率先被Google, Yahoo, Microsoft, Facebook等利用。之以是标注为 2.0,是由于最初有一个1.0协议,但这个1.0协议被弄得太繁芜,易用性差,以是没有得到遍及。2.0是一个新的设计,协议大略清晰,但它并不兼容1.0,可以说与1.0没什么关系。
项目管理mavenMaven 是 Apache 下的一个纯 Java 开拓的开源项目。利用一个中心信息片断能管理一个项目的构建、报告和文档等步骤。是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
antant 是一个将软件编译、测试、支配等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开拓。在实际软件开拓中,有很多地方可以用到ant。
gradleGradle是一个基于Apache Ant和Apache Maven观点的项目自动化构建开源工具。它利用一种基于Groovy的特定领域措辞(DSL)来声明项目设置,目前也增加了基于Kotlin措辞的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
做事器软件tomcatTomcat 做事器是一个免费的开放源代码的Web 运用做事器,属于轻量级运用做事器,在中小型系统和并发访问用户不是很多的场合下被普遍利用,是开拓和调试JSP 程序的首选
ApacheApache(阿帕奇)是天下利用排名第一的Web做事器软件。它可以运行在险些所有广泛利用的打算机平台上,由于其跨平台和安全性被广泛利用,是最盛行的Web做事器端软件之一
JettyJetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet供应运行环境。
weblogicWebLogic Server是专门为企业电子商务运用系统开拓的。企业电子商务运用系统须要快速开拓,并哀求做事器端组件具有良好的灵巧性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。WebLogic Server简化了可移植及可扩展的运用系统的开拓,并为其它运用 系统和系统供应了丰富的互操作性。
nginxNginx是一款轻量级的Web做事器/反向代理做事器及电子邮件(IMAP/POP3)代理做事器,在BSD-like 协议下发行。其特点是霸占内存少,并发能力强。
中间件缓存缓存是现在系统中必不可少的模块,并且已经成为了高并发高性能架构的一个关键组件。缓存的紧张浸染:提升性能和缓解数据库压力,
RedisRedis是一个开源的内存数据构造存储,用作数据库、缓存和代理。供应诸如字符串、哈希、列表、凑集、带范围查询的排序凑集、位图、超日志、地理空间索引和流等数据构造。具有内置的复制、Lua脚本、LRU逐出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区供应高可用性。
MongoDBMongoDB 是一个基于分布式文件存储的数据库。由 C++ 措辞编写。旨在为 WEB 运用供应可扩展的高性能数据存储办理方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MemcachedMemcached是一个自由开源的,高性能,分布式内存工具缓存系统,用来提高Web运用扩展性的主要成分。是一个基于内存的key-value存储,用来存储小块的任意数据(字符串、工具)。简洁而强大,它的简洁设计便于快速开拓,减轻开拓难度,办理了大数据量缓存的很多问题。一样平常的利用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web运用的速率、提高可扩展性。
差异性我就不多说了,大略说下他们的利用场景:
Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适宜多读少写,大数据量的情形(如大家网大量查询用户信息、好友信息、文章信息等)。Redis:适用于对读写效率哀求都很高,数据处理业务繁芜和对安全性哀求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写哀求都很高)。MongoDB:紧张办理海量数据的访问效率问题。搜索solrSolr是一个独立的企业级搜索运用做事器,它对外供应类似于Web-service的API接口。用户可以通过http要求,向搜索引擎做事器提交一定格式的XML文件,天生索引;也可以通过Http Get操作提出查找要求,并得到XML格式的返回结果。
ElasticsearchElasticsearch是一个基于Lucene的搜索做事器。它供应了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
二者紧张差异es基本是开箱即用,非常大略,Solr略微繁芜。
Solr 支持更多格式的数据,比如JSON、XML、CSV,而 Elasticsearch 仅支持json文件格式。
Solr 查询快,但更新索引时慢(即插入删除慢),ES建立索引快(即查询慢),即实时性查询快。
ELK之以是推举ELK是由于面对分布衰落做事情形下,会显示出他的威力,不管是数据网络、数据处理、还是数据剖析可以节约很多韶光。ELK是Elasticsearch + Logstash + Kibana三个开源软件的组合,但是常日为了提高性能须要借助kafka,利用Filebeat进行日志网络,下面这个架构图是我做过的一个日志做事平台。
定时任务
说定定时任务大家可能都打仗过,例如Spring自带的定时任务SpringTask,但是SpringTask是存在很多问题的,例如:最致命的一个问题便是一旦定时抛出非常,生命就结束,下一次不会再实行。繁芜业务中利用起来是未便利的,这里推举两个定时任务框架Quartz和xx-job,第三方的功能比较强大,好用。
QuartzQuartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完备由Java开拓,可以用来实行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:
持久性作业 - 便是保持调度定时的状态;作业管理 - 对调度作业进行有效的管理;xx-jobXXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开拓迅速、学习大略、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
目前已有多家公司接入xxl-job,包括比较有名的大众点评,京东,优信二手车,北京尚德,360金融 (360),遐想集团 (遐想),易信 (网易)等等.... Quartz作为开源作业调度中的佼佼者,是作业调度的首选
Quartz在集议论况下只能通过API的办法对任务管理,同时,系统侵入性相称严重,而XX-JOB可以完美办理集群下任务额管理。以是,可以根据自己业务情形选择得当定时任务框架,
配置中央什么是配置中央?
集中将运用系统中对配置信息的管理作为一个新的运用功能模块,差异与传统的配置信息分散到系统各个角落办法,进行集中统一管理,并且供应额外功能。尤其是在微做事架构中,是不可或缺组件,乃至是必要组件之一。
为什么要利用配置中央?
在微做事体系中,做事的数量以及配置信息的日益增多,比如各种做事器参数配置、各种数据库访问参数配置、各种环境下运用配置信息的不同、配置信息修正之后实时生效等等,传统的配置文件办法或者将配置信息存放于数据库中的办法已无法知足开拓职员对配置管理的哀求。常见的配置中央中间件有:SpringCloud Config ,Nacos,apollo等。
SpringCloud Config2014年9月开源,Spring Cloud 生态组件,可以和Spring Cloud体系无缝整合,Spring Cloud Config支持通过/bus/refresh端点的destination参数来指定要更新配置的机器,不过全体流程不足自动化和体系化。相对付Apollo和Nacos还是比较弱的。
Nacos2018年6月,阿里开源的配置中央,也可以做DNS和RPC的做事创造。Nacos利用起来相比拟较简洁,在对性能哀求比较高的大规模场景更适宜。此外,Nacos除了供应配置中央的功能,还供应了动态做事创造、做事共享与管理的功能,降落了做事化改造过程中的难度。
apollo(阿波罗)2016年5月,携程开源的配置管理中央,具备规范的权限、流程管理等特性,Apollo可以直接在掌握台上点灰度发布指定发布机器的IP,接着再全量发布,做得比较体系化。
三者比拟如何选择:核心功能: Apollo和Nacos相对付Spring Cloud Config的生态支持更广
实时推送: Nacos和Apollo在配置实时推送链路上是比较大略高效的,Spring Cloud Config比较繁芜。
高可用支配: Nacos的支配构造比较大略,运维本钱较低。Apollo支配组件较多,运维本钱比Nacos高。Spring Cloud Config生产高可用的本钱最高。
监控做事器监控是实时节制做事器事情状态,并在须要时可以随时调用监控记录进行查看。
SpringBootAdminSpring Boot Admin用来管理和监控Spring Boot运用程序,通过UI来查看运用程序的状态,例如Spring Beans,系统属性,线程,http的调用情形等有限状态。
Druid
我知道Druid更多的用场便是连接池,实在他还有一个对SQL监控功能。
SkyWalking
Skywalking是由海内开源爱好者吴晟(原OneAPM工程师,目前在华为)开源并提交到Apache孵化器的产品,它同时接管了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。是一款基于分布式跟踪的运用程序性能监控系统。其余社区还发展出了一个叫OpenTracing的组织,旨在推进调用链监控的一些规范和标准事情。
存储把涉及到数据库干系或者可以作为数据仓库的中间件都归到一起了。
MyCatMycat是一个开源数据库中间件,是一个实现了MySQL协议的的数据库中间件做事器,我们可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问Mycat,而Mycat再利用用MySQL原生(Native)协议与多个MySQL做事器通信,也可以用JDBC协议与大多数主流数据库做事器通信,包括SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL办法的存储,未来还会支持更多类型的存储;一样平常地,Mycat紧张用于代理MySQL数据库,虽然它也支持去访问其他类型的数据库;
Mycat官网:http://www.mycat.io/
Canal我们先看官网的先容
canal,译意为水道/管道/沟渠,紧张用场是基于 MySQL 数据库增量日志解析,供应增量数据订阅和消费。
这句先容有几个关键字:增量日志,增量数据订阅和消费。
这里我们可以大略地把canal理解为一个用来同步增量数据的一个工具。
接下来我们看一张官网供应的示意图:
sharing-jdbc
定位为轻量级Java框架,在Java的JDBC层供应的额外做事。 它利用客户端直连数据库,以jar包形式供应做事,无需额外支配和依赖,可理解为增强版的JDBC驱动,完备兼容JDBC和各种ORM框架。
紧张功能
分库 & 分表读写分离分布式主键zookeeperZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠折衷系统,供应的功能包括:配置掩护、名字做事、分布式同步、组做事等。ZooKeeper的目标便是封装好繁芜易出错的关键做事,将大略易用的接口和性能高效、功能稳定的系统供应给用户。
事务这个事务更多指的是分布式事务处理插件。
Apache ShardingSphere
Apache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件办理方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(方案中)这3款相互独立,却又能够稠浊支配合营利用的产品组成。它们均供应标准化的数据分片、分布式事务和数据库管理功能,可适用于如Java同构、异构措辞、容器、云原生等各种多样化的运用处景。
SeataSeata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来。是阿里开源的分布式事务框架,属于二阶段提交模式。
行列步队什么是行列步队行列步队是一个存放的容器,当我们须要利用的时候可以取出供自己利用。行列步队是分布式系统中主要的组件,利用行列步队紧张是为了通过异步处理提高系统性能和削峰、降落系统耦合性。目前利用较多的行列步队有ActiveMQ,RabbitMQ,Kafka,RocketMQ。
为什么须要行列步队1.通过异步处理提高系统性能(削峰、减少相应所需韶光);
2.降落系统耦合性;
KafkaKafka是由Apache软件基金会开拓的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅系统,它可以处理消费者在网站中的所有动作流数据。这些数据常日是由于吞吐量的哀求而通过处理日志和日志聚合来办理。 对付像Hadoop一样的日志数据和离线剖析系统,但又哀求实时处理的限定,这是一个可行的办理方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的处理,也是为了通过集群来供应实时的。
RabbitMQAMQP,即Advanced Message Queuing Protocol,高等行列步队协议,是运用层协议的一个开放标准,为面向的中间件设计。中间件紧张用于组件之间的解耦,的发送者无需知道利用者的存在,反之亦然。 AMQP的紧张特色是面向、行列步队、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,做事器端用Erlang措辞编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发,在易用性、扩展性、高可用性等方面表现不俗。
ActiveMQActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种中间件的实现,ActiveMQ的设计目标是供应标准的,面向的,能够超过多措辞和多系统的运用集成通信中间件。
三者差异及其利用场景特性 ActiveMQ RabbitMQ kafka 开拓措辞 java erlang scala 单机吞吐量 万级 万级 10万级 时效性 ms级 us级 ms级以内 可用性 高(主从架构) 高(主从架构) 非常高(分布式架构) 功能特性 成熟的产品,在很多公司得到运用;有较多的文档;各种协议支持较好 基于erlang开拓,以是并发能力很强,性能极其好,延时很低;管理界面较丰富 只支持紧张的MQ功能,像一些查询,回溯等功能没有供应,毕竟是为大数据准备的,在大数据领域运用广。
数据库该数据库紧张是指关系型数据库,是按照数据构造来组织、存储和管理数据的仓库,数据库是存放数据的仓库,是一个别系或者软件必不可少的一部分。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速率相对较慢。
以是,现在我们利用关系型数据库管理系统来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型根本上的数据库,借助于凑集代数等数学观点和方法来处理数据库中的数据。
关系数据库管理系统的特点:
1.数据以表格的形式涌现2.每行为各种记录名称3.每列为记录名称所对应的数据域4.许多的行和列组成一张表单5.多少的表单组成database常见的数据管理系统紧张有:oracle、mysql、SQL Server、access、TiDB。
oracleOracle Database,简称 Oracle。Oracle 数据库系统是美国 Oracle 公司(甲骨文)供应的以分布式数据库为核心的一组软件产品,是目前最盛行的客户/做事器(client/server)的数据库之一。Oracle 数据库是目前天下上利用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完全的数据管理功能;作为一个关系型数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能,但它的所有知识,只要在一种机型长进修了Oracle知识,便能在各种类型的机器上利用它。
mysqlMySQL 是最盛行的关系型数据库管理系统,在 WEB 运用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)运用软件之一。目前也是Oracle 公司来托管。
SQL Server美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/做事器打算所设计的数据库管理系统,实现了与WindowsNT的有机结合,供应了基于事务的企业级信息管理系统方案。
accessAccess是微软把数据库引擎的图形用户界面和软件开拓工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。
TiDBTiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线剖析处理 (Hybrid Transactional and Analytical Processing, HTAP)的领悟型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等主要特性。目标是为用户供应一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 办理方案。TiDB 适宜高可用、强同等哀求较高、数据规模较大等各种运用处景。
上面这几个数据库优缺陷都比较明显,不在啰嗦了,大家在事情中可以根据自己实际情形选择得当的数据。
工具开拓IntelliJ IDEAIntelliJ在业界被公认为最好的java开拓工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各种版本工具(git、svn等)、JUnit、CVS整合、代码剖析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的都城布拉格,开拓职员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数措辞。
eclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开拓平台, 是 Java 的集成开拓环境(IDE),当然 Eclipse 也可以作为其他开拓措辞的集成开拓环境,如C,C++,PHP,和 Ruby 等。
MyEclipseMyEclipse,是在Eclipse 根本上加上自己的插件开拓而成的功能强大的企业级集成开拓环境,紧张用于Java、Java EE以及移动运用的开拓。在最新版本的MyEclipse中,合营CodeMix利用支持也十分广泛,尤其是对各种开源产品和主流开拓框架的支持相称不错。目前已支持PHP、Python、Vue、Angular、React、Java、Java EE等措辞和框架开拓。
这三款工具好坏我也不做任何评价,每个工具用户都不少,我周围IntelliJ IDEA和MyEclipse都有,我个人比较喜好用IntelliJ IDEA。
客户端工具版本掌握常见的版本空间工具svn和git
svnTortoiseSVN 是 Subversion 版本掌握系统的一个免费开源客户端,可以超越韶光的管理文件和目录。文件保存在中心版本库,除了能记住文件和目录的每次修正以外,版本库非常像普通的文件做事器。你可以将文件规复到过去的版本,并且可以通过检讨历史知道数据做了哪些修正,谁做的修正。这便是为什么许多人将 Subversion 和版本掌握系统看作一种“韶光机器”。
git
Git 是用于Linux内核开拓的版本掌握工具。与常用的版本掌握工具 Subversion 不同,它采取了分布式版本库的办法,不必做事器端软件支持,代码的发布和互换极其方便。 Git 的速率很快,这样的大项目来说自然很主要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
SVN的特点是大略,只是须要一个放代码的地方时用是OK的。
Git的特点版本掌握可以不依赖网络做任何事情,对分支和合并有更好的支持(这该当算是开拓者最关心的地方)。
数据库NavicatNavicat是一套快速、可靠并价格相称便宜的数据库管理工具,专为简化数据库的管理及降落系统管理本钱而设。它的设计符合数据库管理员、开拓职员及中小企业的须要。Navicat 因此直觉化的图形用户界面而建的,让你可以以安全并且大略的办法创建、组织、访问并共用信息。
PLSQL
PL/SQL Developer是一个集成开拓环境,专门开拓面向Oracle数据库的运用。PL/SQL也是一种程序措辞,叫做过程化SQL措辞(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的利用上增加了编程措辞的特点,以是PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现繁芜的功能或者打算,PL/SQL 只有 Oracle 数据库有。
Redis Desktop Manager
Redis Desktop Manager是一款windows平台下的可视化redis数据库桌面管理工具,利用它你可以查看、删除、修正你的redis数据库数据!
linux远程XShell
XShell是一个强大的安全终端仿照软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议。 XShell可以在Windows界面下用来访问远端不同系统下的做事器,从而比较好的达到远程掌握终真个目的。
WinSCP
宝塔宝塔面板是一个可以安装在做事器上的集成环境,并配套了web管理面板,可以在浏览器上直接掌握你的做事器,非常方便。 可以一键创建网站、FTP、数据库、SSL;安全管理,操持任务,文件管理,PHP多版本共存及切换;自带根本网站环境,支持windows系统(apache)和linux系统(apache或nginx)。
SecureCRT
Secure CRT 是一款SSH客户端软件,通过利用内含的VCP命令行程序可以进行加密文件的传输。
postMan
Postman一款非常盛行的API调试工具。实在,开拓职员用的更多。由于测试职员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对付开拓过程中去调试接口,Postman确实足够的大略方便,而且功能强大。
赞助Typora+PicGo
Typora+PicGo,最好用的Markdown+最好用的图床工具!
如果写博客的可以收藏起来。
notepad++
Notepad++中文版是程序员必备的文本编辑器,Notepad++中文版小巧高效,支持27种编程措辞,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS 等,Notepad++中文版编辑器可完美地取代微软的记事本。
画图visio
Office Visio 是Office软件系列中的卖力绘制流程图和示意图的软件,是一款便于IT和商务职员就繁芜信息、系统和流程进行可视化处理、剖析和互换的软件。利用具有专业外不雅观的 Office Visio 图表,可以促进对系统和流程的理解,深入理解繁芜信息并利用这些知识做出更好的业务决策。常见软件架构、流程图都可以在里面完成。
processonProcessOn是一个在线作图工具的聚合平台, 它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织构造图等等, 您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,方案事情。
官网:https://www.processon.com/
PowerDesignerowerDesigner是一款非常全面的数据库设计工具。利用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,大略实用。
XmindXMind 是一个全功能的思维导图和头脑风暴软件,为引发灵感和创意而生。作为一款有效提升事情和生活效率的生产力工具,受到环球百千万用户的青睐。
iReport
说到 iReport 不得不先先容 Jasperreport,Jasperreport 是一个报表制作程序,用户须要按照它制订的规则编写一个 XML 文件,然后得到用户须要输出的格式文件。它支持输出的文件格式包括 PDF,HTML,XML,XLS,CVS 等等。而 iReport 便是一个制作 Jasperreport 的 XML 文件的可视化开拓工具。
浏览器Chrome
Google Chrome是一款由Google公司开拓的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速率和安全性,并创造出大略且有效率的利用者界面。
搜狗搜狗浏览器 由搜狗公司开拓,基于谷歌chromium内核,力求为用户供应跨终端无缝利用体验,让上网更大略、网页阅读更流畅的浏览器。
火狐Mozilla Firefox,中文俗称“火狐”,是一个由Mozilla开拓的自由及开放源代码的网页浏览器。其利用Gecko排版引擎,支持多种操作系统,如Windows、macOS及GNU/Linux等
IEInternet Explorer(简称:IE)是微软公司微软公司推出的一款网页浏览器。原称Microsoft Internet Explorer(6版本以前)和Windows Internet Explorer(7、8、9、10、11版本)。在IE7以前,中文直译为“网络探路者”,但在IE7往后官方便直接俗称"IE浏览器"。
如果做前端开拓,这几款浏览器兼容性都得兼顾。很早之前IE浏览器市场是比较大,随着韶光推移,谷歌浏览器霸占了比较大的市场。我个人日常开拓中谷歌用的比较多,分外情形才会利用其它浏览器。
性能剖析jmeterJMeter是Apache组织开拓的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web运用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 做事程序、CGI 脚本、Java 工具、数据库, 等等。
abapache bench简称ab,它是apache自带的压力测试工具。ab非常实用,它不仅可以对apache做事器进行网站访问压力测试,也可以对或其它类型的做事器进行压力测试。
MATMAT是Java堆内存剖析工具,可从http://www.eclipse.org/mat/中下载。
你在成为大神的路上都学习了哪些技能,欢迎留言互换。