您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

聊聊互联网那些主流技术栈

时间:2020-12-14 14:20:41  来源:  作者:

技术栈定义

一般来说是指将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的方式实现。

 

会用一种是入门,全部会用是大神!



Tags:技术栈   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
有点眼晕,以下只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大后台的概念,放...【详细内容】
2021-09-14  Tags: 技术栈  点击:(63)  评论:(0)  加入收藏
尚硅谷前端研究院第 1 章:Vue 核心 Vue 简介官网英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/介绍与描述 动态构建用户界面的渐进式 JavaScript 框...【详细内容】
2021-08-26  Tags: 技术栈  点击:(115)  评论:(0)  加入收藏
随着介绍的新工具和技术,开发人员技术景观一直变化。通过对职位板上的无数职位描述进行了大量的采访和阅读,我认为这是2021年的JavaScript开发商的伟大现代化技术堆栈。我的...【详细内容】
2021-07-22  Tags: 技术栈  点击:(165)  评论:(0)  加入收藏
相信很多学Java的同学都有想转大数据或者学大数据的想法,但是一看到网上那些大数据的技术栈,就一脸懵逼,什么Hadoop、HDFS、MapReduce、Hive、Kafka、Zookeeper、HBase、Sqoop...【详细内容】
2021-04-20  Tags: 技术栈  点击:(124)  评论:(0)  加入收藏
技术栈定义一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以指掌握这些技术以及配合使用的经验。举个例子:开发一个普通OA(办公自动...【详细内容】
2020-12-14  Tags: 技术栈  点击:(298)  评论:(0)  加入收藏
作者: mcuking转发连接:https://mp.weixin.qq.com/s/y_gPdEZ0lRdquxqRd_7kPQ前言项目地址:preload-routeshttps://github.com/micro-frontends-vue/preload-routesasync-route...【详细内容】
2020-08-13  Tags: 技术栈  点击:(66)  评论:(0)  加入收藏
Java并发工具类主要有CyclicBarrier、CountDownLatch、Semaphore和Exchanger,日常开发中经常使用的是CountDownLatch和Semaphore。下面就简单分析下这几个并发工具类:CyclicB...【详细内容】
2020-06-18  Tags: 技术栈  点击:(59)  评论:(0)  加入收藏
现在 Java 相关岗位薪资越来越高、涨幅越来越大。通过职友集数据可以查看,以北京 Java 相关岗位为例,其中 【20k-30k】 薪酬的 Java 工程师,占到了整体从业者的 30.8%!北京 Java...【详细内容】
2020-03-11  Tags: 技术栈  点击:(104)  评论:(0)  加入收藏
前言说到后台技术栈,脑海中是不是浮现的是这样一幅图?图 1有点眼晕,以下只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开...【详细内容】
2020-02-16  Tags: 技术栈  点击:(47)  评论:(0)  加入收藏
这篇文章将会介绍过去几年 JavaScript 开发方面的革命性发展。最近几年,应用开发的方法论发生了翻天覆地的变化。随着微服务架构、云计算、单页应用和响应式设计的兴起和发...【详细内容】
2019-12-06  Tags: 技术栈  点击:(78)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条