<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
      
      <follow_challenge>
          <feedId>65055941591270423</feedId>
          <userId>108704711297507328</userId>
      </follow_challenge>
      
    <title>Bigshans&#39; Blog</title>
    <link>https://bigshans.github.io/</link>
    <description>Recent content on Bigshans&#39; Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>bigshans</copyright>
    <lastBuildDate>Wed, 04 Mar 2026 19:46:28 +0800</lastBuildDate><atom:link href="https://bigshans.github.io/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>[置顶] 关于本博客</title>
      <link>https://bigshans.github.io/post/top-blog/</link>
      <pubDate>Sat, 12 Feb 2022 09:21:31 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/top-blog/</guid>
      
      <description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;本博客所有文章，采取 &lt;code&gt;CC BY-NC-SA 4.0&lt;/code&gt; 形式发布，禁止任何形式商业发布。本人在 B 站与公众号有号，有部分发布文章，但第一发布地点仍在此博客。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本人受安那其主义、马克思主义、施蒂纳、拉康、尼采、齐泽克等影响，政治光谱上属于自由意志社会主义，立场上反对法西斯蒂，反对安那其资本主义，反对沙文主义。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>[置顶] 备忘录</title>
      <link>https://bigshans.github.io/post/%E5%A4%87%E5%BF%98%E5%BD%95/</link>
      <pubDate>Wed, 18 May 2022 09:07:16 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E5%A4%87%E5%BF%98%E5%BD%95/</guid>
      
      <description>&lt;p&gt;文章备忘录：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;../arch-pack-memo&#34;&gt;Arch 打包备忘录&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../trivial&#34;&gt;琐碎备录&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../git-merge-unrealted-histories&#34;&gt;如何合并 Git 无关历史&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../latex&#34;&gt;latex 部分常用公式代码&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../critical-outline&#34;&gt;批判纲要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../how-to-use-wine-wechat-setup&#34;&gt;如何使用 wine-wechat-setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../%E8%AF%97&#34;&gt;诗&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../%E9%87%8D%E8%A3%85arch&#34;&gt;重装 arch&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>Vue 的响应式原理</title>
      <link>https://bigshans.github.io/post/vue_s_reactive/</link>
      <pubDate>Wed, 04 Mar 2026 19:46:28 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/vue_s_reactive/</guid>
      
      <description>&lt;p&gt;Vue 3 使用 &lt;code&gt;Proxy&lt;/code&gt; 是一大创举，它成功解决了 Vue 2
无法追踪新增属性的问题。不过，仅仅是如此吗？不如我们用简单的代码实现一个
&lt;code&gt;reactive&lt;/code&gt; 看看。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;reactive&lt;/span&gt;(target) {&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Proxy&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; {&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;get&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; recevier) {&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;      &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Reflect&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;get&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; recevier)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    }&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;set&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; value&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; recevier) {&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;      &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Reflect&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;set&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; value&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; recevier)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    }&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  })&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;这里，&lt;code&gt;Reflect&lt;/code&gt; 和 &lt;code&gt;Proxy()&lt;/code&gt;
是配套的，等同于我们直接对 &lt;code&gt;target[key]&lt;/code&gt; 进行操作，但用
&lt;code&gt;Reflect&lt;/code&gt; 更加方便，也更加安全。我们可以通过在拦截器层面增加
&lt;code&gt;console.log()&lt;/code&gt; 来查看效果。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>2025年年终总结</title>
      <link>https://bigshans.github.io/post/2025%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</link>
      <pubDate>Mon, 29 Dec 2025 20:03:24 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/2025%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</guid>
      
      <description>&lt;p&gt;除开年终总结，今年没有写文章，连年中总结也没有写，但年终总结还是要写的。&lt;/p&gt;
&lt;p&gt;今年过得不好，本以为去年是低谷了，但没想到还能更低。人一旦能够吃苦，遂有更多的苦可以吃。今年我没怎么关注技术了，这大概也是我没有写技术文章的原因。不知道是不是药物的原因，我对我目前的生活抱着一种绝望的死感，像是灰一样，从业已熄灭的残渣吹起，这让我感到——平静。是的，平静，像一潭死水一样。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>2024 年年终总结</title>
      <link>https://bigshans.github.io/post/2024%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sun, 29 Dec 2024 22:56:17 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/2024%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</guid>
      
      <description>&lt;p&gt;距离上一次写博客已经有半年之久了，没写也无别的原因，纯粹是没动力。&lt;/p&gt;
&lt;p&gt;今年过得并不好，原本以为去年是最糟的，没想到今年开年还能给我惊喜。从正泰离职后，休息一段时间，找到一份新工作，原本以为可以就此安定了，结果却遇到一系列糟心的事情，历经了人生第一次被裁。现在想来，仍欲作呕。中间间隔了一段时间，找到了目前这份工作。这份工作不算好，离家远，薪资比之前还低了一截，不过不加班，人际关系也不像前几家公司那么拧巴，用来养老是刚刚好的。至于下半年，平安无事，甚至可以说是枯燥乏味，而在喹硫平的作用下，我的情绪变得淡漠麻木，甚至说有些迟钝。我很难判断这些变化是否是好的，但很显然，这会成为我后半生的一个主基调，一眼望去，仿如荒原，死寂得让人绝望。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>使用 pnpm 管理 monorepo</title>
      <link>https://bigshans.github.io/post/pnpm-with-monorepo/</link>
      <pubDate>Fri, 03 May 2024 13:50:38 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/pnpm-with-monorepo/</guid>
      
      <description>&lt;p&gt;心血来潮使用 &lt;code&gt;pnpm&lt;/code&gt; 将项目改为了 monorepo
的结构。最重要的是 &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;
文件，我们可以简单写一个放到根目录下面：&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode yaml&#34;&gt;&lt;code class=&#34;sourceCode yaml&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;fu&#34;&gt;packages&lt;/span&gt;&lt;span class=&#34;kw&#34;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;at&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;kw&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;at&#34;&gt; packages/**&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;这代表在目录 &lt;code&gt;packages&lt;/code&gt;
下寻找子仓库，且深度只有一层。如果你的包结构是多层嵌套的，那你需要将每个嵌套的父层级也写进去。比如说我的：&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>在 plasma 上使用 Meta 打开开始菜单</title>
      <link>https://bigshans.github.io/post/use-meta-only-for-plasma/</link>
      <pubDate>Fri, 03 May 2024 13:38:44 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/use-meta-only-for-plasma/</guid>
      
      <description>&lt;p&gt;使用 &lt;code&gt;Meta&lt;/code&gt; 打开开始菜单是一个非常方便的功能，最早在
Plasma 上，可以使用 &lt;code&gt;ksuperkey&lt;/code&gt; 来实现。不过
&lt;code&gt;ksuperkey&lt;/code&gt; 仅支持 X11 ，在 Plasma on Wayland
就失去作用了。不过 Plasma 很早之前就将这个功能内置了，详见&lt;a href=&#34;https://zren.github.io/kde/#windowsmeta-key&#34;&gt;此处&lt;/a&gt; 。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>在 Node 上使用 FabricJs</title>
      <link>https://bigshans.github.io/post/fabric-on-node/</link>
      <pubDate>Sun, 24 Mar 2024 23:18:40 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/fabric-on-node/</guid>
      
      <description>&lt;p&gt;最近开发项目用到 FabricJs ，记录一下使用的坑点。FabricJs
的文档非常难用，许多关键的点都没有讲。FabricJs 的 TypeScript
类型标注也非常难用，经常货不对板，跟文档不一致，跟用例也不一致，不知道他们怎么处理的。但还是选择
FabricJs ，主要原因还是 FabricJs 的 SVG 到 Canvas 的操作非常舒服。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>使用 coc 配置 @delance/runtime</title>
      <link>https://bigshans.github.io/post/coc-delance/</link>
      <pubDate>Fri, 16 Feb 2024 10:16:38 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/coc-delance/</guid>
      
      <description>&lt;p&gt;首先需要安装 &lt;code&gt;delance-langserver&lt;/code&gt;。&lt;/p&gt;
&lt;pre class=&#34;shell&#34;&gt;&lt;code&gt;npm install @delance/runtime&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成，第一次使用时报错，通过阅读源码发现是因为第一次安装需要连接网络。由于需要翻墙，所以加个代理即可。直接运行
&lt;code&gt;delance-langserver --sdtio&lt;/code&gt;
就会自动去下载内容，然后就会正常运行。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>修改 hosts 加速访问 dl.google.com</title>
      <link>https://bigshans.github.io/post/dl-google-host/</link>
      <pubDate>Sun, 28 Jan 2024 21:38:15 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/dl-google-host/</guid>
      
      <description>&lt;p&gt;https://dl.google.com 是 Android Studio 下载 Android SDK
的网站，国内有个镜像可以用。我们通过修改 hosts 文件让 Android Studio
去镜像站下载。&lt;/p&gt;
&lt;p&gt;首先是获取 IP ，可以在&lt;a href=&#34;https://ping.chinaz.com/dl.google.com&#34;&gt;这里&lt;/a&gt; IP
访问情况，根据地区择优选择。&lt;/p&gt;
&lt;p&gt;然后在 &lt;code&gt;/etc/hosts&lt;/code&gt; 文件里追加即可。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>如何使用 adb 将 Betterfox 安装到 Firefox Android 上</title>
      <link>https://bigshans.github.io/post/how-to-install-betterfox-on-android-firefox-using-adb/</link>
      <pubDate>Fri, 29 Dec 2023 21:02:43 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/how-to-install-betterfox-on-android-firefox-using-adb/</guid>
      
      <description>&lt;p&gt;最近使用了 Betterfox 优化了我的 Firefox
效果相当不错。在性能上表现得比之前默认的配置好。在 Betterfox 的 issue
里，有人提到了可以安装 Betterfox 到安卓手机的 Firefox
上。我也尝试了，效果还不错，加载速度比之前快很多。在此我也是非常推荐用
Betterfox 来优化个人的 Firefox 。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>写在年终之前</title>
      <link>https://bigshans.github.io/post/%E5%86%99%E5%9C%A8%E5%B9%B4%E7%BB%88%E4%B9%8B%E5%89%8D/</link>
      <pubDate>Thu, 14 Dec 2023 00:32:57 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E5%86%99%E5%9C%A8%E5%B9%B4%E7%BB%88%E4%B9%8B%E5%89%8D/</guid>
      
      <description>&lt;p&gt;这是写在年终之前的一片博文，是年终总结性质，因为我年末可能来不及写总结了。&lt;/p&gt;
&lt;h2 id=&#34;工作&#34;&gt;工作&lt;/h2&gt;
&lt;p&gt;今年过得并不开心，年初上家公司内部办公室政治，人员流动走了一大批人，而我也差不多也是那时候走的。上家公司经营每况愈下，技术部门也日渐紧缩，裁人不过是时间问题。我走的时候还算体面，老板念及几年来的旧情给了我一份人情费，大约一个工资。有些感慨，物是人非啊！&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>函数柯里化</title>
      <link>https://bigshans.github.io/post/curry/</link>
      <pubDate>Sat, 14 Oct 2023 11:52:10 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/curry/</guid>
      
      <description>&lt;p&gt;函数柯里化是一种可以将函数转换为另一个函数的技巧，通常是用来减少函数参数的。&lt;/p&gt;
&lt;p&gt;用一个简单的例子以表示这种使用:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;sum&lt;/span&gt;(a&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; b) {&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; a &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; b&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; add1 &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;curry&lt;/span&gt;((b) &lt;span class=&#34;kw&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;sum&lt;/span&gt;(&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; b))&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(&lt;span class=&#34;fu&#34;&gt;add1&lt;/span&gt;(&lt;span class=&#34;dv&#34;&gt;10&lt;/span&gt;))&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;这里我们实际上固定了 &lt;code&gt;sum&lt;/code&gt; 的参数，但这里我只被允许加上 1
，我们可以更灵活一些。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>BFC 简述</title>
      <link>https://bigshans.github.io/post/bfc/</link>
      <pubDate>Sun, 06 Aug 2023 19:09:10 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/bfc/</guid>
      
      <description>&lt;p&gt;BFC
指块格式上下文。格式上下文定义了一个元素内部如何排布，以及与外部元素间如何排布。BFC
即定义了块元素的格式上下文。&lt;/p&gt;
&lt;p&gt;默认情况下，&lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;
为块格式上下文。块元素的子元素将按块排布，或者按行排布，如果出现混合排布的情况，则会将内联元素用匿名块包裹起来，然后按块排布。同时，匿名块不能被
CSS 指定，不受 CSS 样式影响。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>d8 编译要点</title>
      <link>https://bigshans.github.io/post/d8%E7%BC%96%E8%AF%91%E8%A6%81%E7%82%B9/</link>
      <pubDate>Fri, 04 Aug 2023 09:06:08 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/d8%E7%BC%96%E8%AF%91%E8%A6%81%E7%82%B9/</guid>
      
      <description>&lt;p&gt;d8 是 v8 提供的用以 debug v8 的 shell ，因为 v8
自身就是一个库，不提供 console 的实现。d8 会在编译 v8
时顺便实现，不过我只想编译 d8 。&lt;/p&gt;
&lt;p&gt;主要参考了 v8&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; 文档和一篇博文&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;代理工具&#34;&gt;代理工具&lt;/h2&gt;
&lt;p&gt;使用 &lt;code&gt;tscoks&lt;/code&gt; 。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>BUUCFT 题解</title>
      <link>https://bigshans.github.io/post/buucft/</link>
      <pubDate>Sun, 23 Jul 2023 08:19:53 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/buucft/</guid>
      
      <description>&lt;p&gt;娱乐性质，玩一玩。&lt;/p&gt;
&lt;h2 id=&#34;linux-lab&#34;&gt;Linux Lab&lt;/h2&gt;
&lt;p&gt;使用 ssh 连接到靶机即可。&lt;/p&gt;
&lt;pre class=&#34;shell&#34;&gt;&lt;code&gt;ssh root@address -p port&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;flag.txt 就放在根目录下面。&lt;/p&gt;
&lt;h2 id=&#34;buucft&#34;&gt;BUUCFT&lt;/h2&gt;
&lt;p&gt;打开页面，首先给了一段代码。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb2&#34;&gt;&lt;pre class=&#34;sourceCode php&#34;&gt;&lt;code class=&#34;sourceCode php&#34;&gt;&lt;span id=&#34;cb2-1&#34;&gt;&lt;a href=&#34;#cb2-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;&amp;lt;?php&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-2&#34;&gt;&lt;a href=&#34;#cb2-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;/**&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-3&#34;&gt;&lt;a href=&#34;#cb2-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt; * Created by PhpStorm.&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-4&#34;&gt;&lt;a href=&#34;#cb2-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt; * User: jinzhao&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-5&#34;&gt;&lt;a href=&#34;#cb2-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt; * Date: 2019/7/9&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-6&#34;&gt;&lt;a href=&#34;#cb2-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt; * Time: 7:07 AM&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-7&#34;&gt;&lt;a href=&#34;#cb2-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt; */&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-8&#34;&gt;&lt;a href=&#34;#cb2-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-9&#34;&gt;&lt;a href=&#34;#cb2-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;fu&#34;&gt;highlight_file&lt;/span&gt;(&lt;span class=&#34;cn&#34;&gt;__FILE__&lt;/span&gt;)&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-10&#34;&gt;&lt;a href=&#34;#cb2-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-11&#34;&gt;&lt;a href=&#34;#cb2-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt;(&lt;span class=&#34;kw&#34;&gt;isset&lt;/span&gt;(&lt;span class=&#34;va&#34;&gt;$_GET&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;file&amp;#39;&lt;/span&gt;])) {&lt;/span&gt;
&lt;span id=&#34;cb2-12&#34;&gt;&lt;a href=&#34;#cb2-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;va&#34;&gt;$str&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;$_GET&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;file&amp;#39;&lt;/span&gt;]&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-13&#34;&gt;&lt;a href=&#34;#cb2-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-14&#34;&gt;&lt;a href=&#34;#cb2-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;include&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;$_GET&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;file&amp;#39;&lt;/span&gt;]&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-15&#34;&gt;&lt;a href=&#34;#cb2-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;这里的意思是，高亮当前文件，判断是否存在为 file 的 query
参数，如果存在，就加载它。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>Obsidian 使用体验</title>
      <link>https://bigshans.github.io/post/obsidian-%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C/</link>
      <pubDate>Thu, 13 Jul 2023 17:16:02 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/obsidian-%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C/</guid>
      
      <description>&lt;p&gt;因为已经用了一段时间的 Obsidian
，所以整体说一下，包括使用的手感和我自己的 workflow 。&lt;/p&gt;
&lt;p&gt;Obsidian 与 Logseq 同属于双链编辑器，我最早使用的是 Logseq ，因为
Obsidian 总是脱手，用起来很别扭。但 Logseq
我本来也不满意，因为它是基于行使用的，导致我要写多行笔记时很不方便。而我使用
Obsidian 的缘起是因为我要写小说，早先用 Logseq
写设定时，多行编辑的体验糟糕透了，于是我尝试转移到 Obsidian 。 Obsidian
需要装很多插件才好用，默认的 Obsidian
配置其实没有什么优势。那个漂亮的、一个节点一个节点蹦跳出来的关系图谱其实一点用也没有，比起它被宣传为什么，我更在乎我该怎么用。双链的最大好处是可以随意跳转，即使不跳转也能
preview ，这点非常不错（其实 preview 这点，Logseq
做得好些）。写小说时的感觉还可以，但不足以扭转我对它的看法，真正改变我对
Obsidian 看法的，是当我用它写日记做各种笔记的时候。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>谈教育</title>
      <link>https://bigshans.github.io/post/%E8%B0%88%E6%95%99%E8%82%B2/</link>
      <pubDate>Wed, 03 May 2023 22:20:02 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E8%B0%88%E6%95%99%E8%82%B2/</guid>
      
      <description>&lt;p&gt;对于应试教育，我的评价一直是烂中烂。现在越来越多的声音说，应试教育也有好处，什么为了更好的“阶级跃迁”，什么保证公平，把大家拉到同一起跑线上。我感觉就像这些话跟高考时候标语一样，什么“提高一分，干掉千人”？教育本身就是为了培养人，不应当被视作阶级跃迁的工具。更何况阶级跃迁本身就带有背叛自己阶级的意思，我很不喜欢。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>目前为止的生活</title>
      <link>https://bigshans.github.io/post/%E7%9B%AE%E5%89%8D%E4%B8%BA%E6%AD%A2%E7%9A%84%E7%94%9F%E6%B4%BB/</link>
      <pubDate>Tue, 02 May 2023 16:37:34 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E7%9B%AE%E5%89%8D%E4%B8%BA%E6%AD%A2%E7%9A%84%E7%94%9F%E6%B4%BB/</guid>
      
      <description>&lt;p&gt;真是好久没有在电脑上码字了。最近下腰部莫名的疼痛，去医院看了一下，说问题不大，开了一些药让我回去吃。现在差不多一周多了，好也是好得差不多了。但还是得吃完，因为还有些地方不利索。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>纺织工人的比喻</title>
      <link>https://bigshans.github.io/post/%E7%BA%BA%E7%BB%87%E5%B7%A5%E4%BA%BA%E7%9A%84%E6%AF%94%E5%96%BB/</link>
      <pubDate>Tue, 11 Apr 2023 23:46:02 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E7%BA%BA%E7%BB%87%E5%B7%A5%E4%BA%BA%E7%9A%84%E6%AF%94%E5%96%BB/</guid>
      
      <description>&lt;p&gt;自从 ChatGPT
出现之后，纺织工人的这个比喻就不绝于耳。人们常用这个比喻来表达时代之洪流不可阻挡，而那些“纺织工人”不过是生产力进步不可避免的代价。&lt;/p&gt;
&lt;p&gt;首先，这个比喻是恰当的，但结论是有问题的。工业革命的工人砸机器，不是工人与机器的矛盾，而是无产阶级与资产阶级的矛盾。机器代表的是重复的抽象劳动，由于生产资料和劳动力分离，生产资料为谁所有是一个重要的问题。生产力决定生产关系，这个命题耳熟能详，左派和右派都同意这个观点。但是，劳动作为一个具体的活动，是需要对象的，换而言之，是需要生产资料的。如果没有作为物质形式存在的生产资料，作为自然能力之显现的劳动就无法完成。无产阶级由于不占有生产资料，因而劳动必然为资产阶级所摆布。机器之所以能够和无产阶级相竞争，是因为机器和无产阶级对于资本家而言都是生产力。机器是不需要考虑生存的，但人是需要因劳动而获得生存的。工人砸机器不过是这一矛盾的冰山一角罢了。马克思早在手稿中就提到了：&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>不要过早地优化需求</title>
      <link>https://bigshans.github.io/post/dont-optimize-requirements-too-early/</link>
      <pubDate>Mon, 13 Mar 2023 14:34:09 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/dont-optimize-requirements-too-early/</guid>
      
      <description>&lt;p&gt;开发界有一句话：“不要做过早优化。”这句话同样适用于产品经理。&lt;/p&gt;
&lt;p&gt;我们不应当认为用户的需求背后总存在一个根本性的需求，这会我把我们引入误区。比如我就要一份西红柿炒鸡蛋，你非要给我推销全自动做菜机器人，认为它符合我的需求，没必要。用户的根本性需求应当是体现在一系列需求的变更之中的。在那些关于用户需求的根本需求的例子中，无一不是需要产品与用户密切沟通，不停地变更原始需求。如果这种需求没有发生任何变动，就不应当认为那种根本性的需求存在。每一个产品经理都渴望能有一个超越用户需求的需求，以满足用户的任意需求，但用户的需求是什么那它就是什么，一旦确定就不会随着后面的交流而变动。且需求是层次化的，它必然以一个历史的结构出现，换句话说，是必须要走弯路的，任何企图越过这些弯路的需求必然会面临用户的审判。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>Attack Lab 一二题题解</title>
      <link>https://bigshans.github.io/post/attack-lab%E4%B8%80%E4%BA%8C%E9%A2%98%E9%A2%98%E8%A7%A3/</link>
      <pubDate>Sun, 12 Mar 2023 22:15:45 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/attack-lab%E4%B8%80%E4%BA%8C%E9%A2%98%E9%A2%98%E8%A7%A3/</guid>
      
      <description>&lt;p&gt;最近看深入理解计算机系统的视频，对他们的 Attack Lab
非常感兴趣，于是就找到程序做了一下，感觉还是蛮有意思的。代码和程序需要在
&lt;a href=&#34;http://csapp.cs.cmu.edu/3e/target1.tar&#34;&gt;cmu&lt;/a&gt;
的网站上下载。下载后解压就可以开始做题了。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>在 Lazada App 里面打开链接</title>
      <link>https://bigshans.github.io/post/open-link-in-lazada-app/</link>
      <pubDate>Tue, 28 Feb 2023 17:57:44 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/open-link-in-lazada-app/</guid>
      
      <description>&lt;p&gt;由于需要爬 Lazada
的销量信息，所以我不得不在手机上进行爬虫。麻烦的是，PC
的链接虽然可以在移动端打开，但不能跳转进 App ， App
分享的链接虽然可以跳转，但让业务方在手机端复制分享链接再给到我，对他们而言也是不小的工作量。做
RPA
数据爬取本来就是为了帮他们减少负担，这样反倒适得其反。所以，还是得研究研究，能否直接从
PC 端的链接，直接跳转到 App 内部。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>重装 arch</title>
      <link>https://bigshans.github.io/post/%E9%87%8D%E8%A3%85arch/</link>
      <pubDate>Sun, 26 Feb 2023 14:01:31 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E9%87%8D%E8%A3%85arch/</guid>
      
      <description>&lt;p&gt;昨天 KDE 不知道什么原因滚挂了，于是我决定重装系统。最近 KDE
在我的机子上经常崩溃，我也不想修了，因为真的修不起来。距离上一次重装不知道什么时候了，但
Arch 的稳定程度其实是可以的，只要你不是故意去 Arch Testing 。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>一心愁谢如枯兰</title>
      <link>https://bigshans.github.io/post/%E4%B8%80%E5%BF%83%E6%84%81%E8%B0%A2%E5%A6%82%E6%9E%AF%E5%85%B0/</link>
      <pubDate>Sat, 25 Feb 2023 00:21:15 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E4%B8%80%E5%BF%83%E6%84%81%E8%B0%A2%E5%A6%82%E6%9E%AF%E5%85%B0/</guid>
      
      <description>&lt;p&gt;说来也不怕别人笑话，我这个就是很容易被别人好意欺骗，到头来总是被当作枪。来这家公司三年，感觉自己当初要是能再明白点，再决绝点，不至于在此痛苦三年。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>TCP 的握手和挥手</title>
      <link>https://bigshans.github.io/post/tcp%E7%9A%84%E6%8F%A1%E6%89%8B%E5%92%8C%E6%8C%A5%E6%89%8B/</link>
      <pubDate>Thu, 23 Feb 2023 10:46:04 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/tcp%E7%9A%84%E6%8F%A1%E6%89%8B%E5%92%8C%E6%8C%A5%E6%89%8B/</guid>
      
      <description>&lt;p&gt;TCP
的握手和挥手想必很多人都已经很熟悉了，“三次握手”和“四次挥手”在面试的时候几乎都是八股文了。光是背这个的话，着实了无趣味。我们可以通过
&lt;code&gt;tcpdump&lt;/code&gt; 和 wireshark 来看整个过程。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>如何正确的替换 HTML</title>
      <link>https://bigshans.github.io/post/sethtml/</link>
      <pubDate>Sat, 18 Feb 2023 14:08:26 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/sethtml/</guid>
      
      <description>&lt;p&gt;算是私人页的一个 BUG ，之前没有注意到。使用 &lt;code&gt;innerHTML&lt;/code&gt; 进行替换后，替换内容内所有的 &lt;code&gt;script&lt;/code&gt; 都失效了，这是符合浏览器预期的，可见 MDN 。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Although this may look like a cross-site scripting attack, the result is harmless. HTML specifies that a &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag inserted with innerHTML should not execute.&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    
    
    <item>
      <title>如何在 Hugo 上实现私人加密页</title>
      <link>https://bigshans.github.io/post/private-blog-page/</link>
      <pubDate>Fri, 17 Feb 2023 14:41:01 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/private-blog-page/</guid>
      
      <description>&lt;p&gt;做了一些更新，现在把 private 单独放到一个路径下面，同时把私人也从
post
列表移除，从另一个地址进去。如此页面的观感就好多了。同时也对整个处理的过程进行了大幅修改，重写了原来的
script 脚本，并用 Deno 实现了主要逻辑。Shell 脚本主要是用来协调 Deno
脚本的运行的。&lt;/p&gt;</description>
      
    </item>
    
    
    
    
    
    <item>
      <title>core-js 的公地悲剧</title>
      <link>https://bigshans.github.io/post/core-js%E7%9A%84%E5%85%AC%E5%9C%B0%E6%82%B2%E5%89%A7/</link>
      <pubDate>Thu, 16 Feb 2023 00:34:50 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/core-js%E7%9A%84%E5%85%AC%E5%9C%B0%E6%82%B2%E5%89%A7/</guid>
      
      <description>&lt;p&gt;看完 core-js 作者的长文后，有感而发，写一点文字。&lt;/p&gt;
&lt;p&gt;core-js
面临的问题是，由大多数人共享的东西，得到越少人的照顾。我现在依旧可以看到一些言论，对于作者这样讨钱，当初就不应该开源，或者协议选得不对。在
fakejs
的事件，我就试图反驳这样的言论，现在我想我应该能够更充分的反驳。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>谈谈 RPA</title>
      <link>https://bigshans.github.io/post/%E8%B0%88%E8%B0%88rpa/</link>
      <pubDate>Wed, 15 Feb 2023 18:27:32 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E8%B0%88%E8%B0%88rpa/</guid>
      
      <description>&lt;p&gt;最近 RPA 用得比较多，我谈一下这个。&lt;/p&gt;
&lt;p&gt;RPA 在办公室自动化方面应用极广，而对应的软件在 Windows
上也是遍地开花。为什么是在 Windows 上呢？原因也很好理解，因为 Windows
在办公方面用得最多，一方面需求旺盛，另一方面对应的 API
和相关的控制微软也提供了很多。比如，微软自己就提供了一个 RPA 的软件，叫
Power Automate 。这些 RPA
基本都会给你一个图形化编程的界面，但底层仍然是一门具体的编程语言，比如
Power Automate 用得是 VB ，影刀用得是 Python
。但一些厂家并不会提供对应的脚本书写的地方，原因倒不在于，脚本编写会加深用户的使用难度，而是在于，这会缩窄
RPA
软件的盈利范围。不过微软倒是大气些，提供一个能写入脚本的地方，可惜太小了点，而且做得也不太好。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>Node 事件循环</title>
      <link>https://bigshans.github.io/post/node%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF/</link>
      <pubDate>Thu, 09 Feb 2023 13:35:35 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/node%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF/</guid>
      
      <description>&lt;p&gt;JavaScript
是一门和事件循环结合非常紧密的语言，它最早出现在浏览器上，因为
JavaScript 为了保持 DOM
与操作相分离，同时协调浏览器上的各种资源，因而不得不有一个总线去处理，这个总线就是事件循环。
ES
标准并没有规定事件循环应该如何编写，因为这很明显取决于运行时，所以各个
Runtime 之间的事件循环存在较大的差别，比如说，之前浏览器和 Node
的事件循环机制就存在较大的差别。最新版的 Node
在事件循环上的表现，基本与浏览器类似了。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>小公司的狂妄自大</title>
      <link>https://bigshans.github.io/post/%E5%B0%8F%E5%85%AC%E5%8F%B8%E7%9A%84%E7%8B%82%E5%A6%84%E8%87%AA%E5%A4%A7/</link>
      <pubDate>Sun, 05 Feb 2023 03:27:39 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E5%B0%8F%E5%85%AC%E5%8F%B8%E7%9A%84%E7%8B%82%E5%A6%84%E8%87%AA%E5%A4%A7/</guid>
      
      <description>&lt;p&gt;一些大厂出来的人会一种错觉，以为自己离开了大厂仍能干一番事业。尤其是一些领导层，以为自己有一些人脉，似乎就可以登天。殊不知自己离开了大厂什么都不是。所谓的人脉，也不过是一些能够把自己当作工具出卖的机会。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>修复plasma全局快捷键无法设置</title>
      <link>https://bigshans.github.io/post/%E4%BF%AE%E5%A4%8Dplasma%E5%85%A8%E5%B1%80%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%97%A0%E6%B3%95%E8%AE%BE%E7%BD%AE/</link>
      <pubDate>Sat, 04 Feb 2023 20:22:00 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E4%BF%AE%E5%A4%8Dplasma%E5%85%A8%E5%B1%80%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%97%A0%E6%B3%95%E8%AE%BE%E7%BD%AE/</guid>
      
      <description>&lt;p&gt;起因是不知道什么时候，我打开 Plasma
的快捷键设置时，全局设置总是报错，但虽然报错，全局快捷键亦然很好使。&lt;/p&gt;
&lt;p&gt;经过我一番努力的探索，我终于发现了问题所在。&lt;/p&gt;
&lt;p&gt;可以参考以下的帖子：
https://forum.ubuntu.org.cn/viewtopic.php?t=491267 。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>CSS 盒子模型</title>
      <link>https://bigshans.github.io/post/css-box/</link>
      <pubDate>Fri, 13 Jan 2023 09:27:13 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/css-box/</guid>
      
      <description>&lt;p&gt;一个 HTML 文档在浏览器内将会被解析为一棵文档树，这是众所周知的。 CSS
的盒子模型则描述了文档上的每一个节点所生成的模型，这是 CSS
布局排版的基础。&lt;/p&gt;
&lt;h2 id=&#34;标准盒型&#34;&gt;标准盒型&lt;/h2&gt;
&lt;figure&gt;
&lt;img src=&#34;https://www.w3.org/TR/2016/WD-CSS22-20160412/images/boxdim.png&#34; alt=&#34;盒子模型示意图&#34;/&gt;
&lt;figcaption aria-hidden=&#34;true&#34;&gt;盒子模型示意图&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;每一个盒子都一块内容（content）区域，围绕内容从内向外分别是内边距、边框和外边距（padding
、 border 、 margin）。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>CSS 三栏布局</title>
      <link>https://bigshans.github.io/post/css%E4%B8%89%E6%A0%8F%E5%B8%83%E5%B1%80/</link>
      <pubDate>Tue, 10 Jan 2023 09:27:35 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/css%E4%B8%89%E6%A0%8F%E5%B8%83%E5%B1%80/</guid>
      
      <description>&lt;p&gt;三栏布局是比较经典的 CSS
布局，特点就是中间内容自适应，首先渲染，其次左右内容大小保持不变分布两旁。结构上打破了一般意义上的左中右的顺序，变成了中左右的顺序，但视觉展示仍然要求是左中右的布局，于是，如何将中间内容放回到中间，并重新分布左右则是此类技术的核心所在。在
&lt;code&gt;flex&lt;/code&gt; 之前，前端多用 &lt;code&gt;float&lt;/code&gt;
实现，出现了双飞翼和圣杯布局两种实现，现在我们可以用 &lt;code&gt;flex&lt;/code&gt;
来很简单的实现。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>《Vuejs设计与实现》读书笔记</title>
      <link>https://bigshans.github.io/post/vuejs%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</link>
      <pubDate>Sun, 08 Jan 2023 13:37:21 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/vuejs%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</guid>
      
      <description>&lt;h2 id=&#34;第二篇-响应系统&#34;&gt;第二篇 响应系统&lt;/h2&gt;
&lt;h3 id=&#34;第四章-响应系统的作用与实现&#34;&gt;第四章 响应系统的作用与实现&lt;/h3&gt;
&lt;h4 id=&#34;设计完善的响应式系统&#34;&gt;设计完善的响应式系统&lt;/h4&gt;
&lt;p&gt;借助 &lt;code&gt;Proxy&lt;/code&gt;
，我们实现一个基本的响应式系统。书中代码我改成可以在 Node
中运行的代码了。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; bucket &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Set&lt;/span&gt;()&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; data &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; { &lt;span class=&#34;dt&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;hello world&amp;#39;&lt;/span&gt; }&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; obj &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Proxy&lt;/span&gt;(data&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; {&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;get&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key) {&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        bucket&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;add&lt;/span&gt;(effect)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; target[key]&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    }&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;set&lt;/span&gt;(target&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; key&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; newVal) {&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        target[key] &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; newVal&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        bucket&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;forEach&lt;/span&gt;(fn &lt;span class=&#34;kw&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;fn&lt;/span&gt;())&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    }&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;})&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;effect&lt;/span&gt;() {&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(obj&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;at&#34;&gt;text&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;fu&#34;&gt;effect&lt;/span&gt;()&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-23&#34;&gt;&lt;a href=&#34;#cb1-23&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;pp&#34;&gt;setTimeout&lt;/span&gt;(() &lt;span class=&#34;kw&#34;&gt;=&amp;gt;&lt;/span&gt; {&lt;/span&gt;
&lt;span id=&#34;cb1-24&#34;&gt;&lt;a href=&#34;#cb1-24&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    obj&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;at&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;Hello Vue&amp;#39;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-25&#34;&gt;&lt;a href=&#34;#cb1-25&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1000&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-26&#34;&gt;&lt;a href=&#34;#cb1-26&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// Output:&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-27&#34;&gt;&lt;a href=&#34;#cb1-27&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// hello world&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-28&#34;&gt;&lt;a href=&#34;#cb1-28&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// Hello Vue&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;这里是写死了 &lt;code&gt;effect&lt;/code&gt; ，不过不用太过纠结。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>谈许立志</title>
      <link>https://bigshans.github.io/post/%E8%B0%88%E8%AE%B8%E7%AB%8B%E5%BF%97/</link>
      <pubDate>Sat, 07 Jan 2023 23:11:40 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E8%B0%88%E8%AE%B8%E7%AB%8B%E5%BF%97/</guid>
      
      <description>&lt;p&gt;最近在读许立志的诗，他的诗集《新的一天》。他离去的太早了，诗集还很粗糙，来不及打磨，但纵使如此，也有些诗的力量仍力透纸背，字字泣血。我最喜欢他的三首诗，《我谈到血》、《我咽下一枚铁做的月亮》和《夜班》。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>2022 年年终总结</title>
      <link>https://bigshans.github.io/post/2022%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</link>
      <pubDate>Wed, 28 Dec 2022 16:39:17 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/2022%E5%B9%B4%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</guid>
      
      <description>&lt;p&gt;看看去年写年终总结的时间，差不多是同一时刻。年末国内终于放开封控了，我也“有幸”感染了新冠，过去差不多一周了，咳嗽鼻塞还没好。现在感觉其实有点像咽喉炎鼻炎发作，真不知道什么时候是个头啊！&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>阳了之后</title>
      <link>https://bigshans.github.io/post/%E9%98%B3%E4%BA%86%E4%B9%8B%E5%90%8E/</link>
      <pubDate>Tue, 27 Dec 2022 18:31:00 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/%E9%98%B3%E4%BA%86%E4%B9%8B%E5%90%8E/</guid>
      
      <description>&lt;p&gt;大约是在上周三晚上，感觉鼻子喉咙不大对劲儿，然后推测大抵是阳了。第二天硬着头皮去上班，上午还没结束就撑不住了，感觉回家去休息。同时给了我两粒感康，但我到最后也没有吃。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>JavaScript 的标签模板字符串</title>
      <link>https://bigshans.github.io/post/tagged-template-string/</link>
      <pubDate>Fri, 16 Dec 2022 10:49:05 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/tagged-template-string/</guid>
      
      <description>&lt;p&gt;标签模板是个看起来很 Magic 的语法，写起来像是这样。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;vs&#34;&gt;`Hello, World!`&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// Output: [&amp;#34;Hello, World!&amp;#34;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;实际上，这里的模板标签被转换成这样的一句调用。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb2&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb2-1&#34;&gt;&lt;a href=&#34;#cb2-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;call&lt;/span&gt;(&lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; [&lt;span class=&#34;st&#34;&gt;&amp;#39;Hello, World!&amp;#39;&lt;/span&gt;])&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;如果我们有用变量的话，&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb3&#34;&gt;&lt;pre class=&#34;sourceCode javascript&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb3-1&#34;&gt;&lt;a href=&#34;#cb3-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; name &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;world&amp;#39;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb3-2&#34;&gt;&lt;a href=&#34;#cb3-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;vs&#34;&gt;`Hello, &lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;${&lt;/span&gt;name&lt;span class=&#34;sc&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;vs&#34;&gt;!`&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb3-3&#34;&gt;&lt;a href=&#34;#cb3-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// Output: [ &amp;#39;Hello, &amp;#39;, &amp;#39;!&amp;#39; ] world&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;就会被转换成这样一句调用。&lt;/p&gt;</description>
      
    </item>
    
    
    
    <item>
      <title>await 的背后</title>
      <link>https://bigshans.github.io/post/await%E7%9A%84%E8%83%8C%E5%90%8E/</link>
      <pubDate>Thu, 15 Dec 2022 21:49:39 +0800</pubDate>
      
      <guid>https://bigshans.github.io/post/await%E7%9A%84%E8%83%8C%E5%90%8E/</guid>
      
      <description>&lt;p&gt;我们一般会认为 &lt;code&gt;async/await&lt;/code&gt; 是 &lt;code&gt;Promise&lt;/code&gt;
的语法糖，实际上也没有错。但在 Node 10 的时候，一个 &lt;code&gt;await&lt;/code&gt;
会产生三个微任务，导致单个 &lt;code&gt;await&lt;/code&gt; 的性能远不如
&lt;code&gt;Promise&lt;/code&gt; ，但在 Node 12 时， V8
团队称，其性能已经比一般手动创建处理的 &lt;code&gt;Promise&lt;/code&gt; 好了。&lt;/p&gt;</description>
      
    </item>
    
    
  </channel>
</rss>
