<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>张小伦的网络日志</title><description>Halo! 我是 zhanglun 👋🏼 一位软件开发工程师。</description><link>https://zhanglun.github.io/</link><item><title>Codex 风格 Agent Activity Stream：如何展示 Agent 的可观察执行过程</title><link>https://zhanglun.github.io/blog/2026-08-28-agent-activity-stream-codex-style/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2026-08-28-agent-activity-stream-codex-style/</guid><description>从 Runtime 事件到用户界面，展示 Agent 的可观察工作过程，而不暴露模型的私有思维链。</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>tldraw 源码改造并发布到私有 npm 仓库的完整流程</title><link>https://zhanglun.github.io/blog/2025-11-19-tldraw-%E6%BA%90%E7%A0%81%E6%94%B9%E9%80%A0%E5%B9%B6%E5%8F%91%E5%B8%83%E5%88%B0%E7%A7%81%E6%9C%89-npm-%E4%BB%93%E5%BA%93%E7%9A%84%E5%AE%8C%E6%95%B4%E6%B5%81%E7%A8%8B/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-11-19-tldraw-%E6%BA%90%E7%A0%81%E6%94%B9%E9%80%A0%E5%B9%B6%E5%8F%91%E5%B8%83%E5%88%B0%E7%A7%81%E6%9C%89-npm-%E4%BB%93%E5%BA%93%E7%9A%84%E5%AE%8C%E6%95%B4%E6%B5%81%E7%A8%8B/</guid><description>最近需要在tldraw的源码上二次开发一些定制的功能了。</description><pubDate>Wed, 19 Nov 2025 09:00:00 GMT</pubDate></item><item><title>一次图片上传被截断问题引发的思考</title><link>https://zhanglun.github.io/blog/2025-11-14-%E4%B8%80%E6%AC%A1%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E8%A2%AB%E6%88%AA%E6%96%AD%E9%97%AE%E9%A2%98%E5%BC%95%E5%8F%91%E7%9A%84%E6%80%9D%E8%80%83/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-11-14-%E4%B8%80%E6%AC%A1%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E8%A2%AB%E6%88%AA%E6%96%AD%E9%97%AE%E9%A2%98%E5%BC%95%E5%8F%91%E7%9A%84%E6%80%9D%E8%80%83/</guid><description>最近在开发在线批注工具时，我遇到了一个让人费解的问题。</description><pubDate>Fri, 14 Nov 2025 09:00:00 GMT</pubDate></item><item><title>从全局变量竞态到Promise互斥锁的解决方案</title><link>https://zhanglun.github.io/blog/2025-11-04-%E4%BB%8E%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E7%AB%9E%E6%80%81%E5%88%B0promise%E4%BA%92%E6%96%A5%E9%94%81%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-11-04-%E4%BB%8E%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E7%AB%9E%E6%80%81%E5%88%B0promise%E4%BA%92%E6%96%A5%E9%94%81%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</guid><description>## 背景


最近在开发一个Node.js后端服务时，我遇到了一个令人困惑的问题。</description><pubDate>Tue, 04 Nov 2025 10:00:00 GMT</pubDate></item><item><title>如何让白板工具理解我乱画的图形？</title><link>https://zhanglun.github.io/blog/2025-10-29-%E5%A6%82%E4%BD%95%E8%AE%A9%E7%99%BD%E6%9D%BF%E5%B7%A5%E5%85%B7%E7%90%86%E8%A7%A3%E6%88%91%E4%B9%B1%E7%94%BB%E7%9A%84%E5%9B%BE%E5%BD%A2/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-10-29-%E5%A6%82%E4%BD%95%E8%AE%A9%E7%99%BD%E6%9D%BF%E5%B7%A5%E5%85%B7%E7%90%86%E8%A7%A3%E6%88%91%E4%B9%B1%E7%94%BB%E7%9A%84%E5%9B%BE%E5%BD%A2/</guid><description>最近我在做一个白板工具，其中要增加那个&quot;智能画笔&quot;功能：用户随便画个歪歪扭扭的图形，工具会自动把它变成标准的形状。</description><pubDate>Wed, 29 Oct 2025 08:00:00 GMT</pubDate></item><item><title>在 Node.js 中读取和写入文件</title><link>https://zhanglun.github.io/blog/2025-10-16-%E5%9C%A8-nodejs-%E4%B8%AD%E8%AF%BB%E5%8F%96%E5%92%8C%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-10-16-%E5%9C%A8-nodejs-%E4%B8%AD%E8%AF%BB%E5%8F%96%E5%92%8C%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6/</guid><description>文件操作是 Node.js 常见的使用场景。</description><pubDate>Thu, 16 Oct 2025 09:00:00 GMT</pubDate></item><item><title> 图片缓存失效问题排查</title><link>https://zhanglun.github.io/blog/2025-09-24-%E5%9B%BE%E7%89%87%E7%BC%93%E5%AD%98%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-09-24-%E5%9B%BE%E7%89%87%E7%BC%93%E5%AD%98%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5/</guid><description>为什么相同的 URL 请求了两次？——以及“加 crossorigin=anonymous”带来的风险


## 一、问题背景


最近在优化一个内部文档协作平台的图片加载性能时，我发现一个奇怪的现象：

&gt; 同一个图片 URL，在页面中被请求了两次 —— 一次走 no-cors，一次走 cors，且第二次没有命中缓存。</description><pubDate>Wed, 24 Sep 2025 04:00:00 GMT</pubDate></item><item><title>Tiptap 输入规则深度解析：nodeInputRule vs wrappingInputRule</title><link>https://zhanglun.github.io/blog/2025-07-15-tiptap-%E8%BE%93%E5%85%A5%E8%A7%84%E5%88%99%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90nodeinputrule-vs-wrappinginputrule/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-07-15-tiptap-%E8%BE%93%E5%85%A5%E8%A7%84%E5%88%99%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90nodeinputrule-vs-wrappinginputrule/</guid><description>在 Tiptap 富文本编辑器中，输入规则（Input Rules）是实现 Markdown 风格快捷输入的核心机制。</description><pubDate>Tue, 15 Jul 2025 13:12:00 GMT</pubDate></item><item><title>协作编辑系统的互斥锁机制-tldraw开发笔记</title><link>https://zhanglun.github.io/blog/2025-06-06-%E5%8D%8F%E4%BD%9C%E7%BC%96%E8%BE%91%E7%B3%BB%E7%BB%9F%E7%9A%84%E4%BA%92%E6%96%A5%E9%94%81%E6%9C%BA%E5%88%B6-tldraw%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-06-06-%E5%8D%8F%E4%BD%9C%E7%BC%96%E8%BE%91%E7%B3%BB%E7%BB%9F%E7%9A%84%E4%BA%92%E6%96%A5%E9%94%81%E6%9C%BA%E5%88%B6-tldraw%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0/</guid><description>在开发tldraw的时候，在它的demo中看到一段注释


```javascript
// Very simple mutex using promise chaining, to avoid race conditions
// when loading rooms.</description><pubDate>Fri, 06 Jun 2025 05:00:00 GMT</pubDate></item><item><title>有了pnpm，为什么还要nx来做monorepo</title><link>https://zhanglun.github.io/blog/2025-06-03-%E6%9C%89%E4%BA%86pnpm%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E8%A6%81nx%E6%9D%A5%E5%81%9Amonorepo/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-06-03-%E6%9C%89%E4%BA%86pnpm%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E8%A6%81nx%E6%9D%A5%E5%81%9Amonorepo/</guid><description>docmost项目已经有了阶段性成果，暂时告一段落。</description><pubDate>Tue, 03 Jun 2025 08:00:00 GMT</pubDate></item><item><title>drawio是如何通过svg文件恢复整个文件</title><link>https://zhanglun.github.io/blog/2025-05-28-drawio%E6%98%AF%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87svg%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-05-28-drawio%E6%98%AF%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87svg%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6/</guid><description>drawio是如何通过svg文件恢复整个文件</description><pubDate>Wed, 28 May 2025 05:00:00 GMT</pubDate></item><item><title>兼容H5的软键盘，痛苦的折磨</title><link>https://zhanglun.github.io/blog/2025-05-13-%E5%85%BC%E5%AE%B9h5%E7%9A%84%E8%BD%AF%E9%94%AE%E7%9B%98%E7%97%9B%E8%8B%A6%E7%9A%84%E6%8A%98%E7%A3%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-05-13-%E5%85%BC%E5%AE%B9h5%E7%9A%84%E8%BD%AF%E9%94%AE%E7%9B%98%E7%97%9B%E8%8B%A6%E7%9A%84%E6%8A%98%E7%A3%A8/</guid><description>最近在做docmost的二次开发，需要对H5上做一些适配。</description><pubDate>Tue, 13 May 2025 11:00:00 GMT</pubDate></item><item><title>记一次光暗模式下的兼容性问题</title><link>https://zhanglun.github.io/blog/2025-04-27-%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%85%89%E6%9A%97%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2025-04-27-%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%85%89%E6%9A%97%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98/</guid><description>记一次光暗模式下的兼容性问题</description><pubDate>Sun, 27 Apr 2025 06:00:00 GMT</pubDate></item><item><title>深入浅出：Electron 应用中的自定义协议与 URL 编码处理</title><link>https://zhanglun.github.io/blog/2024-11-18-%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAelectron-%E5%BA%94%E7%94%A8%E4%B8%AD%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE%E4%B8%8E-url-%E7%BC%96%E7%A0%81%E5%A4%84%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2024-11-18-%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAelectron-%E5%BA%94%E7%94%A8%E4%B8%AD%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE%E4%B8%8E-url-%E7%BC%96%E7%A0%81%E5%A4%84%E7%90%86/</guid><description>在开发桌面应用时，我们经常需要处理本地资源的访问。</description><pubDate>Mon, 18 Nov 2024 11:21:00 GMT</pubDate></item><item><title>Lettura 开发日志：SQLite 数据库迁移实践</title><link>https://zhanglun.github.io/blog/2024-11-16-lettura-%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97sqlite-%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E5%AE%9E%E8%B7%B5/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2024-11-16-lettura-%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97sqlite-%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E5%AE%9E%E8%B7%B5/</guid><description>## 背景


在开发 [Lettura](https://github.com/lettura/lettura) RSS 阅读器的过程中，我遇到了一个数据库设计需要优化的场景。</description><pubDate>Sat, 16 Nov 2024 13:00:00 GMT</pubDate></item><item><title>Lettura开发日志-设置Accpet提高对源的命中🎯</title><link>https://zhanglun.github.io/blog/2024-11-13-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E8%AE%BE%E7%BD%AEaccpet%E6%8F%90%E9%AB%98%E5%AF%B9%E6%BA%90%E7%9A%84%E5%91%BD%E4%B8%AD/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2024-11-13-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E8%AE%BE%E7%BD%AEaccpet%E6%8F%90%E9%AB%98%E5%AF%B9%E6%BA%90%E7%9A%84%E5%91%BD%E4%B8%AD/</guid><description>Lettura开发日志-设置Accpet提高对源的命中🎯</description><pubDate>Wed, 13 Nov 2024 05:00:00 GMT</pubDate></item><item><title>小吐槽一下Node.js</title><link>https://zhanglun.github.io/blog/2024-03-02-%E5%B0%8F%E5%90%90%E6%A7%BD%E4%B8%80%E4%B8%8Bnodejs/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2024-03-02-%E5%B0%8F%E5%90%90%E6%A7%BD%E4%B8%80%E4%B8%8Bnodejs/</guid><description>小吐槽一下Node.js</description><pubDate>Sat, 02 Mar 2024 02:40:00 GMT</pubDate></item><item><title>Node.js高可用架构设计与实践的整理</title><link>https://zhanglun.github.io/blog/2023-12-11-nodejs%E9%AB%98%E5%8F%AF%E7%94%A8%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E8%B7%B5%E7%9A%84%E6%95%B4%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-12-11-nodejs%E9%AB%98%E5%8F%AF%E7%94%A8%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E8%B7%B5%E7%9A%84%E6%95%B4%E7%90%86/</guid><description>在web应用的生命周期中，最关键的转折点往往出现在流量增长阶段。</description><pubDate>Mon, 11 Dec 2023 05:00:00 GMT</pubDate></item><item><title>如何使用 NestJs 创建分页、可排序和可过滤的接口</title><link>https://zhanglun.github.io/blog/2023-09-01-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-nestjs-%E5%88%9B%E5%BB%BA%E5%88%86%E9%A1%B5%E5%8F%AF%E6%8E%92%E5%BA%8F%E5%92%8C%E5%8F%AF%E8%BF%87%E6%BB%A4%E7%9A%84%E6%8E%A5%E5%8F%A3/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-09-01-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-nestjs-%E5%88%9B%E5%BB%BA%E5%88%86%E9%A1%B5%E5%8F%AF%E6%8E%92%E5%BA%8F%E5%92%8C%E5%8F%AF%E8%BF%87%E6%BB%A4%E7%9A%84%E6%8E%A5%E5%8F%A3/</guid><description>如何使用 NestJs 创建分页、可排序和可过滤的接口</description><pubDate>Fri, 01 Sep 2023 19:00:00 GMT</pubDate></item><item><title>Lettura开发日志-在Tauri中打印应用日志</title><link>https://zhanglun.github.io/blog/2023-08-05-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E5%9C%A8tauri%E4%B8%AD%E6%89%93%E5%8D%B0%E5%BA%94%E7%94%A8%E6%97%A5%E5%BF%97/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-08-05-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E5%9C%A8tauri%E4%B8%AD%E6%89%93%E5%8D%B0%E5%BA%94%E7%94%A8%E6%97%A5%E5%BF%97/</guid><description>[Lettura](https://github.com/zhanglun/lettura) 是一个开源的RSS阅读器，是我的开源项目。</description><pubDate>Sat, 05 Aug 2023 06:00:00 GMT</pubDate></item><item><title>修改commit的作者信息要几步呢？</title><link>https://zhanglun.github.io/blog/2023-07-26-%E4%BF%AE%E6%94%B9commit%E7%9A%84%E4%BD%9C%E8%80%85%E4%BF%A1%E6%81%AF%E8%A6%81%E5%87%A0%E6%AD%A5%E5%91%A2/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-07-26-%E4%BF%AE%E6%94%B9commit%E7%9A%84%E4%BD%9C%E8%80%85%E4%BF%A1%E6%81%AF%E8%A6%81%E5%87%A0%E6%AD%A5%E5%91%A2/</guid><description>我有两台Mac，一台mac mini在家使用，一台macbook用于工作，偶尔周末也会开发一些side project代码。</description><pubDate>Wed, 26 Jul 2023 04:00:00 GMT</pubDate></item><item><title>给自己的五年计划</title><link>https://zhanglun.github.io/blog/2023-07-24-%E7%BB%99%E8%87%AA%E5%B7%B1%E7%9A%84%E4%BA%94%E5%B9%B4%E8%AE%A1%E5%88%92/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-07-24-%E7%BB%99%E8%87%AA%E5%B7%B1%E7%9A%84%E4%BA%94%E5%B9%B4%E8%AE%A1%E5%88%92/</guid><description>2011年的时候，我刚上大一。</description><pubDate>Mon, 24 Jul 2023 11:00:00 GMT</pubDate></item><item><title>Lettura开发日志-给订阅的源增加健康标记</title><link>https://zhanglun.github.io/blog/2023-07-02-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E7%BB%99%E8%AE%A2%E9%98%85%E7%9A%84%E6%BA%90%E5%A2%9E%E5%8A%A0%E5%81%A5%E5%BA%B7%E6%A0%87%E8%AE%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-07-02-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E7%BB%99%E8%AE%A2%E9%98%85%E7%9A%84%E6%BA%90%E5%A2%9E%E5%8A%A0%E5%81%A5%E5%BA%B7%E6%A0%87%E8%AE%B0/</guid><description>[Lettura](https://github.com/zhanglun/lettura) 是一个开源的RSS阅读器，是我的开源项目。</description><pubDate>Sun, 02 Jul 2023 07:00:00 GMT</pubDate></item><item><title>Sentry中的Issue和Alert</title><link>https://zhanglun.github.io/blog/2023-05-28-sentry%E4%B8%AD%E7%9A%84issue%E5%92%8Calert/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-05-28-sentry%E4%B8%AD%E7%9A%84issue%E5%92%8Calert/</guid><description>花了点时间私有化部署了一套Sentry服务，本周接入了项目的测试环境。</description><pubDate>Sun, 28 May 2023 06:00:00 GMT</pubDate></item><item><title>Lettura开发日志-使用游标分页获取文章列表</title><link>https://zhanglun.github.io/blog/2023-05-16-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E4%BD%BF%E7%94%A8%E6%B8%B8%E6%A0%87%E5%88%86%E9%A1%B5%E8%8E%B7%E5%8F%96%E6%96%87%E7%AB%A0%E5%88%97%E8%A1%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-05-16-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E4%BD%BF%E7%94%A8%E6%B8%B8%E6%A0%87%E5%88%86%E9%A1%B5%E8%8E%B7%E5%8F%96%E6%96%87%E7%AB%A0%E5%88%97%E8%A1%A8/</guid><description>[Lettura](https://github.com/zhanglun/lettura) 是一个开源的RSS阅读器，是我的开源项目。</description><pubDate>Tue, 16 May 2023 05:00:00 GMT</pubDate></item><item><title>记录快乐的五一</title><link>https://zhanglun.github.io/blog/2023-05-03-%E8%AE%B0%E5%BD%95%E5%BF%AB%E4%B9%90%E7%9A%84%E4%BA%94%E4%B8%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-05-03-%E8%AE%B0%E5%BD%95%E5%BF%AB%E4%B9%90%E7%9A%84%E4%BA%94%E4%B8%80/</guid><description>刚度过了一个快乐的五一假期，写一篇小小的流水帐简单记录一下。</description><pubDate>Wed, 03 May 2023 13:00:00 GMT</pubDate></item><item><title>Lettura开发日志-添加快捷键操作</title><link>https://zhanglun.github.io/blog/2023-04-20-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E6%B7%BB%E5%8A%A0%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-04-20-lettura%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97-%E6%B7%BB%E5%8A%A0%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%93%8D%E4%BD%9C/</guid><description>[Lettura](https://github.com/zhanglun/lettura) 是一个开源的RSS阅读器，是我的开源项目。</description><pubDate>Thu, 20 Apr 2023 06:00:00 GMT</pubDate></item><item><title>学习项目管理-项目目标的确定</title><link>https://zhanglun.github.io/blog/2023-04-09-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%9B%AE%E6%A0%87%E7%9A%84%E7%A1%AE%E5%AE%9A/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-04-09-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%9B%AE%E6%A0%87%E7%9A%84%E7%A1%AE%E5%AE%9A/</guid><description>## 定义项目要解决的问题


项目是用来解决问题的手段，有了项目目标，项目组就可以明确这个项目要解决什么样的问题，甚至是达到什么样的结果。</description><pubDate>Sun, 09 Apr 2023 05:00:00 GMT</pubDate></item><item><title>学习项目管理-激励机制与绩效考评</title><link>https://zhanglun.github.io/blog/2023-03-27-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E6%BF%80%E5%8A%B1%E6%9C%BA%E5%88%B6%E4%B8%8E%E7%BB%A9%E6%95%88%E8%80%83%E8%AF%84/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-03-27-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E6%BF%80%E5%8A%B1%E6%9C%BA%E5%88%B6%E4%B8%8E%E7%BB%A9%E6%95%88%E8%80%83%E8%AF%84/</guid><description>学习项目管理-激励机制与绩效考评</description><pubDate>Mon, 27 Mar 2023 06:00:00 GMT</pubDate></item><item><title>【译】Rust模块系统的清晰解释</title><link>https://zhanglun.github.io/blog/2023-03-24-%E8%AF%91rust%E6%A8%A1%E5%9D%97%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%B8%85%E6%99%B0%E8%A7%A3%E9%87%8A/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-03-24-%E8%AF%91rust%E6%A8%A1%E5%9D%97%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%B8%85%E6%99%B0%E8%A7%A3%E9%87%8A/</guid><description>看到一篇关于Rust模块系统的文章，文章内容言简意赅，通俗易懂，清晰解释了Rust的模块系统个。</description><pubDate>Fri, 24 Mar 2023 05:00:00 GMT</pubDate></item><item><title>给Nest应用加上自定义配置</title><link>https://zhanglun.github.io/blog/2023-03-16-%E7%BB%99nest%E5%BA%94%E7%94%A8%E5%8A%A0%E4%B8%8A%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-03-16-%E7%BB%99nest%E5%BA%94%E7%94%A8%E5%8A%A0%E4%B8%8A%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE/</guid><description>给Nest应用加上自定义配置</description><pubDate>Thu, 16 Mar 2023 09:25:00 GMT</pubDate></item><item><title>使用飞书机器人串起前端研发流程</title><link>https://zhanglun.github.io/blog/2023-03-08-%E4%BD%BF%E7%94%A8%E9%A3%9E%E4%B9%A6%E6%9C%BA%E5%99%A8%E4%BA%BA%E4%B8%B2%E8%B5%B7%E5%89%8D%E7%AB%AF%E7%A0%94%E5%8F%91%E6%B5%81%E7%A8%8B/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-03-08-%E4%BD%BF%E7%94%A8%E9%A3%9E%E4%B9%A6%E6%9C%BA%E5%99%A8%E4%BA%BA%E4%B8%B2%E8%B5%B7%E5%89%8D%E7%AB%AF%E7%A0%94%E5%8F%91%E6%B5%81%E7%A8%8B/</guid><description>我想开发一个飞书机器人，将日常的工作信息串起来，集中到飞书消息中。</description><pubDate>Tue, 07 Mar 2023 16:00:00 GMT</pubDate></item><item><title>在 Rust 中使用全局变量</title><link>https://zhanglun.github.io/blog/2023-03-02-%E5%9C%A8-rust-%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-03-02-%E5%9C%A8-rust-%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/</guid><description>在 Rust 中使用全局变量</description><pubDate>Thu, 02 Mar 2023 05:00:00 GMT</pubDate></item><item><title>学习项目管理-多角色的项目经理</title><link>https://zhanglun.github.io/blog/2023-02-18-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E5%A4%9A%E8%A7%92%E8%89%B2%E7%9A%84%E9%A1%B9%E7%9B%AE%E7%BB%8F%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-02-18-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E5%A4%9A%E8%A7%92%E8%89%B2%E7%9A%84%E9%A1%B9%E7%9B%AE%E7%BB%8F%E7%90%86/</guid><description>## 项目经理扮演的角色


项目管理是以个人负责制为基础的管理体制，项目经理就是项目的负责人，有时也称为项目管理者或项目领导者。</description><pubDate>Sat, 18 Feb 2023 05:00:00 GMT</pubDate></item><item><title>如何在 Astro 中使用相对路径的图片</title><link>https://zhanglun.github.io/blog/2023-02-15-%E5%A6%82%E4%BD%95%E5%9C%A8-astro-%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E7%9A%84%E5%9B%BE%E7%89%87/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-02-15-%E5%A6%82%E4%BD%95%E5%9C%A8-astro-%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E7%9A%84%E5%9B%BE%E7%89%87/</guid><description>如何在 Astro 中使用相对路径的图片</description><pubDate>Wed, 15 Feb 2023 10:00:00 GMT</pubDate></item><item><title>学习项目管理-项目团队的建设</title><link>https://zhanglun.github.io/blog/2023-02-13-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E5%9B%A2%E9%98%9F%E7%9A%84%E5%BB%BA%E8%AE%BE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-02-13-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E5%9B%A2%E9%98%9F%E7%9A%84%E5%BB%BA%E8%AE%BE/</guid><description>## 项目团队的主要特点


在现代项目管理中，项目经理需要直接领导项目团队为实现、完成具体项目目标和各项任务而共同努力，协调一致和有效地进行工作。</description><pubDate>Mon, 13 Feb 2023 11:30:00 GMT</pubDate></item><item><title>Tauri和Rust异步进程的交互</title><link>https://zhanglun.github.io/blog/2023-02-11-tauri%E5%92%8Crust%E5%BC%82%E6%AD%A5%E8%BF%9B%E7%A8%8B%E7%9A%84%E4%BA%A4%E4%BA%92/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-02-11-tauri%E5%92%8Crust%E5%BC%82%E6%AD%A5%E8%BF%9B%E7%A8%8B%E7%9A%84%E4%BA%A4%E4%BA%92/</guid><description>在开发Pavo时，我想利用一个独立的进程来执行壁纸的定时切换任务。</description><pubDate>Sat, 11 Feb 2023 04:00:00 GMT</pubDate></item><item><title>修复 TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ts 的报错</title><link>https://zhanglun.github.io/blog/2023-02-02-%E4%BF%AE%E5%A4%8D-typeerror-err_unknown_file_extension-unknown-file-extension-ts-%E7%9A%84%E6%8A%A5%E9%94%99/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-02-02-%E4%BF%AE%E5%A4%8D-typeerror-err_unknown_file_extension-unknown-file-extension-ts-%E7%9A%84%E6%8A%A5%E9%94%99/</guid><description>今天用 TypeScript 写了一小段适配器模式的代码，本想着使用 `ts-node` 直接在terminal中跑一下。</description><pubDate>Thu, 02 Feb 2023 11:30:00 GMT</pubDate></item><item><title>Neovim 配置体验</title><link>https://zhanglun.github.io/blog/2023-01-29-neovim-%E9%85%8D%E7%BD%AE%E4%BD%93%E9%AA%8C/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-01-29-neovim-%E9%85%8D%E7%BD%AE%E4%BD%93%E9%AA%8C/</guid><description>Neovim 配置体验</description><pubDate>Sun, 29 Jan 2023 06:00:00 GMT</pubDate></item><item><title>在Rust中使用条件编译区分不同操作系统</title><link>https://zhanglun.github.io/blog/2023-01-23-%E5%9C%A8rust%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91%E5%8C%BA%E5%88%86%E4%B8%8D%E5%90%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-01-23-%E5%9C%A8rust%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91%E5%8C%BA%E5%88%86%E4%B8%8D%E5%90%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/</guid><description>## 使用wallpaper.rs修改壁纸


在开发 [Pavo](https://github.com/zhanglun/pavo) 项目时，使用网友开发的 [wallpaper.rs](https://github.com/reujab/wallpaper.rs)实现壁纸的切换能力。</description><pubDate>Sun, 22 Jan 2023 16:00:00 GMT</pubDate></item><item><title>Tauri + Yew 创建我的桌面应用-Pavo</title><link>https://zhanglun.github.io/blog/2023-01-15-tauri--yew-%E5%88%9B%E5%BB%BA%E6%88%91%E7%9A%84%E6%A1%8C%E9%9D%A2%E5%BA%94%E7%94%A8-pavo/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2023-01-15-tauri--yew-%E5%88%9B%E5%BB%BA%E6%88%91%E7%9A%84%E6%A1%8C%E9%9D%A2%E5%BA%94%E7%94%A8-pavo/</guid><description>Tauri + Yew 创建我的桌面应用-Pavo</description><pubDate>Sun, 15 Jan 2023 10:49:00 GMT</pubDate></item><item><title>Tauri App 的升级</title><link>https://zhanglun.github.io/blog/2022-12-16-tauri-app-%E7%9A%84%E5%8D%87%E7%BA%A7/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-12-16-tauri-app-%E7%9A%84%E5%8D%87%E7%BA%A7/</guid><description>本文主要内容来自：[https://tauri.app/v1/guides/distribution/updater](https://tauri.app/v1/guides/distribution/updater)。</description><pubDate>Thu, 15 Dec 2022 16:00:00 GMT</pubDate></item><item><title>学习项目管理-项目管理的流程</title><link>https://zhanglun.github.io/blog/2022-12-03-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E6%B5%81%E7%A8%8B/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-12-03-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E6%B5%81%E7%A8%8B/</guid><description>## 项目管理过程的组成


项目管理是由一系列子过程构成的，每个项目管理子过程又是由一系列项目管理的具体活动构成的。</description><pubDate>Fri, 02 Dec 2022 16:00:00 GMT</pubDate></item><item><title>结合Diesel实现翻页查询</title><link>https://zhanglun.github.io/blog/2022-10-30-%E7%BB%93%E5%90%88diesel%E5%AE%9E%E7%8E%B0%E7%BF%BB%E9%A1%B5%E6%9F%A5%E8%AF%A2/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-10-30-%E7%BB%93%E5%90%88diesel%E5%AE%9E%E7%8E%B0%E7%BF%BB%E9%A1%B5%E6%9F%A5%E8%AF%A2/</guid><description>书接上文，本文记录了我在开发Lettura项目时基于Diesel实现的翻页能力。</description><pubDate>Sat, 29 Oct 2022 16:00:00 GMT</pubDate></item><item><title>使用Rust抓取网页内容</title><link>https://zhanglun.github.io/blog/2022-10-14-%E4%BD%BF%E7%94%A8rust%E6%8A%93%E5%8F%96%E7%BD%91%E9%A1%B5%E5%86%85%E5%AE%B9/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-10-14-%E4%BD%BF%E7%94%A8rust%E6%8A%93%E5%8F%96%E7%BD%91%E9%A1%B5%E5%86%85%E5%AE%B9/</guid><description>在[Lettura](https://github.com/zhanglun/lettura)中已经基本实现了RSS阅读器的能力，日常的基本使用已经没有太大问题。</description><pubDate>Thu, 13 Oct 2022 16:00:00 GMT</pubDate></item><item><title>学习项目管理-项目管理的意义</title><link>https://zhanglun.github.io/blog/2022-09-06-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E6%84%8F%E4%B9%89/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-09-06-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E6%84%8F%E4%B9%89/</guid><description>学习项目管理-项目管理的意义</description><pubDate>Mon, 05 Sep 2022 16:00:00 GMT</pubDate></item><item><title>基于PNPM的项目改造</title><link>https://zhanglun.github.io/blog/2022-08-24-%E5%9F%BA%E4%BA%8Epnpm%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%94%B9%E9%80%A0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-08-24-%E5%9F%BA%E4%BA%8Epnpm%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%94%B9%E9%80%A0/</guid><description>## 背景


因为历史原因，前端项目的代码按照业务模块，分散在不同的代码仓库中。</description><pubDate>Tue, 23 Aug 2022 16:00:00 GMT</pubDate></item><item><title>学习项目管理-项目的生命周期</title><link>https://zhanglun.github.io/blog/2022-08-09-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-08-09-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</guid><description>## 什么是项目周期


任何项目都会有自己的生命周期，可能有人会说，项目都是一次性的，为什么还存在“项目周期”呢?的确，单从一个项目来看，是不应该用周期来描述的。</description><pubDate>Tue, 09 Aug 2022 02:00:00 GMT</pubDate></item><item><title>学习项目管理-项目管理的定义</title><link>https://zhanglun.github.io/blog/2022-08-04-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E5%AE%9A%E4%B9%89/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-08-04-%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9A%84%E5%AE%9A%E4%B9%89/</guid><description>## 什么是项目管理


项目管理是“对项目进行管理”。</description><pubDate>Thu, 04 Aug 2022 02:00:00 GMT</pubDate></item><item><title>使用 SVG 建立图标系统</title><link>https://zhanglun.github.io/blog/2022-07-29-%E4%BD%BF%E7%94%A8-svg-%E5%BB%BA%E7%AB%8B%E5%9B%BE%E6%A0%87%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-07-29-%E4%BD%BF%E7%94%A8-svg-%E5%BB%BA%E7%AB%8B%E5%9B%BE%E6%A0%87%E7%B3%BB%E7%BB%9F/</guid><description>## 背景


前段时间Iconfont关闭了服务，影响到了项目的正常开发和迭代。</description><pubDate>Fri, 29 Jul 2022 08:50:00 GMT</pubDate></item><item><title>Style Dictionary 和 Design Token 的实战</title><link>https://zhanglun.github.io/blog/2022-07-22-style-dictionary-%E5%92%8C-design-token-%E7%9A%84%E5%AE%9E%E6%88%98/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-07-22-style-dictionary-%E5%92%8C-design-token-%E7%9A%84%E5%AE%9E%E6%88%98/</guid><description>在[使用 Style Dictionary 管理 Design Token](https://zhanglun.xyz/blogs/%E4%BD%BF%E7%94%A8%20Style%20Dictionary%20%E7%AE%A1%E7%90%86%20Design%20Token/)中简单介绍了Style Dictionary及其使用，本文将介绍Style Dictionary在团队中的使用经验。</description><pubDate>Fri, 22 Jul 2022 05:00:00 GMT</pubDate></item><item><title>使用 Style Dictionary 管理 Design Token</title><link>https://zhanglun.github.io/blog/2022-07-15-%E4%BD%BF%E7%94%A8-style-dictionary-%E7%AE%A1%E7%90%86-design-token/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-07-15-%E4%BD%BF%E7%94%A8-style-dictionary-%E7%AE%A1%E7%90%86-design-token/</guid><description>使用 Style Dictionary 管理 Design Token</description><pubDate>Fri, 15 Jul 2022 12:34:00 GMT</pubDate></item><item><title>Storybook 使用手册——自定义主题</title><link>https://zhanglun.github.io/blog/2022-07-08-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-07-08-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98/</guid><description>虽然Storybook 提供的默认的样式已经挺漂亮的，但是当在落地自己的设计系统时，还是希望能够在整体风格上做出属于自己的定制。</description><pubDate>Fri, 08 Jul 2022 08:00:00 GMT</pubDate></item><item><title>浅谈 Design Token</title><link>https://zhanglun.github.io/blog/2022-07-04-%E6%B5%85%E8%B0%88-design-token/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-07-04-%E6%B5%85%E8%B0%88-design-token/</guid><description>我认为，在聊 Design Token之前，必须先理解什么设计系统（Design System）和 原子设计理论（Atomic Design)。</description><pubDate>Mon, 04 Jul 2022 11:00:00 GMT</pubDate></item><item><title>Storybook 使用手册——组织你的Storybook</title><link>https://zhanglun.github.io/blog/2022-06-20-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BB%84%E7%BB%87%E4%BD%A0%E7%9A%84storybook/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-06-20-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BB%84%E7%BB%87%E4%BD%A0%E7%9A%84storybook/</guid><description>在前面的文章中，通过个人博客的案例，展示了如何在现有项目中集成Storybook。</description><pubDate>Mon, 20 Jun 2022 13:19:00 GMT</pubDate></item><item><title>Storybook 使用手册——实战演练</title><link>https://zhanglun.github.io/blog/2022-06-04-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E5%AE%9E%E6%88%98%E6%BC%94%E7%BB%83/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-06-04-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E5%AE%9E%E6%88%98%E6%BC%94%E7%BB%83/</guid><description>在Storybook使用手册系列文章中，介绍了Storybook的基本概念和文档编写方式。</description><pubDate>Sat, 04 Jun 2022 07:00:00 GMT</pubDate></item><item><title>「译」衡量Web性能，多快才算快？</title><link>https://zhanglun.github.io/blog/2022-05-08-%E8%AF%91%E8%A1%A1%E9%87%8Fweb%E6%80%A7%E8%83%BD%E5%A4%9A%E5%BF%AB%E6%89%8D%E7%AE%97%E5%BF%AB/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-05-08-%E8%AF%91%E8%A1%A1%E9%87%8Fweb%E6%80%A7%E8%83%BD%E5%A4%9A%E5%BF%AB%E6%89%8D%E7%AE%97%E5%BF%AB/</guid><description>&gt; 原作者:  [**Medhat Dawoud**](https://medhatdawoud.net/)  
&gt; 原文链接：[**https://medhatdawoud.net/blog/measuring-web-performance**](https://medhatdawoud.net/blog/measuring-web-performance)

在生活中，任何难题都必须是有目标性的，以便于定性，或者能够被证明是可定性的。</description><pubDate>Sun, 08 May 2022 02:21:00 GMT</pubDate></item><item><title>Storybook 使用手册——MDX 和 Doc Blocks</title><link>https://zhanglun.github.io/blog/2022-04-24-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8Cmdx-%E5%92%8C-doc-blocks/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-04-24-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8Cmdx-%E5%92%8C-doc-blocks/</guid><description>## MDX


MDX是一种标准的文件格式，由Markdown和JSX组合而成，文件后缀是`.mdx`。</description><pubDate>Sun, 24 Apr 2022 11:00:00 GMT</pubDate></item><item><title>「译」为什么性能很重要</title><link>https://zhanglun.github.io/blog/2022-04-20-%E8%AF%91%E4%B8%BA%E4%BB%80%E4%B9%88%E6%80%A7%E8%83%BD%E5%BE%88%E9%87%8D%E8%A6%81/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-04-20-%E8%AF%91%E4%B8%BA%E4%BB%80%E4%B9%88%E6%80%A7%E8%83%BD%E5%BE%88%E9%87%8D%E8%A6%81/</guid><description>&gt; 原作者:  [**Medhat Dawoud**](https://medhatdawoud.net/)  
&gt; 原文链接：[**https://medhatdawoud.net/blog/why-performance-matters**](https://medhatdawoud.net/blog/why-performance-matters)

现如今，性能优化是所有web开发者的基本技能了，不再是可有可无的，也不是可以吹嘘的花哨东西，在这篇文章中，我将解释为什么性能如此重要，为什么</description><pubDate>Wed, 20 Apr 2022 06:00:00 GMT</pubDate></item><item><title>「译」是什么使网络慢？浏览器的瓶颈</title><link>https://zhanglun.github.io/blog/2022-04-19-%E8%AF%91%E6%98%AF%E4%BB%80%E4%B9%88%E4%BD%BF%E7%BD%91%E7%BB%9C%E6%85%A2%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E7%93%B6%E9%A2%88/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-04-19-%E8%AF%91%E6%98%AF%E4%BB%80%E4%B9%88%E4%BD%BF%E7%BD%91%E7%BB%9C%E6%85%A2%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E7%93%B6%E9%A2%88/</guid><description>&gt; 原作者:  [**Medhat Dawoud**](https://medhatdawoud.net/)  
&gt; 原文链接：[**https://medhatdawoud.net/blog/what-makes-the-web-slow**](https://medhatdawoud.net/blog/what-makes-the-web-slow)

在上一篇文章中我解决了性能优化背后的动机。</description><pubDate>Tue, 19 Apr 2022 13:40:00 GMT</pubDate></item><item><title>Storybook 使用手册——编写组件文档</title><link>https://zhanglun.github.io/blog/2022-04-12-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BC%96%E5%86%99%E7%BB%84%E4%BB%B6%E6%96%87%E6%A1%A3/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-04-12-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BC%96%E5%86%99%E7%BB%84%E4%BB%B6%E6%96%87%E6%A1%A3/</guid><description>其实在使用手册的前两篇中，已经实现了组件文档的编写。</description><pubDate>Tue, 12 Apr 2022 11:00:00 GMT</pubDate></item><item><title>Storybook 使用手册——组件命名和结构层次</title><link>https://zhanglun.github.io/blog/2022-04-03-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BB%84%E4%BB%B6%E5%91%BD%E5%90%8D%E5%92%8C%E7%BB%93%E6%9E%84%E5%B1%82%E6%AC%A1/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-04-03-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E7%BB%84%E4%BB%B6%E5%91%BD%E5%90%8D%E5%92%8C%E7%BB%93%E6%9E%84%E5%B1%82%E6%AC%A1/</guid><description>Storybook 使用手册——组件命名和结构层次</description><pubDate>Sun, 03 Apr 2022 07:00:00 GMT</pubDate></item><item><title>Node.js 将要内置测试模块</title><link>https://zhanglun.github.io/blog/2022-03-30-nodejs-%E5%B0%86%E8%A6%81%E5%86%85%E7%BD%AE%E6%B5%8B%E8%AF%95%E6%A8%A1%E5%9D%97/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-03-30-nodejs-%E5%B0%86%E8%A6%81%E5%86%85%E7%BD%AE%E6%B5%8B%E8%AF%95%E6%A8%A1%E5%9D%97/</guid><description>前两天上网冲浪时，在Node的Github仓库中，有这么一个Pull Request [test: add initial test module #42325](https://github.com/nodejs/node/pull/42325) ，顺着这个PR，可以找到一个[提案：Proposal: Adding a built-in test runner](https://github.com/nodejs/node/issues/40954) 。</description><pubDate>Wed, 30 Mar 2022 12:10:00 GMT</pubDate></item><item><title>Storybook 使用手册——基本概念</title><link>https://zhanglun.github.io/blog/2022-03-16-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-03-16-storybook-%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</guid><description>## 什么是Storybook


Storybook 是一个用于UI开发的开源工具，通过隔离组件，使开发更快、更容易。</description><pubDate>Wed, 16 Mar 2022 05:08:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录13-鼓励团队参与架构设计</title><link>https://zhanglun.github.io/blog/2022-02-24-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9513-%E9%BC%93%E5%8A%B1%E5%9B%A2%E9%98%9F%E5%8F%82%E4%B8%8E%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-02-24-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9513-%E9%BC%93%E5%8A%B1%E5%9B%A2%E9%98%9F%E5%8F%82%E4%B8%8E%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/</guid><description>《架构师修炼之道》摘录13-鼓励团队参与架构设计</description><pubDate>Thu, 24 Feb 2022 12:40:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录12-架构评估</title><link>https://zhanglun.github.io/blog/2022-02-18-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9512-%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-02-18-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9512-%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0/</guid><description>&gt; 本系列内容来自《架构师修炼之道》。</description><pubDate>Fri, 18 Feb 2022 14:10:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录11-描述架构</title><link>https://zhanglun.github.io/blog/2022-02-08-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9511-%E6%8F%8F%E8%BF%B0%E6%9E%B6%E6%9E%84/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-02-08-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9511-%E6%8F%8F%E8%BF%B0%E6%9E%B6%E6%9E%84/</guid><description>&gt; 本系列内容来自《架构师修炼之道》。</description><pubDate>Tue, 08 Feb 2022 08:10:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录10-展示设计决策</title><link>https://zhanglun.github.io/blog/2022-01-30-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9510-%E5%B1%95%E7%A4%BA%E8%AE%BE%E8%AE%A1%E5%86%B3%E7%AD%96/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-30-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9510-%E5%B1%95%E7%A4%BA%E8%AE%BE%E8%AE%A1%E5%86%B3%E7%AD%96/</guid><description>《架构师修炼之道》摘录10-展示设计决策</description><pubDate>Sun, 30 Jan 2022 06:00:00 GMT</pubDate></item><item><title>使用SQLite做为Rust项目的数据库</title><link>https://zhanglun.github.io/blog/2022-01-21-%E4%BD%BF%E7%94%A8sqlite%E5%81%9A%E4%B8%BArust%E9%A1%B9%E7%9B%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-21-%E4%BD%BF%E7%94%A8sqlite%E5%81%9A%E4%B8%BArust%E9%A1%B9%E7%9B%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93/</guid><description>使用SQLite做为Rust项目的数据库</description><pubDate>Fri, 21 Jan 2022 14:28:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录09-召开架构设计研讨会</title><link>https://zhanglun.github.io/blog/2022-01-20-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9509-%E5%8F%AC%E5%BC%80%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E7%A0%94%E8%AE%A8%E4%BC%9A/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-20-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9509-%E5%8F%AC%E5%BC%80%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E7%A0%94%E8%AE%A8%E4%BC%9A/</guid><description>《架构师修炼之道》摘录09-召开架构设计研讨会</description><pubDate>Thu, 20 Jan 2022 13:00:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录08-建立模型，化繁为简</title><link>https://zhanglun.github.io/blog/2022-01-19-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9508-%E5%BB%BA%E7%AB%8B%E6%A8%A1%E5%9E%8B%E5%8C%96%E7%B9%81%E4%B8%BA%E7%AE%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-19-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9508-%E5%BB%BA%E7%AB%8B%E6%A8%A1%E5%9E%8B%E5%8C%96%E7%B9%81%E4%B8%BA%E7%AE%80/</guid><description>《架构师修炼之道》摘录08-建立模型，化繁为简</description><pubDate>Wed, 19 Jan 2022 14:52:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录07-架构模式</title><link>https://zhanglun.github.io/blog/2022-01-15-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9507-%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-15-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9507-%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F/</guid><description>《架构师修炼之道》摘录07-架构模式</description><pubDate>Sat, 15 Jan 2022 05:34:00 GMT</pubDate></item><item><title>使用CSS追踪用户信息-CSS Fingerpoint</title><link>https://zhanglun.github.io/blog/2022-01-11-%E4%BD%BF%E7%94%A8css%E8%BF%BD%E8%B8%AA%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF-css-fingerpoint/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-11-%E4%BD%BF%E7%94%A8css%E8%BF%BD%E8%B8%AA%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF-css-fingerpoint/</guid><description>使用CSS追踪用户信息-CSS Fingerpoint</description><pubDate>Tue, 11 Jan 2022 03:00:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录06-主动选择架构</title><link>https://zhanglun.github.io/blog/2022-01-07-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9506-%E4%B8%BB%E5%8A%A8%E9%80%89%E6%8B%A9%E6%9E%B6%E6%9E%84/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-07-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9506-%E4%B8%BB%E5%8A%A8%E9%80%89%E6%8B%A9%E6%9E%B6%E6%9E%84/</guid><description>《架构师修炼之道》摘录06-主动选择架构</description><pubDate>Fri, 07 Jan 2022 05:34:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录05-挖掘关键架构需求</title><link>https://zhanglun.github.io/blog/2022-01-02-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9505-%E6%8C%96%E6%8E%98%E5%85%B3%E9%94%AE%E6%9E%B6%E6%9E%84%E9%9C%80%E6%B1%82/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2022-01-02-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9505-%E6%8C%96%E6%8E%98%E5%85%B3%E9%94%AE%E6%9E%B6%E6%9E%84%E9%9C%80%E6%B1%82/</guid><description>《架构师修炼之道》摘录05-挖掘关键架构需求</description><pubDate>Sun, 02 Jan 2022 05:34:00 GMT</pubDate></item><item><title>将阿拉伯数字转换成大写中文</title><link>https://zhanglun.github.io/blog/2021-12-30-%E5%B0%86%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B0%E5%AD%97%E8%BD%AC%E6%8D%A2%E6%88%90%E5%A4%A7%E5%86%99%E4%B8%AD%E6%96%87/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-12-30-%E5%B0%86%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B0%E5%AD%97%E8%BD%AC%E6%8D%A2%E6%88%90%E5%A4%A7%E5%86%99%E4%B8%AD%E6%96%87/</guid><description>将阿拉伯数字转换成大写中文</description><pubDate>Thu, 30 Dec 2021 14:10:00 GMT</pubDate></item><item><title>《架构师修炼之道》摘录04-换位思考</title><link>https://zhanglun.github.io/blog/2021-12-24-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9504-%E6%8D%A2%E4%BD%8D%E6%80%9D%E8%80%83/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-12-24-%E6%9E%B6%E6%9E%84%E5%B8%88%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9504-%E6%8D%A2%E4%BD%8D%E6%80%9D%E8%80%83/</guid><description>《架构师修炼之道》摘录04-换位思考</description><pubDate>Fri, 24 Dec 2021 05:34:00 GMT</pubDate></item><item><title>JavaScript深拷贝的新方法-structureClone</title><link>https://zhanglun.github.io/blog/2021-12-18-javascript%E6%B7%B1%E6%8B%B7%E8%B4%9D%E7%9A%84%E6%96%B0%E6%96%B9%E6%B3%95-structureclone/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-12-18-javascript%E6%B7%B1%E6%8B%B7%E8%B4%9D%E7%9A%84%E6%96%B0%E6%96%B9%E6%B3%95-structureclone/</guid><description>JavaScript深拷贝的新方法-structureClone</description><pubDate>Sat, 18 Dec 2021 02:30:00 GMT</pubDate></item><item><title>【译】防御性CSS</title><link>https://zhanglun.github.io/blog/2021-12-11-%E8%AF%91%E9%98%B2%E5%BE%A1%E6%80%A7css/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-12-11-%E8%AF%91%E9%98%B2%E5%BE%A1%E6%80%A7css/</guid><description>【译】防御性CSS</description><pubDate>Sat, 11 Dec 2021 04:00:00 GMT</pubDate></item><item><title>《架构修炼师之道》摘录03-制定设计策略</title><link>https://zhanglun.github.io/blog/2021-10-14-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9503-%E5%88%B6%E5%AE%9A%E8%AE%BE%E8%AE%A1%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-10-14-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9503-%E5%88%B6%E5%AE%9A%E8%AE%BE%E8%AE%A1%E7%AD%96%E7%95%A5/</guid><description>《架构修炼师之道》摘录03-制定设计策略</description><pubDate>Thu, 14 Oct 2021 10:30:00 GMT</pubDate></item><item><title>《架构修炼师之道》摘录02-设计思维基础</title><link>https://zhanglun.github.io/blog/2021-09-04-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9502-%E8%AE%BE%E8%AE%A1%E6%80%9D%E7%BB%B4%E5%9F%BA%E7%A1%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-09-04-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9502-%E8%AE%BE%E8%AE%A1%E6%80%9D%E7%BB%B4%E5%9F%BA%E7%A1%80/</guid><description>《架构修炼师之道》摘录02-设计思维基础</description><pubDate>Sat, 04 Sep 2021 11:30:00 GMT</pubDate></item><item><title>博客又搬家了</title><link>https://zhanglun.github.io/blog/2021-08-19-%E5%8D%9A%E5%AE%A2%E5%8F%88%E6%90%AC%E5%AE%B6%E4%BA%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-08-19-%E5%8D%9A%E5%AE%A2%E5%8F%88%E6%90%AC%E5%AE%B6%E4%BA%86/</guid><description>不知不觉，从14年到现在，自己的博客已经维护了8年了。</description><pubDate>Thu, 19 Aug 2021 11:03:00 GMT</pubDate></item><item><title>《架构修炼师之道》摘录01-成为软件架构师</title><link>https://zhanglun.github.io/blog/2021-07-09-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9501-%E6%88%90%E4%B8%BA%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E5%B8%88/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-07-09-%E6%9E%B6%E6%9E%84%E4%BF%AE%E7%82%BC%E5%B8%88%E4%B9%8B%E9%81%93%E6%91%98%E5%BD%9501-%E6%88%90%E4%B8%BA%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E5%B8%88/</guid><description>《架构修炼师之道》摘录01-成为软件架构师</description><pubDate>Fri, 09 Jul 2021 08:00:00 GMT</pubDate></item><item><title>ParseInt()的迷幻行为</title><link>https://zhanglun.github.io/blog/2021-04-23-parseint%E7%9A%84%E8%BF%B7%E5%B9%BB%E8%A1%8C%E4%B8%BA/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-04-23-parseint%E7%9A%84%E8%BF%B7%E5%B9%BB%E8%A1%8C%E4%B8%BA/</guid><description>最近看到一片文章 [Solving a Mystery Behavior of parseInt() in JavaScript]([https://dmitripavlutin.com/parseint-mystery-javascript/](https://dmitripavlutin.com/parseint-mystery-javascript/))，讲的是JavaScript中的`parseInt()`的一个奇怪现象。</description><pubDate>Fri, 23 Apr 2021 06:20:51 GMT</pubDate></item><item><title>劝架CommonJS和ESModule</title><link>https://zhanglun.github.io/blog/2021-02-10-%E5%8A%9D%E6%9E%B6commonjs%E5%92%8Cesmodule/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2021-02-10-%E5%8A%9D%E6%9E%B6commonjs%E5%92%8Cesmodule/</guid><description>今天在开发过程中遇到一个报错


```bash
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /root/projects/build-tool/node_modules/ora/index.js
require() of ES modules is not supported.</description><pubDate>Wed, 10 Feb 2021 09:29:00 GMT</pubDate></item><item><title>关于JavaScript的随机数</title><link>https://zhanglun.github.io/blog/2020-12-14-%E9%9A%8F%E6%9C%BA%E7%9A%84%E8%81%94%E6%83%B3/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-12-14-%E9%9A%8F%E6%9C%BA%E7%9A%84%E8%81%94%E6%83%B3/</guid><description>最近正在实现一个动画特效，有一个非常简单的需求

&gt; 请求获取到一个数组A之后，将数组的内容以动画弹窗的方式展示给用户，要求：
&gt; 1.</description><pubDate>Mon, 14 Dec 2020 07:29:41 GMT</pubDate></item><item><title>如何在项目中接入single-spa</title><link>https://zhanglun.github.io/blog/2020-11-28-%E5%A6%82%E4%BD%95%E5%9C%A8%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%8E%A5%E5%85%A5single-spa/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-11-28-%E5%A6%82%E4%BD%95%E5%9C%A8%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%8E%A5%E5%85%A5single-spa/</guid><description>之前的文章[single-spa源码解析-registerApplication和start](../single-spa源码解析-registerapplication和start)中，对single-spa提供的两个关键方法的源码进行了简单分析。</description><pubDate>Sat, 28 Nov 2020 12:27:18 GMT</pubDate></item><item><title>single-spa源码解析-registerApplication和start</title><link>https://zhanglun.github.io/blog/2020-11-21-single-spa%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90-registerapplication%E5%92%8Cstart/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-11-21-single-spa%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90-registerapplication%E5%92%8Cstart/</guid><description>首先将问题简化，假定主应用和子应用都已经准备好的情况下，针对应用的注册和启动这两个关键操作进行分析。</description><pubDate>Sat, 21 Nov 2020 13:28:13 GMT</pubDate></item><item><title>使用 single-spa 实现微前端</title><link>https://zhanglun.github.io/blog/2020-11-05-%E4%BD%BF%E7%94%A8single-spa%E5%AE%9E%E7%8E%B0%E5%BE%AE%E5%89%8D%E7%AB%AF/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-11-05-%E4%BD%BF%E7%94%A8single-spa%E5%AE%9E%E7%8E%B0%E5%BE%AE%E5%89%8D%E7%AB%AF/</guid><description>## 背景

随着组织架构调整，目前来车服租车团队已经有一段时间了。</description><pubDate>Thu, 05 Nov 2020 03:16:48 GMT</pubDate></item><item><title>在滴滴的这几年：基于Git的平台文档解决方案</title><link>https://zhanglun.github.io/blog/2020-10-14-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E5%9F%BA%E4%BA%8Egit%E7%9A%84%E5%B9%B3%E5%8F%B0%E6%96%87%E6%A1%A3%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-10-14-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E5%9F%BA%E4%BA%8Egit%E7%9A%84%E5%B9%B3%E5%8F%B0%E6%96%87%E6%A1%A3%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</guid><description>## 背景

所在团队承接了架构部所有的底层服务的用户系统的建设，包括面向业务方的自助服务系统和面向运维同学的后台系统。</description><pubDate>Wed, 14 Oct 2020 02:28:34 GMT</pubDate></item><item><title>Zen Reborn 计划</title><link>https://zhanglun.github.io/blog/2020-09-20-zen-reborn-%E8%AE%A1%E5%88%92/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-09-20-zen-reborn-%E8%AE%A1%E5%88%92/</guid><description>## 背景

作为业务组件库，zen在多个租车B端系统中被广泛使用。</description><pubDate>Sun, 20 Sep 2020 10:20:51 GMT</pubDate></item><item><title>在滴滴的这几年：基于 Node.js 的私有云 Web 管控系统</title><link>https://zhanglun.github.io/blog/2020-06-14-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E5%9F%BA%E4%BA%8E-nodejs-%E7%9A%84%E7%A7%81%E6%9C%89%E4%BA%91-web-%E7%AE%A1%E6%8E%A7%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-06-14-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E5%9F%BA%E4%BA%8E-nodejs-%E7%9A%84%E7%A7%81%E6%9C%89%E4%BA%91-web-%E7%AE%A1%E6%8E%A7%E7%B3%BB%E7%BB%9F/</guid><description>在大概18年上半年，有幸被抽调到一个FT，参与云平台私有云项目的开发中。</description><pubDate>Sun, 14 Jun 2020 12:20:01 GMT</pubDate></item><item><title>在滴滴的这几年：组件库的设计和开发</title><link>https://zhanglun.github.io/blog/2020-05-05-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E7%BB%84%E4%BB%B6%E5%BA%93%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-05-05-%E5%9C%A8%E6%BB%B4%E6%BB%B4%E7%9A%84%E8%BF%99%E5%87%A0%E5%B9%B4%E7%BB%84%E4%BB%B6%E5%BA%93%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91/</guid><description>入职的时候团队加上老板就三个人，需要对接5+个公共服务团队，为公共服务开发控制台，每个团队两个控制台系统。</description><pubDate>Tue, 05 May 2020 03:14:37 GMT</pubDate></item><item><title>使用 CSS variables 实现主题色切换</title><link>https://zhanglun.github.io/blog/2020-03-21-%E4%BD%BF%E7%94%A8-css-variable-%E5%AE%9E%E7%8E%B0%E4%B8%BB%E9%A2%98%E8%89%B2%E5%88%87%E6%8D%A2/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-03-21-%E4%BD%BF%E7%94%A8-css-variable-%E5%AE%9E%E7%8E%B0%E4%B8%BB%E9%A2%98%E8%89%B2%E5%88%87%E6%8D%A2/</guid><description>最近在写自己的小项目时，想试试 CSS variables，于是便有了此文。</description><pubDate>Sat, 21 Mar 2020 02:33:56 GMT</pubDate></item><item><title>为Promise增加abort方法</title><link>https://zhanglun.github.io/blog/2020-01-16-%E4%B8%BApromise%E5%A2%9E%E5%8A%A0abort%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2020-01-16-%E4%B8%BApromise%E5%A2%9E%E5%8A%A0abort%E6%96%B9%E6%B3%95/</guid><description>对于Promise而言只有三个状态： `Pending`， `Resolve` 和 `Reject`。</description><pubDate>Thu, 16 Jan 2020 11:50:24 GMT</pubDate></item><item><title>浅谈TreeShaking在前端中的应用 - Rollup VS Webpack</title><link>https://zhanglun.github.io/blog/2019-11-14-%E6%B5%85%E8%B0%88treeshaking%E5%9C%A8%E5%89%8D%E7%AB%AF%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-11-14-%E6%B5%85%E8%B0%88treeshaking%E5%9C%A8%E5%89%8D%E7%AB%AF%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</guid><description>## 前言

`Tree Shaking`是一种死码清除(dead code elimination)技术，通常用于在ECMAScript方言比如Dart，JavaScript或者TypeScript打包成一个文件时，移除未使用的代码以此来优化代码。</description><pubDate>Thu, 14 Nov 2019 13:50:12 GMT</pubDate></item><item><title>JavaScript异步编程方案回顾</title><link>https://zhanglun.github.io/blog/2019-10-09-javascript%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B%E6%96%B9%E6%A1%88%E5%9B%9E%E9%A1%BE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-10-09-javascript%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B%E6%96%B9%E6%A1%88%E5%9B%9E%E9%A1%BE/</guid><description>如标题所述，本文主要是重新梳理JavaScript的异步编程方案，部分内容来自网络

## 同步

在开始之前，先简单说说JavaScript中的同步。</description><pubDate>Wed, 09 Oct 2019 02:16:54 GMT</pubDate></item><item><title>再谈EventLoop</title><link>https://zhanglun.github.io/blog/2019-08-20-%E5%86%8D%E8%B0%88eventloop/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-08-20-%E5%86%8D%E8%B0%88eventloop/</guid><description>首先明确一点，事件循环这个概念并非JavaScript语言中的。</description><pubDate>Tue, 20 Aug 2019 08:56:04 GMT</pubDate></item><item><title>IntersectionObserver、MutationObserver和ResizeObserver</title><link>https://zhanglun.github.io/blog/2019-07-13-mutationobserverintersectionobserver%E5%92%8Cresizeobserver/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-07-13-mutationobserverintersectionobserver%E5%92%8Cresizeobserver/</guid><description>在之前的[从getboundingclientrect到intersection-observer](../从getboundingclientrect到intersection-observer/index.md)中提到了`Intersection Observer API`，今天趁热打铁，将现有的其他几个Observer API 一并整理，方便查阅

## IntersectionObserver

字面翻译：交叉的观察者。</description><pubDate>Sat, 13 Jul 2019 14:31:06 GMT</pubDate></item><item><title>从getBoundingClientRect到Intersection Observer</title><link>https://zhanglun.github.io/blog/2019-05-23-%E4%BB%8Egetboundingclientrect%E5%88%B0intersection-observer/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-05-23-%E4%BB%8Egetboundingclientrect%E5%88%B0intersection-observer/</guid><description>平时在写页面交互的时候经常使用兼容性不错的 getBoundindClientReact 方法，以快速获取元素大小和元素位置。</description><pubDate>Thu, 23 May 2019 12:54:17 GMT</pubDate></item><item><title>浅谈 HTTP 缓存</title><link>https://zhanglun.github.io/blog/2019-03-09-%E6%B5%85%E8%B0%88-http-%E7%BC%93%E5%AD%98/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-03-09-%E6%B5%85%E8%B0%88-http-%E7%BC%93%E5%AD%98/</guid><description>说到缓存大家可能觉得很简单。</description><pubDate>Sat, 09 Mar 2019 15:41:38 GMT</pubDate></item><item><title>巧用 webpack loader 实现项目的定制化</title><link>https://zhanglun.github.io/blog/2019-01-26-%E5%B7%A7%E7%94%A8-webpack-loader-%E5%AE%9E%E7%8E%B0%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%AE%9A%E5%88%B6%E5%8C%96/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2019-01-26-%E5%B7%A7%E7%94%A8-webpack-loader-%E5%AE%9E%E7%8E%B0%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%AE%9A%E5%88%B6%E5%8C%96/</guid><description>## 背景

有这样的需求：项目交付的版本要求支持针对客户定制产品的LOGO、登录界面的背景。</description><pubDate>Sat, 26 Jan 2019 12:39:22 GMT</pubDate></item><item><title>在 CentOS 上部署 pyspider 爬虫项目</title><link>https://zhanglun.github.io/blog/2018-10-08-%E5%9C%A8centos%E4%B8%8A%E9%83%A8%E7%BD%B2pyspider%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2018-10-08-%E5%9C%A8centos%E4%B8%8A%E9%83%A8%E7%BD%B2pyspider%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE/</guid><description>## 前言

之前在腾讯云的云主机中，部署了一个pyspider爬虫项目，专门爬链家上的二手房信息。</description><pubDate>Mon, 08 Oct 2018 23:12:03 GMT</pubDate></item><item><title>TypeScript学习笔记-在Webpack中配置TypeScript</title><link>https://zhanglun.github.io/blog/2018-07-15-typescript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-%E5%9C%A8webpack%E4%B8%AD%E9%85%8D%E7%BD%AEtypescript/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2018-07-15-typescript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-%E5%9C%A8webpack%E4%B8%AD%E9%85%8D%E7%BD%AEtypescript/</guid><description>上篇说到TypeScript简单的基本知识，包括什么是TypeScript、TypeScript的安装以及TypeScript中的基本类型。</description><pubDate>Sun, 15 Jul 2018 11:26:49 GMT</pubDate></item><item><title>TypeScript学习笔记-入门:安装与基础知识</title><link>https://zhanglun.github.io/blog/2018-07-08-typescript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-%E5%AE%89%E8%A3%85%E4%B8%8E%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2018-07-08-typescript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-%E5%AE%89%E8%A3%85%E4%B8%8E%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/</guid><description>TypeScript 是由微软推出的开源编程语言，官网的定义如下：

&gt; TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.</description><pubDate>Sun, 08 Jul 2018 21:08:03 GMT</pubDate></item><item><title>个人服务器常用基础配置</title><link>https://zhanglun.github.io/blog/2018-02-04-%E4%B8%AA%E4%BA%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B8%B8%E7%94%A8%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2018-02-04-%E4%B8%AA%E4%BA%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B8%B8%E7%94%A8%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE/</guid><description>买了一个服务器，系统是CentOS7.2 .做了一番基础设置，在此记录一下。</description><pubDate>Fri, 09 Mar 2018 21:05:12 GMT</pubDate></item><item><title>最近几次面试的小总结</title><link>https://zhanglun.github.io/blog/2017-02-16-%E6%9C%80%E8%BF%91%E5%87%A0%E6%AC%A1%E9%9D%A2%E8%AF%95%E7%9A%84%E5%B0%8F%E5%B0%8F%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2017-02-16-%E6%9C%80%E8%BF%91%E5%87%A0%E6%AC%A1%E9%9D%A2%E8%AF%95%E7%9A%84%E5%B0%8F%E5%B0%8F%E6%80%BB%E7%BB%93/</guid><description>前几天离职了，离职前几天开始物色合适的下家。</description><pubDate>Thu, 16 Feb 2017 20:23:13 GMT</pubDate></item><item><title>整理Object的一些方法</title><link>https://zhanglun.github.io/blog/2017-01-19-%E6%95%B4%E7%90%86object%E7%9A%84%E4%B8%80%E4%BA%9B%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2017-01-19-%E6%95%B4%E7%90%86object%E7%9A%84%E4%B8%80%E4%BA%9B%E6%96%B9%E6%B3%95/</guid><description>ES5 和 ES6 中 Object 添加了很多新的方法，现在很多开源代码中有用到了这些，今天来整理一番。</description><pubDate>Thu, 19 Jan 2017 19:32:31 GMT</pubDate></item><item><title>JavaScrip模块系统详解</title><link>https://zhanglun.github.io/blog/2017-01-11-javascrip-%E6%A8%A1%E5%9D%97%E7%B3%BB%E7%BB%9F%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2017-01-11-javascrip-%E6%A8%A1%E5%9D%97%E7%B3%BB%E7%BB%9F%E8%AF%A6%E8%A7%A3/</guid><description>在这几天的工作中，我需要调用同事编写的兼容jQuery和React的通用组件。</description><pubDate>Wed, 11 Jan 2017 19:45:09 GMT</pubDate></item><item><title>深入理解 ES6 的解构赋值</title><link>https://zhanglun.github.io/blog/2017-01-05-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3-es6-%E7%9A%84%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2017-01-05-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3-es6-%E7%9A%84%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/</guid><description>解构赋值（destructuring assignment）语法是一个Javascript表达式，这种语法能够更方便的提取出 Object 或者 Array 中的数据。</description><pubDate>Thu, 05 Jan 2017 20:23:35 GMT</pubDate></item><item><title>使用Firebase构建云端应用-数据库的管理</title><link>https://zhanglun.github.io/blog/2016-12-24-%E4%BD%BF%E7%94%A8firebase%E6%9E%84%E5%BB%BA%E4%BA%91%E7%AB%AF%E5%BA%94%E7%94%A8-%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-12-24-%E4%BD%BF%E7%94%A8firebase%E6%9E%84%E5%BB%BA%E4%BA%91%E7%AB%AF%E5%BA%94%E7%94%A8-%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E7%AE%A1%E7%90%86/</guid><description>上回讲到Firebase 的[创建项目和用户管理]()。</description><pubDate>Sat, 24 Dec 2016 17:32:43 GMT</pubDate></item><item><title>使用Firebase构建云端应用:创建项目和用户管理</title><link>https://zhanglun.github.io/blog/2016-12-14-%E4%BD%BF%E7%94%A8firebase%E6%9E%84%E5%BB%BA%E4%BA%91%E7%AB%AF%E5%BA%94%E7%94%A8-%E5%88%9B%E5%BB%BA%E9%A1%B9%E7%9B%AE%E5%92%8C%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-12-14-%E4%BD%BF%E7%94%A8firebase%E6%9E%84%E5%BB%BA%E4%BA%91%E7%AB%AF%E5%BA%94%E7%94%A8-%E5%88%9B%E5%BB%BA%E9%A1%B9%E7%9B%AE%E5%92%8C%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/</guid><description>在构建自己的在线云工具应用时，我使用 Firebase 为自己的“无后端项目”提供服务，把在开发期间接触到的一些内容整理在一起，制成系列笔记。</description><pubDate>Wed, 14 Dec 2016 21:06:12 GMT</pubDate></item><item><title>【译】CSS Grid, Flexbox 和 Box Alignment:网页布局的新系统</title><link>https://zhanglun.github.io/blog/2016-11-11-%E8%AF%91-css-grid-flexbox-%E5%92%8C-box-alignment-%E7%BD%91%E9%A1%B5%E5%B8%83%E5%B1%80%E7%9A%84%E6%96%B0%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-11-11-%E8%AF%91-css-grid-flexbox-%E5%92%8C-box-alignment-%E7%BD%91%E9%A1%B5%E5%B8%83%E5%B1%80%E7%9A%84%E6%96%B0%E7%B3%BB%E7%BB%9F/</guid><description>&gt;原文标题：CSS Grid, Flexbox And Box Alignment: Our New System For Web Layout  
&gt; 原文链接：[https://www.smashingmagazine.com/2016/11/css-grids-flexbox-and-box-alignment-our-new-system-for-web-layout/](https://www.smashingmagazine.com/2016/11/css-grids-flexbox</description><pubDate>Fri, 11 Nov 2016 22:50:35 GMT</pubDate></item><item><title>使用 React-Router 创建单页应用</title><link>https://zhanglun.github.io/blog/2016-10-30-%E4%BD%BF%E7%94%A8-react-router-%E5%88%9B%E5%BB%BA%E5%8D%95%E9%A1%B5%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-10-30-%E4%BD%BF%E7%94%A8-react-router-%E5%88%9B%E5%BB%BA%E5%8D%95%E9%A1%B5%E5%BA%94%E7%94%A8/</guid><description>最近业余时间在学习 React，配合 Redux 和 React-Router 正在不紧不慢地开发一个小工具[moviemaster](https://github.com/zhanglun/moviemaster)，用于管理硬盘中的电影剧集。</description><pubDate>Sun, 30 Oct 2016 10:55:34 GMT</pubDate></item><item><title>实现一个稍微复杂的simplelist</title><link>https://zhanglun.github.io/blog/2016-09-25-%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E7%A8%8D%E5%BE%AE%E5%A4%8D%E6%9D%82%E7%9A%84simplelist/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-09-25-%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E7%A8%8D%E5%BE%AE%E5%A4%8D%E6%9D%82%E7%9A%84simplelist/</guid><description>使用过一些清单类的应用程序，像 WunderList, Google Keep等，用来记录一些计划和安排，也试着将自己的计划安排同笔记一起整理在 Evernote 中，但是无论哪种方式用起来总觉得少了点什么，如果两者的一些功能能够结合起来，就很完美了。</description><pubDate>Sun, 25 Sep 2016 18:40:45 GMT</pubDate></item><item><title>输入框插入表情的实现</title><link>https://zhanglun.github.io/blog/2016-08-13-%E8%BE%93%E5%85%A5%E6%A1%86%E6%8F%92%E5%85%A5%E8%A1%A8%E6%83%85%E7%9A%84%E5%AE%9E%E7%8E%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-08-13-%E8%BE%93%E5%85%A5%E6%A1%86%E6%8F%92%E5%85%A5%E8%A1%A8%E6%83%85%E7%9A%84%E5%AE%9E%E7%8E%B0/</guid><description>在普通的 textarea 中，只能显示普通的文本。</description><pubDate>Sat, 13 Aug 2016 14:50:06 GMT</pubDate></item><item><title>Electron 开发的 gulp 配置</title><link>https://zhanglun.github.io/blog/2016-08-05-electron-%E5%BC%80%E5%8F%91%E7%9A%84-gulp-%E9%85%8D%E7%BD%AE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-08-05-electron-%E5%BC%80%E5%8F%91%E7%9A%84-gulp-%E9%85%8D%E7%BD%AE/</guid><description>源自 Atom-shell 的 Electron 目前是一个很火的项目。</description><pubDate>Fri, 05 Aug 2016 16:30:38 GMT</pubDate></item><item><title>真的是好久没写博客了</title><link>https://zhanglun.github.io/blog/2016-08-04-%E7%9C%9F%E7%9A%84%E6%98%AF%E5%A5%BD%E4%B9%85%E6%B2%A1%E5%86%99%E5%8D%9A%E5%AE%A2%E4%BA%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-08-04-%E7%9C%9F%E7%9A%84%E6%98%AF%E5%A5%BD%E4%B9%85%E6%B2%A1%E5%86%99%E5%8D%9A%E5%AE%A2%E4%BA%86/</guid><description>记录可查，自从毕业之后就没怎么写过博客。</description><pubDate>Thu, 04 Aug 2016 14:53:02 GMT</pubDate></item><item><title>Chrome内存分析工具概述</title><link>https://zhanglun.github.io/blog/2016-04-10-chrome%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E6%A6%82%E8%BF%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2016-04-10-chrome%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E6%A6%82%E8%BF%B0/</guid><description>&gt;原文标题：4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them

&gt;原文链接：[https://auth0.com/blog/2016/01/26/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/](https://auth0.com/blog/2016/01/26/four-types-of-leaks-in-your-ja</description><pubDate>Sun, 10 Apr 2016 18:00:18 GMT</pubDate></item><item><title>CSS 布局的未来：网格布局</title><link>https://zhanglun.github.io/blog/2015-11-22-css%E5%B8%83%E5%B1%80%E7%9A%84%E6%9C%AA%E6%9D%A5%E7%BD%91%E6%A0%BC%E5%B8%83%E5%B1%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2015-11-22-css%E5%B8%83%E5%B1%80%E7%9A%84%E6%9C%AA%E6%9D%A5%E7%BD%91%E6%A0%BC%E5%B8%83%E5%B1%80/</guid><description>原文链接： [The future of layout with CSS: Grid Layouts](https://medium.com/@patrickbrosset/css-grid-layout-6c9cba6e8a5a#.cz5qhhi87)



# The future of layout with CSS: Grid Layouts

在这片文章中，我们一起来探索 CSS 网格布局的美妙世界。</description><pubDate>Sun, 22 Nov 2015 14:39:00 GMT</pubDate></item><item><title>JavaScript 中不使用 new 的构造函数（以及由此引发的联想）</title><link>https://zhanglun.github.io/blog/2015-01-28-javascript%E4%B8%AD%E4%B8%8D%E4%BD%BF%E7%94%A8new%E7%9A%84%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2015-01-28-javascript%E4%B8%AD%E4%B8%8D%E4%BD%BF%E7%94%A8new%E7%9A%84%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0/</guid><description>在JavaScript 中，调用构造函数的方法很简单。</description><pubDate>Wed, 28 Jan 2015 21:09:00 GMT</pubDate></item><item><title>规范之路-line-height的工作原理</title><link>https://zhanglun.github.io/blog/2014-11-20-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-%E8%A1%8C%E9%AB%98%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-11-20-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-%E8%A1%8C%E9%AB%98%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/</guid><description>&gt; 有人问我，“line-height到底是怎么一回事？”，“元素高度到底是怎么计算出来的？”。</description><pubDate>Thu, 20 Nov 2014 11:45:00 GMT</pubDate></item><item><title>定时将图片保存在SAE的Storage中</title><link>https://zhanglun.github.io/blog/2014-11-10-%E5%AE%9A%E6%97%B6%E5%B0%86%E5%9B%BE%E7%89%87%E4%BF%9D%E5%AD%98%E5%9C%A8sae%E7%9A%84storage%E4%B8%AD/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-11-10-%E5%AE%9A%E6%97%B6%E5%B0%86%E5%9B%BE%E7%89%87%E4%BF%9D%E5%AD%98%E5%9C%A8sae%E7%9A%84storage%E4%B8%AD/</guid><description>&gt;前几天一直在看Node相关的书，做了一些笔记，挂在自己的博客上。</description><pubDate>Mon, 10 Nov 2014 19:27:00 GMT</pubDate></item><item><title>Node学习笔记-Wrangling the File System</title><link>https://zhanglun.github.io/blog/2014-11-07-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-wrangling-the-file-system/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-11-07-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-wrangling-the-file-system/</guid><description>在开发过程中，有时候会需要访问一些本地的文件，对文件进行一些操作。</description><pubDate>Fri, 07 Nov 2014 17:29:00 GMT</pubDate></item><item><title>Node学习笔记-Data Sources and Flow Control</title><link>https://zhanglun.github.io/blog/2014-11-06-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-data-sources-and-flow-control/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-11-06-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-data-sources-and-flow-control/</guid><description>&gt;额在之前的笔记中，提到了使用middleware，设置路由，发送数据，处理请求，渲染模板等。</description><pubDate>Thu, 06 Nov 2014 21:17:00 GMT</pubDate></item><item><title>Node学习笔记-Server-Side Templates</title><link>https://zhanglun.github.io/blog/2014-11-03-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-server-side-templates/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-11-03-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-server-side-templates/</guid><description>&gt; 因为各种版本的更新，文中的例子可能失效无法运行。</description><pubDate>Mon, 03 Nov 2014 13:39:00 GMT</pubDate></item><item><title>Node学习笔记-Serving the content</title><link>https://zhanglun.github.io/blog/2014-10-28-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-serving-the-content/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-28-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-serving-the-content/</guid><description>## Node中的MiddleWare

&gt;In the context of a web server, middleware is a layer between the guts
of the server and the code you’re writing to run on it that provides a set
of abstractions anyone writing code for the platform will be likely to
need.</description><pubDate>Tue, 28 Oct 2014 19:40:00 GMT</pubDate></item><item><title>规范之路-重新认识了Float</title><link>https://zhanglun.github.io/blog/2014-10-15-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86%E4%BA%86float/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-15-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86%E4%BA%86float/</guid><description>&gt; 总是喜欢在阴雨绵绵的时候收拾自己的小窝，无论是在家还是在学校。</description><pubDate>Wed, 15 Oct 2014 14:50:00 GMT</pubDate></item><item><title>我的响应式web开发实践笔记-Media Queries 初探</title><link>https://zhanglun.github.io/blog/2014-10-10-%E6%88%91%E7%9A%84%E5%93%8D%E5%BA%94%E5%BC%8Fweb%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0-media-queries-%E5%88%9D%E6%8E%A2/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-10-%E6%88%91%E7%9A%84%E5%93%8D%E5%BA%94%E5%BC%8Fweb%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0-media-queries-%E5%88%9D%E6%8E%A2/</guid><description>&gt; 很久以前就接触到了响应式Web开发这回事，自己也玩弄过一阵。</description><pubDate>Fri, 10 Oct 2014 12:30:00 GMT</pubDate></item><item><title>使用python抓取知乎日报的API数据</title><link>https://zhanglun.github.io/blog/2014-10-08-%E4%BD%BF%E7%94%A8python%E6%8A%93%E5%8F%96%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5%E7%9A%84api%E6%95%B0%E6%8D%AE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-08-%E4%BD%BF%E7%94%A8python%E6%8A%93%E5%8F%96%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5%E7%9A%84api%E6%95%B0%E6%8D%AE/</guid><description>使用 `urllib2` 抓取数据时，最简单的方法是：
    
    
    import urllib2, json
    def getStartImage():
        stream = urllib2.urlopen(&apos;http://news-at.zhihu.com/api/3/start-image/1080*1776&apos;)
        start_image = json.load(stream)
        start_image = json</description><pubDate>Wed, 08 Oct 2014 20:12:00 GMT</pubDate></item><item><title>CSS的盒模型-过去和将来</title><link>https://zhanglun.github.io/blog/2014-10-05-css%E7%9A%84%E7%9B%92%E6%A8%A1%E5%9E%8B%E5%9B%9E%E9%A1%BE/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-05-css%E7%9A%84%E7%9B%92%E6%A8%A1%E5%9E%8B%E5%9B%9E%E9%A1%BE/</guid><description>&gt;CSS 诞生已经二十年了，我接触 CSS 才两年。</description><pubDate>Sun, 05 Oct 2014 14:30:00 GMT</pubDate></item><item><title>规范之路-Normal Flow</title><link>https://zhanglun.github.io/blog/2014-10-02-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-normal-flow/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-10-02-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-normal-flow/</guid><description>##Normal Flow

在正常流中的盒子们都是一个格式化上下文（formatting context）中的成员，可以表现成一个block或者inline，但是不能既是block又是inline。</description><pubDate>Thu, 02 Oct 2014 20:39:00 GMT</pubDate></item><item><title>CSS元素居中对齐大法</title><link>https://zhanglun.github.io/blog/2014-09-30-css%E5%85%83%E7%B4%A0%E5%B1%85%E4%B8%AD%E5%AF%B9%E9%BD%90%E5%A4%A7%E6%B3%95/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-09-30-css%E5%85%83%E7%B4%A0%E5%B1%85%E4%B8%AD%E5%AF%B9%E9%BD%90%E5%A4%A7%E6%B3%95/</guid><description>&gt;原文标题：Centering in CSS: A Complete Guide  
 原文链接：[http://css-tricks.com/centering-css-complete-guide/](http://css-tricks.com/centering-css-complete-guide/)  


&gt; 在CSS-tricks上看到一篇关于CSS居中的文章，综合和大部分的CSS居中的解决方案，暂且称作“CSS元素居中大法”好了。</description><pubDate>Tue, 30 Sep 2014 20:34:00 GMT</pubDate></item><item><title>CSS 中的权重问题</title><link>https://zhanglun.github.io/blog/2014-09-26-css%E4%B8%AD%E7%9A%84%E6%9D%83%E9%87%8D%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-09-26-css%E4%B8%AD%E7%9A%84%E6%9D%83%E9%87%8D%E9%97%AE%E9%A2%98/</guid><description>&gt; 自己对以后的方向很明确，但是却一直做不到。</description><pubDate>Fri, 26 Sep 2014 12:23:00 GMT</pubDate></item><item><title>Git 使用笔记(三)-分支的使用</title><link>https://zhanglun.github.io/blog/2014-09-14-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%B8%89-%E5%88%86%E6%94%AF%E7%9A%84%E4%BD%BF%E7%94%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-09-14-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%B8%89-%E5%88%86%E6%94%AF%E7%9A%84%E4%BD%BF%E7%94%A8/</guid><description>## 简单介绍

之前说过，每次修改之后，Git 并不是保存这些修改之后的差异变化，实际上就像一个照相机一样，将修改后的文件拍下作为文件快照，记录在一个微型的文件系统中。</description><pubDate>Sun, 14 Sep 2014 16:06:00 GMT</pubDate></item><item><title>规范之路-CSS中的定位简介</title><link>https://zhanglun.github.io/blog/2014-09-12-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-css%E4%B8%AD%E7%9A%84%E5%AE%9A%E4%BD%8D%E7%AE%80%E4%BB%8B/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-09-12-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-css%E4%B8%AD%E7%9A%84%E5%AE%9A%E4%BD%8D%E7%AE%80%E4%BB%8B/</guid><description>在 CSS2.1 中，一个盒子会根据下面三种定位方案进行排列：

* 标准流（Normal flow）：在 CSS2.1 中包括 块级盒子形成的块级格式化上下文（block formatting context），行级格式化上下文（inline formatting context）和采用了绝对定位（relative positioning）的盒子。</description><pubDate>Fri, 12 Sep 2014 20:30:00 GMT</pubDate></item><item><title>如何将页面的footer保持在页面的底部一</title><link>https://zhanglun.github.io/blog/2014-08-25-%E5%B0%86footer%E5%A7%8B%E7%BB%88%E4%BF%9D%E6%8C%81%E5%9C%A8%E9%A1%B5%E9%9D%A2%E5%BA%95%E9%83%A8%E7%9A%84%E6%96%B9%E6%B3%95%E4%B8%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-08-25-%E5%B0%86footer%E5%A7%8B%E7%BB%88%E4%BF%9D%E6%8C%81%E5%9C%A8%E9%A1%B5%E9%9D%A2%E5%BA%95%E9%83%A8%E7%9A%84%E6%96%B9%E6%B3%95%E4%B8%80/</guid><description>我敢说这一定是很常见的问题，因为到处都是页面不够长而上吊的footer，而。</description><pubDate>Mon, 25 Aug 2014 22:25:00 GMT</pubDate></item><item><title>规范之路-visual formatting model 概述</title><link>https://zhanglun.github.io/blog/2014-08-21-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-visual-formatting-model%E6%A6%82%E8%BF%B0/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-08-21-%E8%A7%84%E8%8C%83%E4%B9%8B%E8%B7%AF-visual-formatting-model%E6%A6%82%E8%BF%B0/</guid><description>## [视觉格式化模型](http://www.w3.org/TR/CSS21/visuren.html)

CSS 视觉格式化模型（visual formatting model）是一种用来处理文档，将其呈现在可视化媒体中的算法。</description><pubDate>Thu, 21 Aug 2014 20:39:00 GMT</pubDate></item><item><title>踩坑日记-IE中的 hasLayout 属性</title><link>https://zhanglun.github.io/blog/2014-08-12-%E8%B8%A9%E5%9D%91%E6%97%A5%E8%AE%B0-ie%E4%B8%AD%E7%9A%84haslayout%E5%B1%9E%E6%80%A7/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-08-12-%E8%B8%A9%E5%9D%91%E6%97%A5%E8%AE%B0-ie%E4%B8%AD%E7%9A%84haslayout%E5%B1%9E%E6%80%A7/</guid><description>原文链接：[http://www.sitepoint.com/web-foundations/internet-explorer-haslayout-property/](http://www.sitepoint.com/web-foundations/internet-explorer-haslayout-property/)

在理想的世界中中，我们真的不需要了解任何关于 `hasLayout` 的事情，就像在理想社会中不用担心自己没钱一样。</description><pubDate>Tue, 12 Aug 2014 13:26:00 GMT</pubDate></item><item><title>Grunt的简单配置和使用</title><link>https://zhanglun.github.io/blog/2014-08-08-grunt%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE%E5%92%8C%E4%BD%BF%E7%94%A8/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-08-08-grunt%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE%E5%92%8C%E4%BD%BF%E7%94%A8/</guid><description>Grunt 和 Grunt 的插件都是通过 Node.js 的包管理器 npm 来安装和管理的。</description><pubDate>Fri, 08 Aug 2014 21:09:00 GMT</pubDate></item><item><title>git 使用笔记(二)-撤销操作</title><link>https://zhanglun.github.io/blog/2014-07-22-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%BA%8C-%E6%92%A4%E9%94%80%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-07-22-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%BA%8C-%E6%92%A4%E9%94%80%E6%93%8D%E4%BD%9C/</guid><description>在最近使用 git 的过程中，有时候遇到这样的一个问题：习惯性的 &quot;add -A&quot;，这会将所有的修改都添加到暂存区，可是有两个文件的修改暂时不想添加的呀，这该怎么办？git 提供了一些撤销操作的方法。</description><pubDate>Tue, 22 Jul 2014 21:09:00 GMT</pubDate></item><item><title>踩坑日记-IE下 A 标签的虚线框和必须要会用的 CSS 选择器</title><link>https://zhanglun.github.io/blog/2014-07-18-%E8%B8%A9%E5%9D%91%E6%97%A5%E8%AE%B0-ie%E4%B8%8Ba%E6%A0%87%E7%AD%BE%E7%9A%84%E8%99%9A%E7%BA%BF%E6%A1%86/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-07-18-%E8%B8%A9%E5%9D%91%E6%97%A5%E8%AE%B0-ie%E4%B8%8Ba%E6%A0%87%E7%AD%BE%E7%9A%84%E8%99%9A%E7%BA%BF%E6%A1%86/</guid><description>## IE 下 a标签的虚线框

在 IE 中，点击 a 标签时， a 标签会被加上一个虚线框，很丑！！！！！ 



不同版本的IE解决方案不同：IE8 下只需为 a 标签添加一条 CSS 属性就可以 `outline:none`，顺便一提 ，这条属性可以取消浏览器中输入框获得焦点是丑逼逼的外框



但是在高贵的 IE7 中，即使是添加了 `outline: none`，虚线框依旧存在，在 HTML 上加 `hidefocus=&quot;true&quot;`　如 

    

</description><pubDate>Fri, 18 Jul 2014 20:39:00 GMT</pubDate></item><item><title>Git 使用笔记(一)-入门级的操作</title><link>https://zhanglun.github.io/blog/2014-07-16-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%B8%80/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-07-16-git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E4%B8%80/</guid><description>### 一般处理
初始化:

```bash    
$ git init 
```

这样就会在当前目录创建版本库.</description><pubDate>Wed, 16 Jul 2014 21:09:00 GMT</pubDate></item><item><title>利用pip安装Django</title><link>https://zhanglun.github.io/blog/2014-07-12-%E5%88%A9%E7%94%A8pip%E5%AE%89%E8%A3%85django/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-07-12-%E5%88%A9%E7%94%A8pip%E5%AE%89%E8%A3%85django/</guid><description>###pip的安装

先下载一个 python 文件 : [get-pip.py](https://bootstrap.pypa.io/get-pip.py)。</description><pubDate>Sat, 12 Jul 2014 20:30:00 GMT</pubDate></item><item><title>(译)阻止事件传播的危害</title><link>https://zhanglun.github.io/blog/2014-05-28-%E8%AF%91%E5%8F%96%E6%B6%88%E4%BA%8B%E4%BB%B6%E5%86%92%E6%B3%A1%E7%9A%84%E5%8D%B1%E5%AE%B3/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-28-%E8%AF%91%E5%8F%96%E6%B6%88%E4%BA%8B%E4%BB%B6%E5%86%92%E6%B3%A1%E7%9A%84%E5%8D%B1%E5%AE%B3/</guid><description>&gt;原文标题：The Dangers of Stopping Event Propagation  
 原文链接：[http://css-tricks.com/dangers-stopping-event-propagation/](http://css-tricks.com/dangers-stopping-event-propagation/)

 这是  [Philip Walton](http://philipwalton.com/) 发布在 [css-trick](http://c</description><pubDate>Wed, 28 May 2014 21:23:00 GMT</pubDate></item><item><title>Node学习笔记—Node.js核心API之Util</title><link>https://zhanglun.github.io/blog/2014-05-15-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Butil/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-15-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Butil/</guid><description>最近正在学习Node，在图书馆借了基本关于Node的书，同时在网上查阅资料，颇有收获，但是整体感觉对Node的理解还是停留在一个很模棱两可的状态。</description><pubDate>Thu, 15 May 2014 21:16:00 GMT</pubDate></item><item><title>Node学习笔记-Node.js中的核心API之HTTP</title><link>https://zhanglun.github.io/blog/2014-05-13-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Bhttp/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-13-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Bhttp/</guid><description>最近正在学习Node，在图书馆借了基本关于Node的书，同时在网上查阅资料，颇有收获，但是整体感觉对Node的理解还是停留在一个很模棱两可的状态。</description><pubDate>Tue, 13 May 2014 17:36:00 GMT</pubDate></item><item><title>Node学习笔记-Nodejs中的核心API之Events</title><link>https://zhanglun.github.io/blog/2014-05-12-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Bevents/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-12-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E6%A0%B8%E5%BF%83api%E4%B9%8Bevents/</guid><description>最近正在学习Node，在图书馆借了基本关于Node的书，同时在网上查阅资料，颇有收获，但是整体感觉对Node的理解还是停留在一个很模棱两可的状态。</description><pubDate>Mon, 12 May 2014 19:40:00 GMT</pubDate></item><item><title>学习sass时了解到的一些好玩特性</title><link>https://zhanglun.github.io/blog/2014-05-08-%E5%AD%A6%E4%B9%A0sass%E6%97%B6%E4%BA%86%E8%A7%A3%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E5%A5%BD%E7%8E%A9%E7%89%B9%E6%80%A7/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-08-%E5%AD%A6%E4%B9%A0sass%E6%97%B6%E4%BA%86%E8%A7%A3%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E5%A5%BD%E7%8E%A9%E7%89%B9%E6%80%A7/</guid><description>很久很久以前，我根据网上的博文总结写了一篇博客[《sass基本语法》](http://zhanglun.github.io/2014/03/10/sass%E8%AF%AD%E6%B3%95/)。</description><pubDate>Thu, 08 May 2014 21:34:00 GMT</pubDate></item><item><title>【译】Node.js的 EventEmitter 教程</title><link>https://zhanglun.github.io/blog/2014-05-05-%E8%AF%91nodejs-%E7%9A%84-eventemitter-%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-05-05-%E8%AF%91nodejs-%E7%9A%84-eventemitter-%E6%95%99%E7%A8%8B/</guid><description>&gt;原文标题：Node.js EventEmitter Tutorial  
 原文链接：[http://www.hacksparrow.com/node-js-eventemitter-tutorial.html](http://www.hacksparrow.com/node-js-eventemitter-tutorial.html)



听说过 Node.js 中的 EventEmitter 吗？也许你知道大部分内置的 Node.js 库 都使用它，也许你总是对 EventEmitter</description><pubDate>Mon, 05 May 2014 21:23:00 GMT</pubDate></item><item><title>【译】Node.js的全局变量</title><link>https://zhanglun.github.io/blog/2014-04-28-%E8%AF%91nodejs%E7%9A%84%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-28-%E8%AF%91nodejs%E7%9A%84%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/</guid><description>&gt;原文标题：Global Variables in Node.js  
 原文链接：[http://www.hacksparrow.com/global-variables-in-node-js.html
](http://www.hacksparrow.com/global-variables-in-node-js.html)



你可能正在使用一些 Node.js 的模块，或者一个框架比如 Express.js ，并且突然感觉你需要创建一些全局变量。</description><pubDate>Mon, 28 Apr 2014 19:36:00 GMT</pubDate></item><item><title>【译】Node.js的模块-exports和module.exports</title><link>https://zhanglun.github.io/blog/2014-04-26-%E8%AF%91nodejs%E7%9A%84%E6%A8%A1%E5%9D%97-exports-%E5%92%8C-moduleexports/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-26-%E8%AF%91nodejs%E7%9A%84%E6%A8%A1%E5%9D%97-exports-%E5%92%8C-moduleexports/</guid><description>&gt;原文标题：Node.js Module – exports vs module.exports   
 原文链接：[http://www.hacksparrow.com/node-js-exports-vs-module-exports.html
](http://www.hacksparrow.com/node-js-exports-vs-module-exports.html)



##exports 和 module.exports 有什么区别？  

你一定很熟悉 N</description><pubDate>Sat, 26 Apr 2014 19:45:00 GMT</pubDate></item><item><title>Node学习笔记-Node.js中的模块</title><link>https://zhanglun.github.io/blog/2014-04-25-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-25-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/</guid><description>之前简单的了解了 Node.js 。</description><pubDate>Fri, 25 Apr 2014 19:40:00 GMT</pubDate></item><item><title>Node.js入门-Node.js 介绍</title><link>https://zhanglun.github.io/blog/2014-04-19-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E4%BB%8B%E7%BB%8D/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-19-node%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-nodejs%E4%BB%8B%E7%BB%8D/</guid><description>Node.js学习入门


##Node.js 是什么
Node.js 不是一种独立的语言，与 PHP，Python 等”既是语言优势平台“不同，它也不是一个 JavaScrip 框架，不同于 CakePHP，Django，更不是一个 JavaScript 库，不能和 jQuery 相提并论。</description><pubDate>Sat, 19 Apr 2014 21:55:00 GMT</pubDate></item><item><title>高性能网站优化-确保异步加载脚本时保持执行顺序</title><link>https://zhanglun.github.io/blog/2014-04-10-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E6%95%B4%E5%90%88%E5%BC%82%E6%AD%A5%E8%84%9A%E6%9C%AC/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-10-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E6%95%B4%E5%90%88%E5%BC%82%E6%AD%A5%E8%84%9A%E6%9C%AC/</guid><description>&gt; 《高性能网站建设进阶指南》



脚本如果按照常规方式加载，不仅会阻塞页面中其他内容的下载，还会阻塞脚本后面所有元素的渲染。</description><pubDate>Thu, 10 Apr 2014 19:40:00 GMT</pubDate></item><item><title>Hello hexo</title><link>https://zhanglun.github.io/blog/2014-04-10-hello-hexo/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-10-hello-hexo/</guid><description>敬以此文纪念成功折腾出自己的github page


之前用 jeykll 折腾自己的 github 博客，看中的是 jeykll 提供的华丽主题。</description><pubDate>Thu, 10 Apr 2014 14:32:44 GMT</pubDate></item><item><title>JavaScript中的事件处理程序</title><link>https://zhanglun.github.io/blog/2014-04-06-javascript%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-04-06-javascript%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F/</guid><description>JavaScript和HTML之间的交互是通过事件实现的。</description><pubDate>Sun, 06 Apr 2014 19:40:00 GMT</pubDate></item><item><title>高性能网站优化-无阻塞加载脚本</title><link>https://zhanglun.github.io/blog/2014-03-30-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E6%97%A0%E9%98%BB%E5%A1%9E%E5%8A%A0%E8%BD%BD%E8%84%9A%E6%9C%AC/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-03-30-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E6%97%A0%E9%98%BB%E5%A1%9E%E5%8A%A0%E8%BD%BD%E8%84%9A%E6%9C%AC/</guid><description>&gt;《高性能网站建设进阶指南》



按理来说，JavaScript在浏览器中的性能问题是开发人员面对的最重要的可用性问题。</description><pubDate>Sun, 30 Mar 2014 19:40:00 GMT</pubDate></item><item><title>高性能网站优化-创建快速响应的Web</title><link>https://zhanglun.github.io/blog/2014-03-15-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E5%88%9B%E5%BB%BA%E5%BF%AB%E9%80%9F%E5%93%8D%E5%BA%94%E7%9A%84web/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-03-15-%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E4%BC%98%E5%8C%96-%E5%88%9B%E5%BB%BA%E5%BF%AB%E9%80%9F%E5%93%8D%E5%BA%94%E7%9A%84web/</guid><description>&gt;《高性能网站建设进阶指南》


##优化原则
优化的目的是希望降低程序的整体开销。</description><pubDate>Sat, 15 Mar 2014 21:55:00 GMT</pubDate></item><item><title>Sass基本语法</title><link>https://zhanglun.github.io/blog/2014-03-10-sass%E8%AF%AD%E6%B3%95/</link><guid isPermaLink="true">https://zhanglun.github.io/blog/2014-03-10-sass%E8%AF%AD%E6%B3%95/</guid><description>sass是一种基于ruby语言开发的CSS预处理器。</description><pubDate>Mon, 10 Mar 2014 20:20:34 GMT</pubDate></item></channel></rss>