技能栈定义
一样平常来说是指将N种技能相互组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以指节制这些技能以及合营利用的履历。
举个例子:
开拓一个普通OA(办公自动化)系统,我们利用了html+css+javascript+vue+ Spring Boot+Spring cloud+hibernate + Spring+rocket Mq+Redis+Es+linux+ mysql等等,这些技能加起来就可以称为技能栈。
互联网公司的技能栈整体分为5大块:前端、后端、中间件、运维和工具。
下面就分别给大家阐明一下最主要的前端、后端利用了哪些技能,这些技能又能办理什么问题。
前端技能栈
01
利用css3作为页面的样式掌握
办理页面渲染问题。
02
利用Html5作为页面构造的标签措辞
办理移动真个页面兼容性问题。
03
利用seajs框架
办理项目中模块开拓和加载的问题。
04
利用利用Jquery前端js框架
办理方便操作页面元素的问题。
05
引用盛行的前端插件实现业务需求
利用bootstrapValidator作为表单的验证插件
利用bootstrap进行页面的布局;
利用layer作为弹窗插件;
利用jQuery cxSelect 实现下拉列表的多级联动;
利用bootstrap fileinput完成多文件的上传;
利用icheck完成对多选框的美化;
利用百度ueditor办理繁芜内容编辑场景。
06
自定义业务插件抽取
紧张办理系统导出利用的功能代码重复性问题。收藏功能;点赞功能;评论功能;留言功能;关注功能;页面多处个人信息的设置;页面多处商品页面调起支付的功能;题库的组卷系统中的试题栏。
后端技能栈
01
项目分层思想实现分布式架构
Core层(中央、核心):与业务无关,供应根本的能力,比如:数据库持久,redis缓存,http封装,通用工具。统一的core项目,供应根本的能力we-core-Db项目:mybatis的mapper的根本上做了二次封装;we-core-redis项目:基于jedis的根本上做了二次封装;we-core-web:存放一些与web环境下利用的工具类和处理器;自定义web环境;利用的aop表明;统一的非常处理器;自定义分页标签的。 base层(根基、根本):该层中的项目有且只能代表一个真实存在而且能独立存在的核心实体对应的业务。 business层(业务逻辑层):业务层,办理多端,多项目公用的业务流程。 web层:为互联网用户供应对外做事,在这层的每一个项目都有自己不被共享的业务。
02
抽取独立做事实现做事共享
好多项目都会利用到很多相同的做事,我们会把它抽取成独立的项目,先以jar包的办法供应公用。 比如:短信服务,邮件做事,字典做事,收藏做事,关注做事,订单做事,支付做事3. 基于jedis的根本上做了二次封装,实现java对redis的读写。运用处景: 全体项目利用统一的id天生策略。 利用缓存进行存放freemark代码片段的内容,办理高频查询数据给做事器带来的压力。
03
利用maven进行项目的管理
利用maven自定义骨架可以实现公司内部创建项目模板化,减少大家创建项目时的韶光,创建完就能利用;利用maven的聚合的特性实现多项目统一进行构建;利用maven继续的特性实现同一项目的不同maven工程的相同配置问题;利用maven的属性我们可以利用自定义变量以及访问其他配置项值办理我们配置重复的问题;利用maven帮助我们规范工程资源的的存放;利用maven的依赖特性可以办理我们,jar包之间的依赖,排出依赖。;利用maven仓库的http代理可以实现让maven帮助我们查找,下载所需的jar包,我们只须要指定依赖的gav;利用maven我们把公司自己的开拓的项目发布到nexus上供其他的项目利用。
04
利用nexus进行内网私服搭建
办理jar包重复下载的问题; 办理公司内部项目共享的问题; maven仓库以外的jar包管理。
05
利用gitlab进行项目的版本管理
办理团队多人协同开拓项目的问题,我们团队制订了利用git开拓的规范流程。
06
利用jenkins/hudson实现项目的自动化支配
办理项目自动化构建,发布,回滚等问题;定时构建及时创造项目中的问题;实现一键发布缩短发布的韶光;自动构建和发布的大致流程;从gitlab上拉取最新的代码;利用maven进行构建项目;将构建完成的项目利用scp复制到指定做事器中;并通过远程调用指定做事器的脚本进行项目的发布。
07
利用mysql进行数据存储
这个不用多阐明。
08
利用Spring+SpringMvc+Mybitas
利用经典的ssm作为平台的MVC框架, 处理http要求,处理业务逻辑,访问数据库。
09
利用hibernateValidator
实现后端吸收到的参数进行参数的合法性验证,像非空,最小,最大,范围等。
10
利用spring mvc的拦截器
实现项目内的权限掌握,比如:sso权限验证,角色的验证,支付的验证等。
11
利用spring mvc的AOP
实现多处相同代码抽取出来利用AOP的办法进行公用,比如:json视图的固定格式返回。
12
利用logback
作为架构的日志框架。
13
利用flying-saucer+itext+freemark
办理项目中pdf的运用处景,比如:学生下载的准考证,测试报告等。
14
利用JavaMail技能
实现邮件的发送做事。
15
利用TestNg+H2
实现进行单元化测试,担保代码质量。
16
利用Cookie+Redis
实现平台单点登录。
17
实现SpringMvc供应
的HandlerExceptionResolver接口
利用spring供应HandlerExceptionResolver实现全站统一非常处理。 包括:业务非常,登录超时非常,其他非常。
18
实现SpringMvc供应
的ServletContextAware接口
可以实现项目启动时添加一些操作。 初始化freemarker的配置; 初始化项目全局共享的静态变量(域名,文件存储目录等)。
19
利用Quartz
实现定时任务处理。
20
利用网络爬虫技能Jsoup
办理爬取其他网站的数据信息问题。
21
利用Qdcode
办理天生二维码的功能。
22
利用jsp的自定义标签
办理全站分页的实现。
23
利用阿里的Druid
作为连接数据库的连接池。
24
利用spring的Ioc容器办理工具的依赖注入
利用Ioc实现指定特定接口的实现类以应对业务实现的变革;利用ioc实现业务中须要的配置注入,防止参数值写去世。
25
利用CXF或者Axis
实现通过WebService和第三方进行对接。
26
结合自定义表明+反射
实现对方法访问的掌握以及添加额外业务逻辑。
比如:个人信息在多个要求Controller中都须要添补。
27
利用Mybatis框架
办理数据持久化的问题;引入开源的:Mybatis的Mapper接口的办法实现支持单表的curd,避免写更多的重复代码;引入pagehelper办理mybatis的分页问题;利用Mybatis的Interceptor实现sql的打印功能。
28
利用Jsp,Freemark
作为视图层的处理技能。
29
利用Freemark+字符串更换实现自定义vt标签
自定义视图标签紧张为理解决像字典那种字段不断须要跨表查询的问题。
30
自定义json视图
自定义json视图是为了实现规定json返回的统一格式。
31
利用El表达式和jstl标签库
办理访问model中的数据以及页面上显示的逻辑处理。
32
利用自定义表明实现某些功能的标注
在处理json返回值的时候可以在标注一下@Void就表示不须要包裹; 在sso拦截权限的时候可以标注一下方法是否须要拦截; 在多个Controller里都须要设置用户信息到页面的时候,我们可以利用Aop+Annotation的办法实现。
会用一种是入门,全部会用是大神!