本文主要介绍前后端及客户端开发中遇到的一些常用的技术概念,本文不会涉及太深奥的技术细节。

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

CSSCascading 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 的简称。

npmnode 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:

1
A --> B --> C

如果你认为 A 是内部网络,C 是外部网络,那 B 就是正向代理;

如果你认为 A 是外部网络,C 是内部网络(当然我们一般不这么认为),那么 B 就是反向代理。

11. RESTful

一切具有 REST 特性的服务都可以成为 RESTful 服务,那么 REST 特性是什么了?

REST 是Representational state transfer的缩写,维基百科上的解释为:

1
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 的约束大致包括:

  1. 客户端-服务器结构
  2. 无状态
  3. 可缓存
  4. 按需代码(可选)
  5. 统一接口

持续更新中….