殷东亮的博客

数据库的锁

Oct 16, 2021
数据库, MySQL

数据库里的锁根据范围和维度都有不同的实现和叫法,如果我这样列出来你可能会很焦虑:GAP 锁,记录锁,显式锁定,表级锁,行级锁,页级锁,咨询锁,间隙锁,共享锁,排他锁,互斥锁,自旋锁,读写锁,悲观锁,乐观 ...

交替打印 1-100 之间的奇数和偶数

Oct 2, 2021
Go, 算法

题目:两个 goroutine 交替打印1-100之间的奇数和偶数。 方法一 # 利用非缓冲 channel 的阻塞。 package main import ( "fmt" "sync" ) func main() { ch := make(chan struct{}) var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() for i := 1; i < 101; i++ { ch <- struct{}{} //奇数 if i%2 == 1 { fmt.Println("线 ...

推荐下双拼输入法

Sep 30, 2021
工具, 生活

问题 # 最近打字聊天的工作比较多,发现我在拼类似【能不能】这种词语的时候经常打错成类似 negnbuneng 或者 nengnbuneng(见下图)这种有需要在两个字母之间来回切换的,还有就是 ang、eng、ong、iong 、 ...

JS 加号运算符的运用

Sep 18, 2021
前端, JavaScript

一元运算符 # 语法: + Expression 说明: + 号运算符作为一元运算符时,Expression将进行 ToNumber 操作。 argument类型 返回值 Undefined return NaN Null return +0 Boolean true return 1; false return 0; Number return value String 若字符串为纯数字时返回转换后的数字;非纯数字返回N ...

JS 非空判断

Sep 11, 2021
前端, JavaScript

在 js 中,有一个富有哲学意味的问题:「什么是空」?先看下面代码: function main(a) { if (!a) { console.log("空"); } else { console.log("非空"); } } main(0); main(null); main(); main("") main(undefined) main(NaN) // ...

跨域相关问题

Aug 21, 2021
前端, 浏览器, 系统设计, 计算机网络, 密码学

本文先从 CSRF 攻击的介绍开始,说明了跨域存在的问题,然后引入浏览器同源策略的概念,明白了要限制跨域的原因后,再给出了标准的跨域请求方案:CORS,所以总体上就三部分:CSRF、同源策略、CORS,文章有点 ...

了解下 MobX 概念

Jul 19, 2021
前端, 系统设计

基本概念 # observable 函数 定义状态值 action 函数 用于修改状态值 接受一个函数,返回一个签名相同的函数,提供触发时调用。 derivations 派生,有两种:autorun 和 computed reactions - autorun() 接受一个函数 状态值发生改变后要执行的响应操作。 computed value - computed() 接受一 ...

了解下 Redux 概念

Jun 24, 2021
前端, 系统设计

Redux 用来进行复杂的状态管理,Redux 的思想继承自 Flux,并进行了更加简洁的抽象。 store store.dispatch(action) 是 View 发出 Action 的唯一方法,接受一个 Action 对象作为参数,将它发送出去。 store 允许使用 store.subscribe() 方法设置监听函数,一旦 State 发生变化,就自动执 ...

前端的节流和防抖

May 16, 2021
前端, 系统设计

工作中排查数据问题发现了前端按钮可能会触发两次点击的情况,这个问题除了要在后端做幂等以外,正好最近我也在做一些前端的工作,也就专门研究了下前端的解决方案。本来要解决的是防抖问题,但是查了些资料发现一般 ...


© 2012-2024 YINDONGLIANG