管理经济学
导论管理经济学的研究对象管理经济学定义
研究对象:资源配置有关的管理决策问题
分析工具:经济理论和决策科学
微观经济学的中心理论 价格理论
决策的基本过程
明确企业面临的问题
确定企业目标
列举解决企业问题的可能办法
从列举的解决办法中选择最优方案
执行最优方案
正确决策的条件
明确决策目标
较高的决策者素质
较充足的决策信息资料
科学的理论和方法
正确决策的准则 - 采取该项决策之后的情况比采取该项决策之前有所改善
微观经济学三个最基本的假设条件
完全理性
完全信息
市场出清
管理经济学与微观经济学的区别
目的不同
研究方法不同
假设条件不同
管理经济学和微观经济学的共同假定 企业追求利润最大化
管理经济学的主要内容 成市求生
需求理论
生产理论
成本理论
市场理论
管理经济学的基本分析方法以最少的投入获得最大的产出 最优化 管理经济学进行决策时分析的主要问题
无约束的最优化
边际(Margin): 增量(Increment) 某些变量的变化
边际分析法
常用的边际值
边际产量 MP
边际收益 MR
边际成本 MC
边际利润
最大值和最小值计算收益函 ...
数据库系统原理
数据库系统概述数据 Data
数据 是描述事物的符号记录,是指利用物理符号记录下来的、可以鉴别的信息
数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息
数据库 DB
数据库 Database 是指长期储存在计算机中的有组织的、可共享的数据集合
数据库中存储的数据具有永久存储、有组织和可共享三个基本特点
数据要按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,系统易于扩展,并可以被多个用户分享
数据库管理系统 DBMS
数据库管理系统 是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间
数据定义功能
数据操纵功能
数据库的运行管理功能
数据库的建立和维护功能
数据组织、存储和管理功能
其他功能
数据库系统 DBS
数据库系统的构成
通常,一个完整的数据库系统包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员(DBA)和用户
数据库系统的结构分类
从DBA的视角
内部系统结构,采用三级模式: 外模式, 模式(核心), 内模式
名称
别称
视图类型
外模式用户级
子模式、用户模式
数据 ...
Web 安全
Web 相关编码URL 编码
encodeURI
encodeURIComponent
HTML 编码戳 👈
JS 编码XSS 跨站脚本攻击Cross-Site Scripting
反射型(非持久型)诱导点击带有恶意脚本代码参数的链接
存储型(持久型)发一篇带有恶意脚本代码的公众文章给用户浏览
DOM-Based 型
现代框架默认会屏蔽 XSS 攻击,除非手动开启
Vue v-html
React dangerouslySetInnerHTML
escape 转义1234567891011// require('escape-html')function escape(str) { str = str.replace(/&/g, '&') str = str.replace(/</g, '<') str = str.replace(/>/g, '>') str = str.replace(/"/g, ...
Web 性能优化
高并发
QPS每秒钟请求或者查询的数量, 在互联网领域, 指每秒响应请求数(HTTP请求)
峰值每秒请求数(QPS) = (总PV数 80%) / (6小时秒数 20%)
80% 的访问量集中在 20% 的时间
吞吐量单位时间内处理的请求数量(通常由 QPS 与 并发数 决定)
QPS 是每秒 HTTP 请求数量, 并发连接数 是系统同时处理的请求数量
一个并发连接数 会有多个 HTTP请求
响应时间从请求发出到收到响应花费的时间
PV页面浏览量
UV独立访客, 即一定时间范围内相同访客多次访问网站, 只计算为一个独立访客
带宽计算带宽大小需关注两个指标, 峰值流量(PV / 统计时间s) 和 页面的平均大小
压力测试ab、wrk、http_load、Web Bench、Siege、Apache JMeter
abapache benchmark, 是 Apache 官方推出的工具
创建多个并发访问线程, 模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的, 因此, 它既可以用来测试 Apache 的负载压力, 也可 ...
Webpack 静态模块打包工具
自动化构建工具
Webpack 基于模块化打包工具,适用于大型复杂前端项目构建
Grunt
基于Node、上手容易、插件齐全、社区活跃
早期产物: 每次操作都是文件读写慢、配置相对繁琐
Gulp
基于任务 工作流
配置相对简单、基于文件流操作快
Rollup 适用于基础库的打包
Parcel
Webpack v4Webpack 官网Webpack 中文文档
初始化合并参数
run 编译,从 entry 入口,使用 loader 递归编译模块
输出资源,根据入口和 Module 之间的依赖关系,组装成一个个包含多个模块的 Chunk,再把每个 Chunk 转换成一个单独的文件 Bundle.
分别介绍 bundle, chunk, module 是什么?
module是开发中的单个模块,在 webpack 的世界,⼀切皆模块,⼀个模块对应⼀个⽂件,webpack 会从配置的 entry 中递归地构建一个依赖关系图
chunk代码块,⼀个 chunk 由多个模块组成,⽤于代码的合并和分割Code Splitting
bundle包,是由 webpack 打包出来的⽂件
...
排序算法
十大经典排序算法 👈
冒泡排序 O(n²)1234567891011121314151617181920212223242526272829function bubbleSort(arr) { let len = arr.length for (let j = 0; j < len; j++) { let isSwap = false for (let i = 0; i < len - 1 - j; i++) { if (arr[i] > arr[i + 1]) { isSwap = true ;[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]] } } if (!isSwap) break } return arr}function bubbleSort(arr) { let j = arr.length - 1 while (j > 0) { ...
数据结构与算法·之美(二)
数据结构的选择比算法优化更重要
逻辑结构栈 队列 树(理论模型)
物理结构数组 链表 对象(代码表现)
算法三大思维贪心(递归) 二分 动态规划
Traverse 遍历
深度优先栈 递归
递归遍历recursion
迭代遍历iteration
广度优先队列
迭代遍历iteration
有序数据考虑用二分
双指针 和 Map 可以避免嵌套循环
数组查找快O(1) 增删慢O(n)
单向链表查找慢O(n) 增删快O(1)
BST二叉搜索树时间复杂度 O(logn)
平衡二叉树BBST增删改查都快 O(log(n)) 树的高度
常见的时间复杂度
常数阶O(1) 无循环
对数阶O(logn) 二分法
线性阶O(n) 普通循环
线性对数阶O(nlogn) 一层循环 & 一层二分
平方阶O(n^2) 嵌套循环
指数阶O(C^n)
常见的空间复杂度
O(1)
O(n)
位运算
运算符
描述
例子
类似于
结果
十进制
&
AND
5 & 1
0101 & 0001
0001
1
|
OR
5 ...
数据结构与算法·之美
Stack 栈
线性结构, 仅能够在栈顶进行操作
先进后出 First In Last Out
实现方式: 数组、链表
123456789101112131415161718192021222324252627282930313233class Stack { constructor() { this.stack = [] } // 进栈 push(item) { this.stack.push(item) } // 出栈 pop() { return this.stack.pop() } // 栈顶元素 top() { return this.stack[this.size() - 1] } // 栈尾元素 end() { return this.stack[0] } // 栈的大小 size() { return this.stack.length } // 清空栈 clear( ...
设计模式·之美
设计原则开放封闭原则 OCP 对扩展开放 对修改封闭
工厂模式简单工厂模式12345678910111213141516class Man { constructor(name) { this.name = name } alertName() { alert(this.name) }}class Factory { public static create(name): Man { return new Man(name) }}Factory.create('Bobo').alertName()
工厂模式并不仅仅是用来 new 出实例
隐藏创建实例的复杂度,只需提供一个接口,传递对应的参数,就可返回实例;至于这些参数怎么使用,内部有什么逻辑并不关心
Vue createComponent 创建异步组件
React createElement('div', {}, children) 生成 v ...
从输入 URL 到浏览器显示页面发生了什么?
How browsers work
https://github.com/skyline75489/what-happens-when-zh_CN
浏览器检测是否有缓存
强缓存 200 from cache 直接从本地缓存中获取响应
PragmaHTTP1.0时代的遗留产物, 该字段被设置为 no-cache 时, 会告知浏览器禁用本地缓存, 即每次都向服务器发送请求
ExpiresHTTP1.0时代用来启用本地缓存的字段, expires 值对应一个形如 Thu, 31 Dec 2037 23:55:55 GMT 的格林威治时间, 如果还没有到该时刻, 标明缓存有效, 无需发送请求受限于本地时间
Cache-ControlHTTP1.1针对 Expires 问题的解决方案, 使用 Cache-Control 告诉浏览器缓存过期的时间间隔而不是时刻
public: 可以被所有用户缓存,包括终端和CDN等中间代理服务器
private: 只能被终端浏览器缓存
no-cache: 不允许直接使用本地缓存, 先发起请求和服务器协商
no-store: 禁止浏览器缓存响应, 不使用强 ...