前端工程师也要选领域

领域这个词有点大,我惶恐自己谈不来,所以我把这份心情说出来,让看到的人明白,很多说出来的话是不对的。

表达是拥有话语权的直接方式。我活了近 30 年,越来越体会到很多人其实就是比较会运用话语权。在自己比较弱小时,丢失了一些话语权,甚至被话语权强加,但是无论外界如何变化,我希望大家自己内心中的话语权能永葆青春。

有自己的心声,能聆听到。

Continue reading “前端工程师也要选领域”

要搞副业赚钱啊

2021-10-31

为了搞点副业赚钱,大家可以点击下面链接买点啥东西,这样我就能拿到一定的分成,谢谢支持

为啥要点?

以前的 985、211 同事做的,这个看起来平平无奇的商城,每天也有几万的营收,作为自由职业者已经很棒了,你不好奇他怎么做到的吗

另外可以先点进去看看,万一有便宜好用的东西适合你呢

https://zengxiaoluan.com/redirect/?url=https%3A%2F%2Fa.51bdg.com%2Fmall%2Fmain%2Fpoint%3Ftype%3Dp%26channel%3DT83v

搞点合适的副业,加班打工赚钱实在太累,还要面对 35 岁的危机,这样的世界简直离谱

Continue reading “要搞副业赚钱啊”

九月面字节

2021-09-30

国庆假期快乐,从明天开始 10 天小长假。

终于有时间可以闲下来看看这本《高性能MySQL(第3版)》,我的目标比较简单:会用索引,会用锁就可以了。太忙的时候,压根没有心思学习,长期太忙,就会形成恶性循环,人生没有成长就会原地踏步。

这几天有点懒,没有学到什么新东西,也就没有发公众号。

https://book.douban.com/subject/23008813/

Continue reading “九月面字节”

web 动画与动量守恒

在系统不受外力下,物体的质量(m)与它速度(v)的乘积就是动量,用字母 p 来表示。

$$ p=m·v $$

动量是矢量,有大小,有方向。

还有一个动能公式:

$$ KE = { {1 \over 2} mv^2 }$$

通过上面两个公式,我们可以推导出两个物体相撞后的速度,以此来实现封闭空间的碰撞动画。

Continue reading "web 动画与动量守恒"

如何写一个 100 分的 clonedeep

面试时,深拷贝这个问题是常考的。涉及的面很广,比如 node 端怎么拷贝 buffer,而浏览器端是没有 buffer 的。如果仅仅是回答使用 JSON.stringify JSON.parse 应该是不能及格的。我们先来看看 lodash 写一个可以打 90 分的深拷贝做了哪些工作。

Continue reading “如何写一个 100 分的 clonedeep”

学口琴计划宣布失败

2021-08-31

缓存穿透:请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去。

缓存击穿:在平常高并发的系统中,大量的请求同时查询一个 key 时,此时这个key正好失效了,就会导致大量的请求都打到数据库上面去。

缓存雪崩的情况是说,当某一时刻发生大规模的缓存失效的情况,比如你的缓存服务宕机了,会有大量的请求进来直接打到DB上面。结果就是DB 撑不住,挂掉。

什么是缓存雪崩、缓存击穿、缓存穿透? – java技术爱好者的文章 – 知乎

https://zhuanlan.zhihu.com/p/346651831

Continue reading “学口琴计划宣布失败”

记一个朋友遇到的腾讯面试题

朋友面试腾讯,遇到了一个算法题,挺有意思的,特此记录一下。题目是这样的,给定一个数组如下:

let arr = [
  ["a", "aa", "aaa", "aaaa"],
  ["b", "bb", "bbb"],
  ["a", "ab", "aba"],
  ["a", "aa", "aab"]
]

将其转化成一个树状的子结构,如下:

[
  {
    name: "a",
    child: [
      {
        name: "aa",
        child: [
          {
            name: "aaa",
            child: [
              {
                name: "aaaa",
                child: [],
              },
            ],
          },
          {
            name: "aab",
            child: [],
          },
        ],
      },
      {
        name: "ab",
        child: [
          {
            name: "aba",
            child: [],
          },
        ],
      },
    ],
  },
  {
    name: "b",
    child: [
      {
        name: "bb",
        child: [
          {
            name: "bbb",
            child: [],
          },
        ],
      },
    ],
  },
];
Continue reading “记一个朋友遇到的腾讯面试题”

debounce 的简单实现

为什么要讲这个话题呢?主要是因为最近很多问题都由这个特性帮我解决了,让我感叹这非常有用。

学习英语是理解编程的第一步。de- 在英语里表示 xx 的反义,比如 defrost(除霜),deactivate(使失活),decentralization(权力分散),那么 debounce 的意思就是防抖/防止弹跳。我们结合实际的例子感性的认识一下。

Continue reading “debounce 的简单实现”