精读《算法 - 滑动窗口》

2021-06-15
阅读 6 分钟
6.6k
滑动窗口算法是较为入门题目的算法,一般是一些有规律数组问题的最优解,也就是说,如果一个数组问题可以用动态规划解,但又可以使用滑动窗口解决,那么往往滑动窗口的效率更高。

精读《算法 - 动态规划》

2021-06-07
阅读 9 分钟
6.2k
很多人觉得动态规划很难,甚至认为面试出动态规划题目是在为难候选人,这可能产生一个错误潜意识:认为动态规划不需要掌握。其实动态规划非常有必要掌握:非常锻炼思维。动态规划是非常锻炼脑力的题目,虽然有套路,但每道题解法思路差异很大,作为思维练习非常合适。非常实用。动态规划听起来很高级,但实际上思路和解...

精读《低代码逻辑编排》

2021-05-31
阅读 10 分钟
4.8k
更进一步的逻辑编排是前后端逻辑混排,一般出现在一站式 paas 平台,今天就介绍一个全面实现了逻辑编排的 paas 工具 node-red,本周精读的内容是其介绍视频:How To Create Your First Flow In Node-RED,介绍了如果利用纯逻辑编排实现一个天气查询应用,以及部署与应用迁移。

精读《前端职业规划 - 2021 年》

2021-05-24
阅读 6 分钟
4.9k
如果你是一位学生,你肯定对前端这个职业感到陌生,你虽然没有经验,但却对未来充满好奇,你有大把时间来思考,但可能摸不着方向,有种拳头打在棉花上的无力感。

精读《新一代前端构建工具对比》

2021-05-17
阅读 3 分钟
5.2k
前端工程领域近期出了不少新工具,这些新工具都运用了一些新技术或者跨领域技术,实现了一些突破,因此有必要了解一下这些工具都有什么特性,以及是否可以投入生产环境。

精读《算法基础数据结构》

2021-05-10
阅读 4 分钟
2.3k
<img width=200 src="https://img.alicdn.com/imgextra/i2/O1CN01noho9m1Vltg5ISaq2_!!6000000002694-2-tps-418-110.png">

精读《React Server Component》

2021-04-25
阅读 9 分钟
3.3k
截止目前,React Server Component 还在开发与研究中,因此不适合投入生产环境使用。但其概念非常有趣,值得技术人学习。目前除了国内各种博客、知乎解读外,最一手的学习资料有下面两处:Dan 的 Server Component 介绍视频Server Component RFC 草案我会结合这些一手资料,与一些业界大牛的解读,系统的讲清楚 React Se...

精读《DOM diff 最长上升子序列》

2021-04-19
阅读 7 分钟
3.5k
由于 SF Markdown 编辑器无法支持标签图片,所以文章图片均无法显示,为了更好阅读体验,可以去推荐阅读地址:点击跳转在 精读《DOM diff 原理》 一文中,我们提到了 Vue 使用了一种贪心 + 二分的算法求出最长上升子序列,但并没有深究这个算法的原理,因此特别开辟一章详细说明。另外,最长上升子序列作为一道算法题,...
封面图

精读《高性能表格》

2021-04-12
阅读 5 分钟
7.1k
要做表格首先要选择基于 DOM 还是 Canvas,这是技术选型的第一步。比如钉钉表格就是 基于 Canvas 实现的,当然这不代表 Canvas 实现就比 DOM 实现要好,从技术上各有利弊:
封面图

精读《DOM diff 原理详解》

2021-04-06
阅读 5 分钟
3.5k
为什么 Jquery 时代不需要 Dom diff?因为 Dom diff 交给业务处理了,我们调用 .append 或者 .move 之类 Dom 操作函数,就是显式申明了如何做 Dom diff,这种方案是最高效的,因为怎么移动 Dom 只有业务最清楚。

精读《设计模式 - Template Method 模版模式》

2021-03-22
阅读 2 分钟
1.9k
意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

精读《设计模式 - Strategy 策略模式》

2021-03-15
阅读 2 分钟
4.5k
策略是个形象的表述,所谓策略就是方案,我们都知道任何事情都有多种方案,而且不同方案都能解决问题,所以这些方案可以相互替换。我们将方案从问题中抽象出来,这样就可以抛开问题,单独优化方案了,这就是策略模式的核心思想。

精读《设计模式 - State 状态模式》

2021-03-08
阅读 3 分钟
2.7k
简单来说,就是将 “一个大 class + 一堆 if else” 替换为 “一堆小 class”。一堆小 class 就是一堆状态,用一堆状态代替 if else 会更好拓展与维护。

精读《设计模式 - Observer 观察者模式》

2021-03-01
阅读 3 分钟
1.7k
拿项目的 npm 依赖举例子:npm 包与项目是一对多的关系(一个 npm 包被多个项目使用),当 npm 包发布新版本时,如果所有依赖于它的项目都能得到通知,并自动更新这个包的版本号,那么就解决了包版本更新的问题,这就是观察者模式要解决的基本问题。

精读《设计模式 - Memoto 备忘录模式》

2021-02-22
阅读 4 分钟
4.4k
其实备忘录模式思想非常简单,其核心是定义了一个 Memoto(备忘录) 封装对象,由这个对象处理原始对象的状态捕获与还原,其他地方不需要感知其内部数据结构和实现原理,而且 Memoto 对象本身结构也非常简单,只有 getState 与 setState 一存一取两个方法,后面会详细讲解。

精读《设计模式 - Mediator 中介者模式》

2021-02-01
阅读 3 分钟
2.1k
Mediator(中介者模式)Mediator(中介者模式)属于行为型模式。意图:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。前端开发中,最常用的 “数据驱动” 其实就最好的诠释了中介者模式。想一个这样的场景:按钮点击后,表单提交。按...

精读《设计模式 - Iterator 迭代器模式》

2021-01-25
阅读 3 分钟
4.1k
这种设计模式要解决的根本问题是,聚合的种类有很多,比如对象、链表、数组、甚至自定义结构,但遍历这些结构时,不同结构的遍历方式又不同,所以我们必须了解每种结构的内部定义才能遍历。

精读《设计模式 - Interpreter 解释器模式》

2021-01-18
阅读 3 分钟
5.2k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Command 命令模式》

2021-01-11
阅读 2 分钟
1.8k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。
封面图

精读《设计模式 - Chain of Responsibility 职责链模式》

2020-12-28
阅读 3 分钟
3.6k
Chain of Responsibility(职责链模式)属于行为型模式。行为型模式不仅描述对象或类的模式,还描述它们之间的通信模式,比如对操作的处理应该如何传递等等。

精读《设计模式 - Proxy 代理模式》

2020-12-21
阅读 2 分钟
3k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Flyweight 享元模式》

2020-12-14
阅读 3 分钟
2.3k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Facade 外观模式》

2020-12-07
阅读 2 分钟
2k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Decorator 装饰器模式》

2020-11-30
阅读 3 分钟
1.9k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Composite 组合模式》

2020-11-23
阅读 3 分钟
2.1k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Bridge 桥接模式》

2020-11-16
阅读 3 分钟
2.3k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Adapter 适配器模式》

2020-11-09
阅读 3 分钟
2k
Adapter(适配器模式)属于结构型模式,别名 wrapper,结构性模式关注的是如何组合类与对象,以获得更大的结构,我们平常工作大部分时间都在与这种设计模式打交道。

精读《设计模式 - Singleton 单例模式》

2020-11-02
阅读 2 分钟
2.5k
Singleton(单例模式)Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。其实单例模式在前端体会的不明显,原因有:前端代码本身在单机运行,创建的任何变量都是天然分布式的,不需要担心影响另一个用户。后端代码...

精读《设计模式 - Prototype 原型模式》

2020-10-26
阅读 3 分钟
1.8k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Factory Method 工厂方法》

2020-10-19
阅读 3 分钟
2.2k
理解如何写出工厂方法很简单,但理解为什么要用工厂方法就需要动动脑子了。工厂方法看似简单的将 New 替换为一个函数,其实是体现了面向接口编程的思路,它创建的对象其实是一个符合通用接口的通用对象,这个对象的具体实现可以随意替换,以达到通用性目的。