Skip to content

node 基础

命令式编程 和 声明式编程

声明式编程的本质 - "web"是一个状态机,因为内置了很多东西,不需要关心如何实现的,比如document navagation

vue
<template>
</template>

命令式编程 - 以过程为主,用代码描述一个需求的实现流程,这符合我们的逻辑直觉
声明式编程 - 以结果为主,封装了过程,比如vue的模板语法,可以动态修改innerHTML

node 是什么?

js的服务端 运行环境,基于V8,在JS语言规范的基础上,封装了一些服务端的runtime,让我们能够简单的实现非常多的业务功能

  • 最早,高性能的服务器
  • 后来演变成语言
  • commonjs是一个规范,nodejs是cjs的实现

node的历史

2014年 - MongoDB + express + angular + node.js

node 可以做什么?

pnm run start 的时候,运行了node

  • 跨平台开发:PC web H5 RN Weex
  • 后端开发:API RPC
  • 前端开发:前端的工具链
  • 工具开发:脚本、脚手架、命令行

node 分类举例

压缩 UglifyJs Jsmin 依赖 npm bower 模块 commonjs css postcss 构建 gulp grunt webpack 模板 jade handlebars 跨端 electron tuari

node 的问题

  • 单线程很脆弱,可以通过cluster / pm2
  • node 对 MongoDB Mysql redis/neo4j trigerGraph arangoDB
  • 安全问题

node 与 浏览器的区别

  • node环境中没有dom,bom;而浏览器没有fs,path这些模块
  • 事件循环
  • cjsesm
    • Node.js 支持cjs规范,但是browser不支持

Node 的应用与 npm

node 的安装

  • nvm
    • 当我需要多个版本的时候我可以通过nvm切换
  • nrm
    • 对于node的镜像源进行设置
  • npm
    • 包管理功能

npm的目标

给你的团队带来最好的开源库和依赖

gem - ruby pip - python maven - java 全局包管理

npm 项目创建

npm 缓存

npm 和yarn

npm 还没到v5的时候,

  • lock 文件
  • 扁平化的安装模式
  • 网络:强求排队的概念
  • 缓存机制 使用 synp -- yarn.lock z转成 package-lock.json

npm 包依赖关系

npm dedupe:帮我们去整理包的依赖关系。

dependencies

  1. 项目依赖 npm i -s lodash debounce / throttle

  2. 开发依赖 webpack rollup jest

peerDependencies 开发依赖

vue 组件库 我们不喜欢核心库被重复下载 库的安装前提是核心库必须先安装

budleedDependencies 捆绑依赖
optionalDependencies 可选依赖

CommonJS 的模块化

最早的模块化方案

js
function foo(){
    var bar = 1;
    var ba = 2;
}
js
var obj = { a: {}};
function resolve(obj){
    obj.bar = 1;
    obj.ba = 2;
}
resolve(obj.a)
js
var module = {
    exports:{}
};
function foo(module,exports){
    var bar = 1;
    var ba = 2;
    module.exports = {
        bar,ba
    }
}
foo(module,module.exports)

如何学习

AI主要的流派

  • 连接主义 -- DeepLearning
  • 符号主义 -- KnowLedgeGraph

学习的两个方法论

五年工作经历,一年工作经验

  • 更倾向于,你是连接主义的思路,但是人的时间成本是非常昂贵的
  • 没有足够的时间用海量的样本训练

善用符号主义

首先必须强调一点事符号主义也需要样本,但是 样本越少,建立知识图谱的难度越高

什么是神经网络

人脑中的记忆,来源于突触、电信号

如何快速学习

1.增强已有知识在大脑中的电信号

强化什么样的知识?

九阴真经。

高度的抽象,越重要的知识,很多时候是越抽象的。

《系统工程学》 《乌合之众》

《产品方法论》:产品是企业和用户交换价值的媒介;用户迁移 = 新的价值 - 旧的价值 - 迁移成本

  • 背诵下来
    • 解释给别人听,你的理解[费曼技巧]
    • 多场景下,去反复思考。(地铁,厕所)[记忆法则,多场景碰触]
核心目标:强化这句话在你脑中的突触,电信号。

深刻记忆到形成潜意识的程度。

2.建立连接,构建知识体系

费曼技巧
  • 用一个东西去解释另一个东西
  • 讲给别人听
  • 把你熟悉的领域写纸上
  • 即兴演讲
  • 不设边界
难点
  1. 总结,找关系,找异同,找区别
  2. 刻意练习
    1. 多巴胺对抗
    2. 克服边际效应

鄂ICP备2024055897号