1 Nodejs01 预学

1、计算机语言、编程/程序语言的区别:词法分析、语法分析、语义分析;-> 底层涉及编译原理

(1).计算机能接受的语言;字符、语法规则组成计算机指令或语句 -> 计算机最基础便是0/1机器语言

(2).编程语言是由编译器解析成计算机语言;例如javaScript在浏览器运行,浏览器最终将其编译成window操作系统可识别的语言;javaScript在node环境中运行,node环境会部署到Linux环境上,所以node最终将其编译成Linux操作系统可识别的语言 -> 底层;

2、Linux操作系统基本认知;

(1).UNIX操作系统:非开源,Linux是其的衍生版,计算机时间即时间戳1970年1月1日00:00:00据说便是纪念UNIX操作系统(1970年是UNIX创建元年);

(2).LINUX操作系统:遵循开源协议,所有人都可创建衍生版(怎么玩都OK),不过大多数人都是丰富该操作系统;开源 -> 互联网的包容精神;

(3).LINUX分类:-> LINUX衍生版(付费免费都有),等同于window操作系统的不同版本 7/8/9/10等

- - - >>> 大致可分为以下四类;

[1].Ubuntu:UI界面华丽,完善的管理系统和软件支持,客户端和服务器端都可用(操作系统本就客户端和服务器端都可用,Linux由于稳定常用于服务器端,window操作系统常用于客户端,聚焦点不同); -> 别称:乌班图

[2].CentOS:无UI界面只有命令行,很稳定(很多企业在生成环境中部署),其来源小红帽,但其是开源免费的;-> 别称:渗透式

[3].Debian:内核小、稳定,适合系统硬盘空间少,内存小的机器;->别称:德班

[4].RedHat:开源,用于商业用途会收费,纯开源产物是CentOS; -> 别称:小红帽

(4).window操作系统上跑LINUX,必须安装虚拟机 -> 常用虚拟机:

[1].VM Ware:付费;-> 网上免费版做了阉割,功能不完善;

[2].Virtual Box:免费;

 - - ->>>>>>同一虚拟机上可跑多个LINUX操作系统,多个便可形成“集群”,而且大型公司里服务器,数据库以及缓存几乎都是集群,反向代理服务器一个就够了;

3、全栈图解;

(1).抽象篇:浏览器 -> DNS解析器 -> 反向代理服务器 -> 服务器 -> 若有缓存取缓存,若没有缓存则通过中间件从数据库中获取新数据;//DNS解析器,cache缓存,中间件,数据库都存储在服务器中,而且几乎都是单独占用一台服务器;数据库大多都是[一主多从]读写分离,单独分配数据库;

1 Nodejs01 预学_第1张图片

(2).代码实现篇 -> 业务架构、项目开发中目录结构(根据项目复杂度灵活操作)-> 符合单一职责设计原则

- - > 发展路线:最初只有后端 -> 随着用户量暴增:前后端分离、全站Ajax -> 如今从架构的角度重新划分:展示层与web层合并称为业务层,由于不涉及业务逻辑,所以希望交给前端来完成,其的功能主要是处理http请求,可做到高并发(异步I/O、非阻塞式I/O)、高性能(chrome v8引擎),同时尽量降低学习成本,nodejs可以说是应用而生,实际后台的语言例如PHP、java也可以做到,但实现较复杂; -> 解决高并发、高性能,代表着降低硬件成本,企业级开发中硬件成本是重要考虑因素;

[1].Web层:接收和发送http请求;web层、controller层;

[2].业务逻辑层/服务层:xxServer.js

[3].DAO层:对象数据的相互转换;存储:对象->数据;读取:数据 -> 对象;灵活应用JSON对象

[4].持久层:其是抽象概念包含缓存和数据库,数据若要做到持久化必须存储在缓存或者数据库中(磁盘),若存储在变量中,最终很容易被“回收”,生命周期短;

1 Nodejs01 预学_第2张图片

4、全栈工程师:

前端语言:html css js; 后端语言: nodejs、 网络 、持久化;后台编程语言的学习毕其一生都学不完,先解决主要矛盾,人生不止有技术;不学就是不会,反复学才能螺旋式上升,学会提问思考;

学完NodeJS可以让很多前端快速成为全栈工程师,我总感觉缺点东西,后端的思想结构只有真正的后端语言才能吸取到些精华;

你可能感兴趣的:(1 Nodejs01 预学)