snabbdom源码解析

最新在梳理一些前端框架的核心实现,关于diff算法这一块,发现目前大部分文章都是将源码翻译一遍,而关于诸如“为啥要定义多个游标”、”首尾对比”等细节,并没有给出比较好的解释。因此打算整理snabbdom源码,同时回答前面提到的一些问题。

阅读全文

支持Redux在WebStorm中像Vuex一样智能跳转

之前的负责项目是用vue写的,vuex是专门为vue定制的,上手十分容易,由于是官方统一维护,webstorm在2020版本也已经支持直接从type字符串跳转到对应module定义。

最近有新项目打算统一使用React技术栈,研究了一下目前React状态管理主流方案,还是redux/mobx之类的,由于redux默认的combineReducers功能比较弱,且webstorm貌似不支持字符串type直接跳转到reducer定义,比较影响开发效率,因此决定研究一下相关的解决方案。

阅读全文

反思我写过的烂代码

这篇博客的草稿是17年10月15号创建的了,每次写了些东西打算发布的时候,总觉得还差了什么。现在写了四五年代码了,经手了很多项目,有简单的活动页面,也有很复杂的业务逻辑,是时候反思一下我写过的烂代码了。

阅读全文

Android快速入门

距离上一次写Android代码已经过去了三四年了,基本上都忘得差不多了,最近在尝试使用kotlin开发一个App,发现查询很多资料都不太全,浪费了大量的时间,因此决定整理一篇在Android入门中经常遇见的需求和问题,希望能对刚接触Android的朋友有一点帮助。

阅读全文

使用cocos实现一个合成大西瓜

最近微博上曝出了很多瓜,"合成大西瓜"这个游戏也很火热,玩了一阵还挺有意思的。研究了一下原理,发现目前流传的版本都是魔改编译后的版本,代码经过压缩不具备可读性,因此决定自己照着实现一个。

阅读全文

实现一个Vue右键菜单指令

最近在实现可视化页面编辑器的时候,遇见了需要实现自定义右键菜单的场景,因此本文主要整理了如何在Vue项目中通过自定义指令封装一个声明式的右键菜单的小工具。

阅读全文

前端埋点数据收集及上报方案

最近与后端同学一起完成了项目中数据埋点系统的重构,期间遇见了不少问题,收获颇多,因此记录下来,主要包括:埋点系统的字段设计、在Vue项目中实现声明式数据收集、数据上报等。

阅读全文

在前端业务场景下的设计模式

前端的代码也是需要设计的,话虽如此,但即便看了很多设计模式的书籍,也无法真正应用起来。后来发现还是需要真实业务场景入手,思考在面对复杂多变的需求时如何编写更简洁、更容易维护的代码。本文从这个角度入手,整理了自己在前端业务开发中遇见的一些设计模式。

阅读全文