摘要:
hook view 展示mobx的数据和利用service 请求数据进而修改mobx数据mobx 负责数据管理service 负责网络数据请求和请求前验证 userequery 阅读全文
摘要:
模板模式:一个模板器具,当有数据穿过模板器具的时候,模板器具就结合数据生成一个外观上与模板类似,内容却不同的器具。 策略模式:一个器具,其功能可以通过外部传入不同的器具而改变。 命令模式:器具内部分为多个互相隔离的小部件,这些部件在接受到命令信号后,会被触发。 责任链模式:就是过滤器模式,让请求在多 阅读全文
摘要:
如果把类理解为实现某个功能的器具,把接口理解为一种行为的抽象规范。把软件理解为机器,那么可以这样理解设计模式。 器具的创建: 工厂模式:有一个工厂,这个工厂专门生产器具,你只要传入你的要求,就会给你一个器具。 单例模式:有一种器具在机器里只可以存在一个,比如心脏,那么就必须保证这个器具只能存在一个。 阅读全文
摘要:
大公司将细节封装好,然后对外暴露出api,程序员使用这些api完成具体功能,这种程序员也叫做大厂依附人员,api工程师。本质上这些人员的工作没有丝毫技术含量,从微软的c#到苹果的swift再到谷歌的js,这些程序员使用的语言甚至都是这些大公司设计的,如果这些程序员沉迷于这些api将会导致他们失去计算 阅读全文
摘要:
### 内存篇之地址空间 - 如果操作系统不做任何处理,而是放任程序任意的读取物理 这导致程序之间交互式的内存读取会产生很多问题,同时这种方式 导致无法同时运行大量的程序 - 改进方案:地址空间 - 当程序运行后,分配给应用程序的是虚拟地址,这个地址假设是1到1000,实际映射的是物理内存中的某个空 阅读全文
摘要:
操作系统之文件 - 文件储存在磁盘里,最简单的存储方式就是 按顺序存储,但是在文件删除的时候 会导致出现很多碎片- 使用文件系统的方式,通过链表将文件存储在磁盘里的任意地址里,这可以防止 磁盘空间碎片化- 随着文件不断被新增和删除,磁盘会不断碎片化,如何有效的管理碎片化空间?- 文件性能,高速缓存, 阅读全文
摘要:
IO:是指操作系统内部的通信流,用来提供不同模块的沟通 硬件层面:在硬件层面如何连接不同的模块, 这里采用主从模式,即有一个mmu管理中心负责与其他硬件连接,然后cpu 内存与该mmu管理中心连接,通过这种方式 使得cpu 内存与计算机硬件隔离开来,后续的迭代维护不会影响到cpu和内存计算机硬件:计 阅读全文
摘要:
应用层 分为三层:应用层 表示层 会话层 会话层: 传输层 只是完成了传输,意思是 传输层 把路给铺好了,但是 发起连接 这个事情还是要会话层来做,会话层中最主要的是使使用socket来建立连接,一般的开发人员很少接触socket,只有做系统底层的才会去做socket,一般框架都封装好了socket 阅读全文
摘要:
上面说到网络通信的地下三层,地下三层解决了 端与端的连接问题,但是当时代进入互联网的时候,我们又遇到了新的问题: ip层只负责发送和接收数据,它不负责 保证数据一定传输过去 ip层只负责自己的数据是否发送过去,并不负责 整个网络的拥堵情况 ip层只负责传输数据,并不负责 数据的组装 为了解决ip层的 阅读全文
摘要:
原理 底层 物理层 数据链路层 网络层 原理: 频率的本质是变化,人类通过约定变化传递意图。 底层: 光纤:传递光信号,代替电信号传输,具有传输距离远,损耗小,速度快的特点。 调制解调器:可以把计算机信号转化为电话模拟信号进行传输 物理层: mac地址与集线器(中继器) mac地址是包机一台电脑的唯 阅读全文
摘要:
阅读全文
摘要:
阅读全文
摘要:
小程序采用双线程模型,这里主要是为了安全,采用双线程模型是指 一个线程负责渲染界面,一个线程负责执行js代码。那么 两个线程是如何合作的呢? 渲染线程需要监听用户的事件,然后通知到执行线程,同样 执行线程如果希望更改界面,也需要通知到渲染线程,如何开辟一个线程来运行js代码,下面我们讨论这三个问题。 阅读全文
摘要:
单文件代码: 源代码 是符号,他只是地址的映射。最初 所有代码都在一个文件里,在编译的时候 首先需要将源代码翻译成机器语言,这包括两个步骤: 1:源代码语义转换,即将人类语言转换为机器语言,将字母符号转化为数字符号 2:在上一个步骤中,只是将字母符号翻译成数字符号而已,之所以翻译成数字符号 是因为计 阅读全文
摘要:
### 现代代码体系 - 最早的代码体系:程序员世界使用二进制进行编程或者汇编进行编程,性能最好,最难编写 - 出现操作系统后,程序员使用c c++进行编程, 最终通过编译器编译成机器语言, 不过需要针对不同的cpu进行单独的编译,性能很好,编写ok - 跨平台后:针对c++需要一次编写 到处编译的 阅读全文
摘要:
### 操作系统 - 操作系统是指为程序的生存提供一个通用的土壤, 他为多个程序并存提供了条件, 同时避免每个程序都需要自己创造运行空间的精力,如果把程序比喻为人,那么系统就是自然,人只有在自然中才能生存,假设人类要移民火星,人类首先要做的就是在火星上构建自然这个系统,然后人类才能生存,这个自然也可 阅读全文
摘要:
前面所介绍的进程管理 内存管理 文件管理 IO管理都是操作系统的必要组成条件,而死锁确实操作系统的病症。死锁出现后 会导致程序无法运行,可以比喻为系统的病症导致程序的罢工。 死锁病症出现的条件: 互斥,即每个资源只能供一个线程使用 占有且等待,即已占有资源的线程不会释放资源 不可抢占,即不可抢占已被 阅读全文
摘要:
### 图解tcp ip总结 ##### 为什么会出现网络系统? - 连接不同的计算机设备 ##### 为什么会出现协议? - 协议是一种约定,在计算机世界 通过约定实现互通,就好像英语之余所有语言一样 ##### 为什么要标准化? - 计算机中一切都需要自己实现,只有标准化后,同一个问题不会因为出 阅读全文
摘要:
定义: 进程:cpu分配资源的最小单位 线程:程序运行的最小单位 为什么需要进程和线程: 一个进程对应一个打开的应用程序,操作系统可以同时运行多个应用程序,但是要保证 每个应用程序都是独立的单元,进程本质上是一个独立的内存空间 执行环境加上下文 在应用程序内部 经常会遇到阻塞的情况,这个时候给用户的 阅读全文
摘要:
1:电的产生(能量的产生) 电荷是物理世界中物体本身的一种物理属性,每个物体本身都带有电荷,电荷分为正电荷 负电荷,他们是同性相吸 异性相斥,每个电荷都有电场力,他对在其引力范围之内的电荷具有引力的作用,两个具有正负两极的物体 之间会产生一股强大的电场力,他们催动着电荷向对面冲过去,但是你空气无法让 阅读全文
摘要:
总结了vuex mobx和dva,发现他们在数据管理方面的处理方式非常雷同: vuex: mobx: dva: 相似点1:将异步操作与数据声明放在一起 相似点2:将数据和数据的操作以块文件的形式进行分类 相似点3:都采用相同的格式 { state: {}, 同步修改:{}, 异步修改:{} } 这是 阅读全文
摘要:
我们在介绍我们的职业的时候,通常会说 我们是 app开发的,或者我们是网站开发的,或者我们是服务器开发的,但是我觉得 这样介绍 好像 很难让别人一下子就懂得 我们到底是干什么的, 我们其实就是 数据处理工程师: 我们程序员 一般都会依赖于平台,有的是PC,有的是手机号,有的是网站,就算是服务器开发人 阅读全文
摘要:
判断 判断是否 null undefined NaN defaultTo 判断是否以指定值作为结尾 endsWith 判断是否是指定类型的空 isEmpty 判断是否是null undefined isNil 运算 取平均值 mean 取中位数 median 对象 合并 merge 获取指定路径值 阅读全文
摘要:
版本号:<主版本号>.<次版本号>.<修订版本号>主版本号(1):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。子版本号(1):当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。阶段版本号(1):一般是 Bu 阅读全文
摘要:
参考:mysql索引 前提 索引是有成本的,这主要体现在 会降低插入和修改数据和删除数据的速度 索引是可以加快查询速度的 所以哪些列应该创建索引呢? 1:不需要被频繁更新的列(每秒钟 每分钟都要更新一次) 2:出现在where和join中的列(因为索引是用来做查询的) 索引的优化措施: 索引本身也是 阅读全文
摘要:
1:桥接的设计 因为app不像h5那样可以随意替换,每次一个app版本发布出去,都是一个完整的产品,一个无法再更新的软件,而随着业务不断发展,产品不断更新,总是会存在新的需求出现,这个时候 就会出现h5需要调用原生的方法来实现业务需求,但是在老的版本上 是不存在这个方法的,所以在设计桥接的时候,桥接 阅读全文
摘要:
中间层是一种思想,我们在很多设计中都可以看到这种思想,他的主要目的是屏蔽底层差异性,并给上层提供一致的接口,他是对上层负责的,但是却需要面对底层无规则 无协议 环境复杂的问题,它通过把不同平台的差异给屏蔽掉后,这样上层可以专注于解决业务,而不需要耗费精力去解决差异型。中间件也是一种思想,他是指通过某 阅读全文
摘要:
一直很好奇,今天终于有机会好好研究一下: 我把整个过程分为图像的采集,图像的保存,图像的传输,图像的接收,图像的回显。 1:图像的采集与保存 光的原理: 从上图可以看到,我们日常生活中看到的7种颜色是由最基础三种颜色构成,即在外层的红黄蓝,我们可以通过不同的组合方案构造出其他四种颜色,这样我们就可以 阅读全文
摘要:
C、C++、Java、javascript、数据库语言 我想从上面五个具有代表性的语言,来整理我对代码的理解: 在起初,没有编程语言,计算机刚发明的时候,计算机只认识二进制,即0和1 ,而且只能完成数学运算,因为二进制 十进制本质上是数字的不同表达方式,虽然仅仅只能完成数学运算,但是我们可以编写一道 阅读全文
摘要:
假设页面有两个script标签: 在运行的时候 我们发现1是会正常输出的,再看下一段代码: 我们发现这个时候输出的a并不是undefined,而是保存:a is not defined, 所以我猜测: 因为我们知道浏览器遇到script脚本 会停止dom解析和css解析,专注于解析js,所以这个时候 阅读全文
摘要:
最开始的时候只有机器语言,即二进制,程序是由二进制语言编写的,然后cpu不断的读取二进制语言 然后执行命令,最后输出的也是二进制 后来出现了汇编语言,但是cpu不认识汇编语言,所以使用汇编语言编写的程序,最后会经过一道工序转换为机器语言(这应该算是最初的即时编译) 后来出现的C语言,因为汇编语言,只 阅读全文
摘要:
战国时代 挑花结本1725年 穿孔织布机1736年 微积分 挑花结本将一副画给抽象成一个个很小的颗粒,同时采用横线和竖线交叉实现点的绘制,最终做成了布。而穿孔织布机 在挑花结本的思想上,实现了线的交叉的自动话,通过空的有无来达到竖线是否覆盖横线的目的,如果说挑花结本将布的绘制转化为线的交叉,则穿孔织 阅读全文
摘要:
可维护性 可扩展性: 1:活用组件继承 2:活用slot 3:使用props灵活表现界面元素 4:父子拆分 协作性: 1:使用computed对props进行二次封装 2:css使用BEM命名 3:事件以handle开头 4:私有方法以_开头著名 5:对外暴露类似html空间的原生属性来贴近原生行为 阅读全文
摘要:
we all know that webpack hava did a lots of things for us, ESpecially in web optimize, many programme are used in webpack.such as compress、merge、GZIP、 阅读全文
摘要:
point about inherit: 1:subclass can get SuperClass`s message 2:subclass rewrite SuperClass`s message 3:many subclass Share a piece of memory the inher 阅读全文
摘要:
1:create Object 2:create function 3:create a rule:all instance must have __proto__, and it reference to Father's prototype 4:create a rule:the prototy 阅读全文
摘要:
vertual-align的正常使用在于基线的确定 而基线会受到line-height的影响,同时不同字体大小也会影响到基线, 当line-height使用继承方式或者使用数字的时候,line-height是不确定的,同时导致基线也不确定,这就会表现出使用vertual-align出现飘忽不定的情况 阅读全文
摘要:
在了解vertical-align之前我们先了解基线:在了解基线之前我们先了解Inline Element,Inline-Block Element,Line Box Inline Element:内联元素Inline-Block Element:内联块状元素Line Box:由以上两点组成的一行 阅读全文
摘要:
一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。 设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。 所以说,物理像素和设 阅读全文
摘要:
XMLHttpRequest level1的缺点如下 1:对于请求结束的判断有点复杂,或者说没有提供一个请求结束的方法,如果我们使用jquery会发现,jquery的ajax请求会提供三个方法,请求成功、请求失败、请求结束 2:对于文件上传的处理不是很友好,我们做文件上传的时候 需要手动模拟表单提交 阅读全文