1. 浏览器内核
在Web大行其道的时代,网民需要上网浏览网页就需要依赖浏览器这个软件,掌握了浏览器就掌握了流量的入口,于是各大软件公司开始研发自己品牌的浏览器,不同品牌的浏览器其实现原理当然是有区别的,这个实现原理就是浏览器的核心,我们称其浏览器内核。
现在市面上有这么多的浏览器,如Chrome,QQ浏览器,搜狗浏览器,这些浏览器厂商是不是都是自己研发浏览器内核了?不是的!
因为有些公司或者团体将浏览器内核进行了开源,方便其他人基于该内核进行二次开发,常见的开源浏览器内核有Chromium、WebKit、Gecko。
正因为有了这些开源内核的存在,我们可以不用自己开发内核也可以开发属于自己品牌的浏览器,比如QQ浏览器,搜狗浏览器,360浏览器都是基于IE内核和Chromium内核二次封装而成,美其名曰双引擎(双内核)。
目前市面上流行的拥有自主内核的浏览器:
浏览器 | 内核 |
---|---|
Chrome | Chromium |
Safari | WebKit |
Firefox | Gecko |
IE | IE内核 |
2. JavaScript, ECMAScript, ES6, TypeScript
JavaScript
是一个编程语言的名称,类似Java,C++,PHP,是由Netscape公司开发的一种解释性编程语言,其运行的宿主环境大多是浏览器,但也可以是其他环境,如Node。
因为Netscape公司希望JavaScript
成为一种浏览器脚本语言的标准规范,于是在1996年将 JavaScript 提交给标准化组织 ECMA。次年,ECMA就发布了标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种标准称为ECMAScript。
所以说,ECMAScript
是一个的浏览器脚本语言的标准规范。
不同的浏览器内核及不同的版本对ECMAScript
规范的支持情况不同, 截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1
;
从ECMAScript 6
开始,标准制定者决定不再用诸如"3.1, 5.0"这样的版本号来命名,而是每年6月发布一个ECMAScript的正式版,并且以当年的年份来命名, 如2015年6月17日ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为ECMAScript 2015
。
ES6
只是ECMAScript 6
版本的简称,我们一般用ECMAScript 6
来统称ECMAScript 2015
及其以后的版本。
TypeScript
是由微软开发的一种开源的编程语言。它是JavaScript 的一个严格超集,并添加了静态类型及其他特性。TypeScript
目前已经支持ECMAScript 2015
。
3. CSS, CSS3
CSS
即Cascading Style Sheets
层叠样式表的简称,在Web开发中用来定义元素样式的一种标记型语言。
CSS3
是CSS(层叠样式表)的升级版本,2001年5月23日W3C完成了CSS3的工作草案。
4. V8, Node, Node.js, npm, Yarn
V8,我们通常叫做V8引擎,然而其并不是汽车发动机的V8引擎,而是由Google开发并开源的一个项目,可以解释和执行JavaScript,因为其性能非常高,目前得到了广泛的应用,如Node.js就是基于该引擎而开发。
Node.js和Node是一个东西,Node是Node.js的简称。
npm
(node package management
)是Node.js的一个包管理工具,目前已经内置到了Node.js中,不需要再单独安装。
yarn
也是一个包管理工具,由Facebook、Google、Exponent 和 Tilde 联合推出,其目的是为了弥补npm的一些缺陷。
5. React, Vue, Angular
这3个说白了都是Javascript库。
我们最初开发Web的时候用的是HTML+CSS+JavaScript
,后来有人觉得用纯js撸太繁琐了,就有了后来的jQuery这样的JavaScript库,但随着业务的扩增,数据交互越来越复杂,使用jQuery也太繁琐了,于时又有了React, Vue, Angular这样的库。
总之,前端生态真繁荣。。。。
6. Ant Design, Element UI
前面说到了React, Vue, Angular,虽然又了这些库,数据交互方面变得简单了,但页面效果还是需要CSS和JS一行行代码来实现的,比如要实现一个下拉列表,动态按钮等。于时现在又出现了一些基于React, Vue和Angular这些库的UI组件库,这些UI库将常用的组件封装好了,在开发中直接引入使用,改改属性,设置下参数即可。
7. Scaffold(脚手架)
通俗的讲就是将一些重复性的事情整合成一个工具,这个工具就可以叫脚手架。
8. MySQL, Redis, MongoDB, Oracle, PostgreSQL, NoSQL
数据库目前分为关系型数据库和非关系型数据(即NoSQL),不同类型的数据各有其特点。同样,同一类型但不同品牌的数据库也各有其特点和应用领域 。
不能单纯的评判哪种数据库的好坏,一个项目中可能同时用到多个不同种类的数据库。
1、关系数据库
MySQL、MariaDB、PostgreSQL、Microsoft Access、Microsoft SQL Server、Oracle、Sybase等等。
2、非关系型数据库(NoSQL)
BigTable(Google)、Cassandra、MongoDB、CouchDB、Redis等等。
9. Nginx, Apache
都是Web服务器,不同的团队研发,各有其优缺点。
10. 反向代理
反向代理
单纯从名字上理解就是正向代理
的反方向。
那什么是正向代理?代理内部网络
访问外部网络
的代理就是正向代理,比如你需要从公司局域网中的电脑A经过代理服务器B访问网站C:
A --> B --> C
如果你认为A是内部网络,C是外部网络,那B就是正向代理;
如果你认为A是外部网络,C是内部网络(当然我们一般不这么认为),那么B就是反向代理。
11. RESTful
一切具有REST特性的服务都可以成为RESTful服务,那么REST特性是什么了?
REST 是Representational state transfer
的缩写,维基百科上的解释为:
Representational State Transfer (REST) is a software architecture style consisting of guidelines and best practices for creating scalable web services. REST is a coordinated set of constraints applied to the design of components in a distributed hypermedia system that can lead to a more performant and maintainable architecture.
REST是一种架构风格, 只有满足这些约束,才能称之为符合REST架构风格。REST 的约束大致包括:
- 客户端-服务器结构
- 无状态
- 可缓存
- 按需代码(可选)
- 统一接口
持续更新中…