一些前后端的概念,本人是初学者,没有能力自己总结,都是复制他人的博客,具体内容可以点击链接跳转到相关博客查看,希望被copy的各位博主见谅
一、概念通识
1、前后端分离是指什么
前后端分离就是把数据操作和显示分离出来。前端专注做数据显示,通过文字,图片或者图标等方式让数据形象直观的显示出来。后端专注做数据的操作。前端把数据发给后端,有后端对数据进行修改。
后端提供接口给前端调用,来触发后端对数据的操作。
什么是前后端分离? - shanjinghao - 博客园 (cnblogs.com)
(13条消息) 轻松理解前后端分离(通俗易懂)_Coder Xu-优快云博客_前后端分离
2、架构、框架、脚手架的区别
架构:抽象解决方案
架构不是软件,而是关于软件如何设计的策略,架构决策体现在软件系统中。引入软件架构之后,整个开发过程变成了“分两步走”,先做架构设计,再进行框架开发,架构决策会体现在框架之中。不能把软件代码说成是软件架构,因为软件架构是比具体代码高一个抽象层的概念。
架构体现在“构”字上,理解成构造,是一个动词性的,是一系列动作发生的策略性体现。
框架:半成品软件
框架一种特殊的软件,它不能提供完整的解决方案,而是为构建解决方案提供良好的基础,框架是半成品,典型地,框架是系统或子系统的半成品;框架中的服务被应用直接调用,框架中的扩展点是供应用开发人员定制的“可变化点”。
框:约束性
架:支撑性
框架和架构的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”策略,先大局后局部,就出现了架构,先通用后专用,就出现了框架。架构是抽象解决方案,关注大局而忽略细节,而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。
脚手架:方案的封装,一套工具
脚手架的作用是创建项目的初始文件,本质是方案的封装。
是对开源技术的整合应用,封装程度较低,偏向于一套技术最佳实践。
脚手架能快速生成配置,降低框架学习成本。
“脚手架”是一种元编程的方法,用于构建基于数据库的应用。许多MVC框架都有运用这种思想。
程序员编写一份specification(规格说明书),来描述怎样去使用数据库;而由(脚手架的)编译器来根据这份specification生成相应的代码,进行增、删、改、查数据库的操作。我们把这种模式称为"脚手架",在脚手架上面去更高效的建造出强大的应用!
参考文章
架构和框架的区别是什么?对比分析 - 云+社区 - 腾讯云 (tencent.com)
编程脚手架 - 光何 - 博客园 (cnblogs.com)
编程中的脚手架是什么意思? - 知乎 (zhihu.com)
(13条消息) 架构,框架,模式,模块、组件、插件的含义和区别_jiang7701037的博客-优快云博客
3、【拓展题】后端和前端为什么这样分工,是什么时期开始的,后端、前端、运维工程师的工作内容与知识架构
为什么出现前后端分工
因为初期的软件开发其实是侧重于后端的,因为互联网初期的页面功能比较简单,只需要做数据的展示,然后提供基本的操作就可以了!所以整个项目的重点放在后台的业务逻辑处理上。但是随着业务和技术的发展,前端功能越来越复杂,变得越来越重要,同时前端的技术栈越来越丰富!这样我们在开发中遇到的问题就越来越多,解决这些问题的难度就越来越大,这时我们发现前端开发不能像以前那样零散的分布在整个系统架构当中了。前端也应该像后端那样,实现工程化、模块化、系统化。
一句话总结:为了适应技术和业务发展的需求。前端开发需要从之前前后端混合在一起的组织架构当中分离出来,形成独立的前端部门和后端部门,这就是前后端分离产生的原因
轻松理解前后端分离(通俗易懂)_Coder Xu-优快云博客_前后端分离
前后端分离的优点:
1、彻底解放前端。前端不再需要向后台提供模板或是后台在前端HTML中嵌入后台代。
2、提高工作效率,分工更加明确。前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的JSON文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。
3、局部性能提升。通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。
4、降低维护成本。通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。
5、实现高内聚低耦合,减少后端(应用)服务器的并发/负载压力。
6、即使后端服务暂时超时或者宕机了,前端页面也会正常访问,但无法提供数据。
7、可以使后台能更好的追求高并发、高可用、高性能,使前端能更好的追求页面表现、速度流畅、兼容性、用户体验等。
为什么要前后端分离?前后端分离的优点是什么? - 知乎 (zhihu.com)
前后端分离的历史
软件开发早期是没有前后端分离的概念的,为什么呢?因为当时压根儿就没有前端工程师,专门的前端工程师大约是在 2005 年。在此之前前端是不受重视的。
1998 年 ajax 技术的出现,允许客户端脚本发送 HTTP 请求(XMLHTTP),并且局部刷新页面,这种突破性的创新使得 web 高速发展,推动了 web 的发展。随着 HTML5,CSS3,ES6(简称 356)的出现,web 正以前所未有的速度前进,web 工程师从无到有,再到现在 web 工程师被赋予了很多花环,机遇和挑战。也因此前后端不得不逐渐的分离。
这之后又出现了将数据和模板完全分离的技术如 velocity 等。
前后端分离历史_low5252的博客-优快云博客_前后端分离什么时候开始的
后端、前端、运维工程师的工作内容
沙雕版解释:
简洁版
前端、后端、运维、开发运维、全栈、架构师这几个职位之间有什么关系? - 知乎 (zhihu.com)
后端、前端、运维工程师的知识架构与学习路线
参见博客:
前端、后端、运维的基本思考 | 计算机科学论坛 (learnku.com)
前端、后端、运维人员的学习路线_程序鹏-优快云博客_前端后端运维
二、后端
1、Java主流组件的介绍,如mybatis、shiro等
Mybatis
mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
它支持定制化SQL、存储过程以及高级映射。避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。
什么是Mybatis? - 知我者,足以 - 博客园 (cnblogs.com)
什么是Mybatis?最全Mybatis学习笔记 - 知乎 (zhihu.com)
Shiro
Shiro是一个Java平台的开源权限框架,用于认证和访问授权。具体来说,满足对如下元素的支持:
-
用户,角色,权限(仅仅是操作权限,数据权限必须与业务需求紧密结合),资源(url)。
-
用户分配角色,角色定义权限。
-
访问授权时支持角色或者权限,并且支持多级的权限定义。
2、Spring的发展历史以及springboot的特征
细说shiro之一:shiro简介 - nuccch - 博客园 (cnblogs.com)
Thymeleaf
Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理 HTML,XML,JavaScript,CSS 甚至纯文本。
Thymeleaf 的主要目标是提供一种优雅且高度可维护的模板创建方式。为此,它以“自然模板”的概念为基础,以不影响模板用作设计原型的方式将其逻辑注入模板文件。这样可以改善设计沟通,并缩小设计团队与开发团队之间的差距。
Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:
第一,Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。
这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
第二,Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。
第三,Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
Thymeleaf 教程 - Thymeleaf | Docs4dev
(14条消息) SpringBoot——【thymeleaf】——为什么要使用thymeleaf_奔跑的狮子-优快云博客
druid
Druid为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能.它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
同时Druid不仅仅是一个数据库连接池,它包括四个部分:
Druid是一个JDBC组件,它包括三个部分:
基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
SQLParser
Druid的功能
1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
所以Druid可以:
1、充当数据库连接池。
2、可以监控数据库访问性能
3、获得SQL执行日志
Druid-数据库连接池 - 简书 (jianshu.com)
(14条消息) Druid是什么和Druid的介绍_past__time的博客-优快云博客_druid是什么
hutool
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
(14条消息) Hutool工具_技术老鸟-优快云博客_hutool
2、Spring的发展历史以及springboot的特征
spring是什么
通常, Spring 是指一个用于构造 JAVA 应用程序的轻量级框架,但这句话包含两个有趣的地方。首先,你可以采用 Spring 来构造任何程序,这与Apache Struts这样的框架不同,你不限定于只编写 WEB 应用。其次,以上解释中的“轻量级”并不意味着类数量很少,或者发行包大小很小,实际上,它指的是 Spring 哲学原理的总称——那就是最少的侵入。 Spring 是轻量级的,意味着你只需对你的程序代码做很少改动 ( 假若有的话 ) ,而获得 Spring 核心带来的好处,你也可以在任何时候选择抛弃 Spring ,你会发现这实在很容易。注意,上面这句话只针对 Spring 核心本身——很多附加的 Spring 组件,比如数据访问,需要与 Spring 框架有相对紧密得多的耦合关系。但是,这些耦合带来的好处显而易见。
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
spring的发展历史
关于Spring的发展起源要回溯到2002年,当时正是Java EE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。这时候有一个美国的小伙子(Rod Johnson)认为 EJB 太过臃肿,并不是所有的项目都需要使用 EJB 这种大型框架,应该会有一种更好的方案来解决这个问题。
他为了证明自己的想法是正确的,在2001年10月写了一本书《Expert One-on-One J2EE》,介绍了当时Java企业应用程序开发的情况,并指出了 Java EE 和 EJB 组件框架中存在的一些主要缺陷。在这本书中,他提出了一个基于普通 Java 类和依赖注入的更简单的解决方案。在书中,他展示了如何在不使用 EJB 的情况下构建高质量、可扩展的在线座位预留系统。为了构建应用程序,他编写了超过 30,000 行的基础结构代码,项目中的根包命名为 com.interface21
,所以人们最初称这套开源框架为 interface21,这就是 Spring 的前身。
在这本书发布后,一对一的 J2EE 设计和开发一炮而红。这本书免费提供的大部分基础架构代码都是高度可重用的。2003 年 Rod Johnson 和同伴在此框架的基础上开发了一个全新的框架命名为 Spring,据 Rod Johnson 介绍 Spring 是传统 J2EE 新的开始,随后 Spring 发展进入快车道。
-
2004 年 03 月,1.0 版发布。
-
2006 年 10 月,2.0 版发布。
-
2007 年 11 月,更名为 SpringSource,同时发布了 Spring 2.5。
-
2009 年 12 月,Spring 3.0 发布。
-
2013 年 12 月,Pivotal 宣布发布 Spring 框架 4.0。
-
2017 年 09 月,Spring 5.0 发布。
随着使用 Spring 进行开发的个人和企业越来越多,Spring 也慢慢从一个单一简洁的小框架变成一个大而全的开源软件,Spring 的边界不断的进行扩充,到了后来 Spring 几乎可以做任何事情了,市面上主流的开源软件、中间件都有 Spring 对应组件支持,人们在享用 Spring 的这种便利之后,也遇到了一些问题。
Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着人们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spirng 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置地狱。
Spring 似乎也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,快速开发微小独立的应用变得更为急迫,Spring 刚好处在这么一个交叉点上,于 2013 年初开始的 Spring Boot 项目的研发,2014年4月,Spring Boot 1.0.0 发布。
浅谈Spring发展史 - shenhaha - 博客园 (cnblogs.com)
spring boot的特征
使用 Spring 项目引导页面可以在几秒构建一个项目
方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks
非常简洁的安全策略集成
支持关系数据库和非关系数据库
内嵌Tomcat或Jetty等Servlet容器
强大的开发包,支持热启动
尽可能自动配置Spring容器
自动管理依赖
自带应用监控
(14条消息) 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?_纯洁的微笑-优快云博客
3、maven是什么,有什么用
maven是什么
Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。
Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包。
Maven的作用
帮你下载jar包。maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你铺天盖地的到处搜索你需要的jar包了下面是示范配置文件pom.xml
寻找依赖,帮你下载依赖。寻找jar包是第一基本功能,寻找依赖在这个是在这个基础上的功能。在maven的代码库中,每一个jar包也有自己的 pom.xml文件,而这个文件里面也会有配置,什么依赖范围我就不细说了,我想表达的就是,只要你配置的jar包所依赖的其他jar包都会被maven自动下载下来。
热部署,热编译。意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。
Maven有什么用?怎么用?_憧憬美好生活的boy-优快云博客
[什么是Maven? - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/64201289#:~:text=Maven是基于项目对象模型 (POM project,object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具 [百度百科])
4、SVN/GIT是什么,为什么要用、两者的不同
Git和SVN
Git和SVN都是一种版本控制系统,版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况以及回溯的系统。 任何类型的文件都可以进行版本控制。
为什么要使用版本控制
统一工作方式。版本控制系统工作流可防止每个人使用各种不兼容的工具按照自己的习惯进行开发的混乱局面。 版本控制系统提供流程强制执行措施和权控制能力,让所有人都有章可循。
协同合作。版本控制系统可以帮助不同开发人员同步代码版本,并确保你的更改不会与团队其他成员的更改相互冲突。
跟踪改动。每个版本都有一个关于版本更改(如修复 bug 或新增功能)的说明。 此说明有助于按版本(而不是按各个文件更改)来跟踪代码更改。 可以根据需要随时在版本控制系统中查看和还原各个版本中存储的代码。 这样一来,你就可以在任意一版代码的基础上轻松开展新工作。
恢复之前的版本
**保留历史。**在团队保存代码的新版本时,版本控制系统会保留变更历史记录。 团队成员可以查看此历史记录,了解是谁在何时进行更改以及更改原因。
**配合持续集成:**持续集成/发布工具必须和版本控制系统有效的集成才能发挥出真正的能量,一个高效的分支策略的设计必须考虑持续集成和发布的要求,同时兼顾开发流程的有效性。
g4e基础篇#1 为什么要使用版本控制系统 - 北京的201个蓝天 - 博客园 (cnblogs.com)
SVN和Git的区别
GIT是分布式的,SVN不是分布式。
GIT把内容按元数据方式存储,而SVN是按文件。
GIT分支和SVN的分支不同。
GIT没有一个全局的版本号,而SVN有。
GIT的内容完整性要优于SVN。
5、【拓展题】什么是持续集成,有什么作用
什么是持续性集成
持续集成(CI,continuous integration),是一种软件开发的实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
持续集成指的是,频繁地(一天多次)将代码集成到主干,通过持续集成流程的进行自动化方式的构建,编译和测试,提供可以部署发布的单元包。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
持续集成的作用
1、降低风险,由于持续集成不断去构建,编译和测试,可以很早期发现问题,所以修复的代价就少;
2、对系统健康持续检查,减少发布风险带来的问题;
3、减少重复性工作;
4、持续部署,提供可部署单元包;
5、持续交付可供使用的版本;
6、增强团队信心;
浅谈持续集成的理解以及实现持续集成,需要做什么? - 双眸 - 博客园 (cnblogs.com)
三、前端
1、前端架构的三大主流框架是什么,有什么区别
前端三大框架
当前,三大主流前端框架分别是React、Vue和Angular
React
React 是一个 Facebook 和 Instagram 用来创建用户界面的JavaScript 库。很多人认为 React 是 MVC 中的 V(视图)。我们创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序。React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。
Angular
AngularJS诞生于2009年,由Misko Hevery等人创建而成,后来被Google收购,AngularJS弥补了HTML在构建应用方面的不足,它是一款优秀的前端JS框架,通过使用标识符结构来扩展Web应用中的HTML词汇,使得开发者能够使用HTML来声明动态内容。
Vue
Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,相比其它的 MVVM (Model-ViewModel-View-Controller,ViewModel分离了大部分Controller代码)框架,Vue.js 更容易上手。很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点”。
前端三大主流框架的对比React、Vue、Angular - 简书 (jianshu.com)
区别
React
- 依赖虚拟DOM;
- 采用特殊的JSX语法;
- 中心思想:一切都是组件,组件实例之间可以嵌套;
- 核心库不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载。
Angular
- 框架比较成熟完整,过于庞大,上手难;
- 指令以ng-xxx开头;
- 由谷歌开发和维护;
- 版本1比较适合PC端开发,版本2在往移动端靠;
- 不支持低版本浏览器;
- 内置指令和自定义指令;
- 内置过滤器和自定义过滤器;
- 支持双向数据绑定;
Vue
- 它是一个轻量级框架,其核心库只关注视图层,简单小巧、易学易上手;
- 指令以v-xxx开头;
- 个人维护项目;
- 适合于移动端开发;
- 不支持低版本浏览器;
- 内置指令和自定义指令;
- 内置过滤器和自定义过滤器;
- 支持双向数据绑定;
- 使用DOM模板。中心思想:一切都是组件,组件实例之间可以嵌套;
- 核心库不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载;
- 基于依赖追踪的观察系统,并且异步队列更新。
Angular、Vue和React的区别_蜗牛先生-优快云博客
2、UI框架和前端框架是什么区别,有什么UI框架
UI(User Interface,用户界面),泛指用户的操作界面,UI设计主要指界面的样式,美观程度。UI框架主要是提供了用户界面的模板,注重的是样式,而前端框架注重逻辑,可以理解为,前者注重css,后者注重js。
常用UI框架有Bootstrap、jQuery UI、Layui、Foundation、Semantic UI、Pure。
3、Node.js是什么,对于前端意味着什么
Node.js是Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C++ 程序,目的是提供一个 JavaScript 的运行环境,更进一步的说是在服务端的运行环境,或者说是一个 JS 语言解释器。
统上 Web 开发者,前端用 JS 写,但是写服务器端代码的时候还必须用另外一种语言,类似 Ruby/Java/PHP 等。但是 Node.js 出现之后,JS 前后通吃了。
Web 前端的 JS 代码最终还是运行在浏览器中的,所以运行的时候,或者说在产品环境下,不依赖于 Node.js 。但是,Node.js 诞生以后,前端大爆发,类似 React/Vuejs 这样的前端框架的开发环境变得非常强大和负责,Node.js 是这些开发环境运行的基础。
Node.js 给前端带来了什么 | justjavac(迷渡)
4、Npm是什么,有什么用
Node.js 引发了前后端开发的爆发,尤其是前端。 JS 开发者众多,所以贡献开源代码的人就非常多,所有这些凝结成了 npm 这个世界上最大的软件包仓库。
npm 是 Node Package Manager 的缩写,意思是 Node 的包管理系统。Nodejs 现在如日中天,其中 npm 这个功不可没。在这里,我们要实现各种功能几乎都能找到现成的别人写好的包,直接拿了用就好了。
npm 是干什么的?(非教程) - 知乎 (zhihu.com)
5、【拓展题】业内主流的前端方案与发展方向
当前主流前端方案
发布时间 | 性质 | 特点 | 优点 | 缺点 | 兼容性 | ||
---|---|---|---|---|---|---|---|
旧框架 | JS | 1995年 | 动态类型 | 1、不适合大项目2、不利于团队合作和构建复杂项目 | |||
node.js | 2009年5月 | 1、是前端框架2、是一个基于ChromeV8引擎的JavaScript运行环境 | Node.js为基础的Express和KOA后端框架 | 1、前后端都可以开发。2、后端开发效率比Python做后端开发效率高。 | 1、支持Window/linux | ||
TpyeScript | 2013年6月19日 | 1、是JavaScript 的超集,本质还是JavaScript。 2、是编程语言。 | 1、静态类型、结构清晰、 | 1、可以用**TypeScript去写Node.js脚本****2、适合做小型项目。**3、可以做前后端开发 | |||
当前主流框架 | vue | 2014.01.24 | 1、是一个JavaScript 库。2、从Angular等启发而来的服务端语言。 | 1、轻量级,易上手,易学习。2、.轻量级的框架/双向数据绑定 | 1、具备强大的组件。2、架构较新颖。3、全世界三大前端框架之一,中国最热。4、简单、快速、组合、紧凑、强大。5 | 1、新生、不成熟。2、适合小型项目3、 | 1、不支持IE8 |
react | 2013年 | 同构、纯粹的javascript | 声明式设计、高效、灵活 | 1、全世界三大前端框架之一2、速度快、跨浏览器兼容、 模块化、单向数据流 | 1、适合小型项目 | 1、支持IE8 | |
angular | 2009年 | 1.良好的应用程序结构2.双向数据绑定3.指令4.HTML模板5.可嵌入、注入和测试 | 1、全世界三大前端框架之一2、架构较完善。3、谷歌开发。 | 1、入门较难,例子少 | 1、对IE6/7 兼容不好 | ||
总结:以Github为代表的代码管理仓库;NPM和Yarn为代表的包管理工具;ES6及Babel和TypeScript构成的脚本体系;HTML5;CSS3和相应的处理技术;React、Vue、Anjular为代表的框架;Webpack为代表的打包工具;Node.js为基础的Express和KOA后端框架;Hybrid技术。https://www.cnblogs.com/luwanlin/p/11228147.html | |||||||
未来发展 | 1、VR、物联网Web化、Web人工智能。参考:https://zhuanlan.zhihu.com/p/58022160、https://zhuanlan.zhihu.com/p/995981952、WebAssembly 核心规范正式成为Web标准Serverless来势汹汹,大前端融合趋势势不可挡Flutter 2019年终于迎来了突破性的发展3、HTML 5.3 is coming.4、Vue.js usage will likely overtake all Angular usage.5、也就是很多人会尝试TypeScript,就像之前尝试 CoffeeScript 一样,后来就不火了 | ||||||
当前主流的(2020年)前端+后端架构以及未来技术演进方向趋势_xpj8888的博客-优快云博客
| | | | | | |