管理TypeScript项目中的类型声明

发表于 | 分类于 编程语言/TypeScript

说来惭愧,最近才正儿八经地在生产项目中使用TypeScript,遇见一个比较棘手的问题就是:如何管理项目中定义的各种类型声明。

本文将从TS项目和声明方式开始,探究如何解决该问题。

在React中处理埋点公共参数

发表于 | 分类于 前端/前端业务

前端埋点数据收集及上报方案这篇文章中研究了前端项目的数据埋点方案,描述了埋点字段设计、数据收集和数据上报的一些思路,并给出了在Vue中通过自定义指令和全局Mixin实现声明式数据收集的方法。同时在项目中使用一段时间后,总结了一些可以优化的问题。

最近在一个React项目中,打算实现类似的工作,同时解决之前遗留的问题。

infernoJS源码分析

发表于 | 分类于 源码分析/diff算法

inferno.js是性能最快的前端UI框架之一,Vue3的diff算法貌似也从Vue2的snabbdom实现修改为类似于infernod的实现。

本文主要通过阅读inferno的核心源码,了解其关于通过最长上升子序列优化diff DOM性能的原理。

多项目逻辑复用与monorepo

发表于 | 分类于 前端/前端工程

去年接手了一个新的项目,主要分为了移动端和PC端,在项目初期,两端承担不同的业务职责,在后期迭代过程中,陆续出现了一些相同和相似的业务逻辑,随之而来的是很多相似的代码。

回想之前,也经历过类似的场景,比如从一个to B的项目中再拆分一个to C的项目,两个项目具有业务或平台的差异,但也有很多相同的地方。

本文主要研究通过monorepo来处理这种多项目中逻辑复用问题。

koa源码分析

发表于 | 分类于 源码分析

本文将分析koa源码中相关实现。

axios源码分析

发表于 | 分类于 源码分析

axios是非常流行的前端网络请求库,本文将阅读其源码,了解内部实现原理,以及axios中核心的拦截器、cancelToken`等实现

snabbdom源码解析

发表于 | 分类于 源码分析/diff算法

最新在梳理一些前端框架的核心实现,关于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

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

《面向对象是怎样工作的》读书笔记

发表于 | 分类于 读书笔记

最近阅读了《面向对象是怎样工作的》这本书,感觉还不错,记录一下。

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

发表于 | 分类于 游戏

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

ReactHooks原理及简单实现

发表于 | 分类于 技术原理

本文从Hooks的基本原理出发,逐步实现简易的useStateuseEffect,代码虽短,五脏俱全。

实现一个Vue右键菜单指令

发表于 | 分类于 前端/前端业务

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

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

发表于 | 分类于 前端/前端业务

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

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

发表于 | 分类于 编程技术

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

在vue项目中使用单元测试

发表于 | 分类于 前端/Vue

目前笔者负责的项目迭代十分频繁,前端需要处理业务逻辑日益增多,除了考虑如何保证开发速度之外,还必须考虑系统的稳定性,因此决定在项目引入单元测试。

本文主要整理在Vue项目中如何使用单元测试,包括如何编写测试用例、如何编写易于测试的代码等问题。

前端常见动画实现原理

发表于 | 分类于 技术原理

开发H5活动页面是前端开发中一种比较常见的需求,这种页面业务逻辑较轻,重交互和展示,是一类非常有趣的需求。本文将整理H5开发中常见Web动画的基本原理和简单实现。

使用Vue3封装一些有用的组合API

发表于 | 分类于 前端/Vue

本文将介绍如何使用Vue3来封装一些比较有用的组合API,主要包括背景、实现思路以及一些思考。

关于Vue3的一些使用心得

发表于 | 分类于 前端/Vue

最近在学习Spring与Vue3,于是使用二者实现了一个简易的放置游戏,本文主要整理了使用Vue3的一些使用心得,主要包括与Vue2差异和新的概念。