摘要: 上一篇文章我写了tapable的基本用法,我们知道他是一个增强版版的发布订阅模式,本文想来学习下他的源码。tapable的源码我读了一下,发现他的抽象程度比较高,直接扎进去反而会让人云里雾里的,所以本文会从最简单的SyncHook和发布订阅模式入手,再一步一步抽象,慢慢变成他源码的样子。 本文可运行 阅读全文
posted @ 2021-04-01 16:22 _蒋鹏飞 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 前不久写了一篇webpack基本原理和AST用法的文章,本来想接着写webpack plugin的原理的,但是发现webpack plugin高度依赖tapable这个库,不清楚tapable而直接去看webpack plugin始终有点雾里看花的意思。所以就先去看了下tapable的文档和源码,发 阅读全文
posted @ 2021-03-15 17:00 _蒋鹏飞 阅读(3237) 评论(0) 推荐(5) 编辑
摘要: 我从事技术写作的时间其实不长,开始写作的时间就是我掘金账号注册的时间: 到今天(2021年2月23日)也就是一年零一个月,这一年的收获是超过我的预期的: 产出博文四十多篇,总共数十万字 掘金优秀作者,掘金年度人气作者No.27 思否2020年度"Top Writer",万粉专栏作者 开源中国优秀源创 阅读全文
posted @ 2021-02-23 11:22 _蒋鹏飞 阅读(2023) 评论(11) 推荐(12) 编辑
摘要: 本文开始我会围绕webpack和babel写一系列的工程化文章,这两个工具我虽然天天用,但是对他们的原理理解的其实不是很深入,写这些文章的过程其实也是我深入学习的过程。由于webpack和babel的体系太大,知识点众多,不可能一篇文章囊括所有知识点,目前我的计划是从简单入手,先实现一个最简单的可以 阅读全文
posted @ 2021-02-19 16:26 _蒋鹏飞 阅读(1340) 评论(0) 推荐(3) 编辑
摘要: 本文会分享一个React性能优化的故事,这也是我在工作中真实遇到的故事,最终我们是通过魔改第三方库源码将它性能提高了几十倍。这个第三方库也是很有名的,在GitHub上有4.5k star,这就是:react-big-calendar。 这个工作不是我一个人做的,而是我们团队几个月前共同完成的,我觉得 阅读全文
posted @ 2021-01-28 14:41 _蒋鹏飞 阅读(4983) 评论(11) 推荐(30) 编辑
摘要: 本文会分享一个我在实际工作中遇到的案例,从最开始的需求分析到项目搭建,以及最后落地的架构的整个过程。最终实现的效果是使用mono-repo实现了跨项目的组件共享。在本文中你可以看到: 从接到需求到深入分析并构建架构的整个思考过程。 mono-repo的简单介绍。 mono-repo适用的场景分析。 阅读全文
posted @ 2021-01-04 15:36 _蒋鹏飞 阅读(2232) 评论(1) 推荐(1) 编辑
摘要: 上一篇文章我写了koa-static的源码解析,其中用到了HTTP的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control之类的。于是我就跟朋友讨论了一下HTTP的缓存策略: 朋友说:“HTTP里面控制缓存的头(header)太多了,啥Cache-Control,ETag,La 阅读全文
posted @ 2020-12-21 14:46 _蒋鹏飞 阅读(3007) 评论(16) 推荐(40) 编辑
摘要: 这篇文章继续前面的Koa源码系列,这个系列已经有两篇文章了: 第一篇讲解了Koa的核心架构和源码:手写Koa.js源码 第二篇讲解了@koa/router的架构和源码:手写@koa/router源码 本文会接着讲一个常用的中间件 koa-static,这个中间件是用来搭建静态服务器的。 其实在我之前 阅读全文
posted @ 2020-12-07 11:50 _蒋鹏飞 阅读(971) 评论(0) 推荐(0) 编辑
摘要: 这段时间写了一堆源码解析,这篇文章想换换口味,跟大家分享一个我工作中遇到的案例。毕竟作为一个打工人,上班除了摸鱼看源码外,砖还是要搬的。本文会分享一个使用恰当的数据结构来进行性能优化,从而大幅提高响应速度的故事,提高有几百倍那么多。 事情是这样的,我现在供职一家外企,我们有一个给外国人用的线下卖货的 阅读全文
posted @ 2020-11-24 14:51 _蒋鹏飞 阅读(26648) 评论(78) 推荐(126) 编辑
摘要: 上一篇文章我们讲了Koa的基本架构,可以看到Koa的基本架构只有中间件内核,并没有其他功能,路由功能也没有。要实现路由功能我们必须引入第三方中间件,本文要讲的路由中间件是@koa/router,这个中间件是挂在Koa官方名下的,他跟另一个中间件koa-router名字很像。其实@koa/router 阅读全文
posted @ 2020-11-16 14:15 _蒋鹏飞 阅读(896) 评论(0) 推荐(0) 编辑