记一次代码重构

上个月中途接手了个项目,主要功能是C端用户购房申请资料的表单提交,单纯就功能而言确实没什么可说的,但问题在于期极复杂繁琐多变的资格逻辑校验。由于政府的购房政策多变,几乎每隔一段时间都要调那么几次,而且动不动还要做新老数据兼容。我接手的源代码里面几乎全部都是`if else`判断,几个页面里差不多都有二三十个判断,代码的可读性维护性很差。可以想象一份很难维护的代码,又反复要求被修改,这对开发这而言是极其痛苦的事情。因此我重构的目就是尽量减少`if else`逻辑判断。

阅读全文

写了个React项目的脚手架 —— zha-cli

最近花了点时间写了个React+TypeScript的前端脚手架(zha-cli),主要是对我项目组的技术栈进行一个整合,我不是很清楚公司其他项目组是怎么搞的,但是我刚进我们组的时候看到开发每次建前端代码仓库都是把之前的项目直接粘贴复制过来,而且有些封装的组件也没有做统一管理,一些无用的垃圾代码可能也忘了删,也没有用到Typescript,反正看上去有点乱,于是我觉得还是有必要搞个脚手架出来,方便管理。

阅读全文

Poisson Distribution

泊松分布描述的是一个离散随机事件在单位时间内发生的次数, 其对应的场景是我们统计已知单位事件内发生某事件的平均次数 λ, 那么我们在一个单位事件内发生 k次的概率是多大呢? 比如说医院产房里统计历史数据可知, 平均小时出生3个宝宝,那么在接下来的一个小时内, 出生 0 个宝宝, 1 个宝宝, …, 3 个宝宝, …10 个宝宝, n 个宝宝的概率分别是多少呢?

阅读全文

回味一首雪莱的诗

阅读全文

概率中加法和乘法原理以及排列和组合的定义

如果某件事可以由$k$类不同途径之一去完成,在第一类途径中有$m1$种完成方法,在第二类途径中有$m2$,第$k$类途径中有$mk$种完成的方法,那么完成这件事总共有 $m1+m2+…+mk$种方法。如果某件事需经过$k$个步骤才能完成,做第一步有$m1$种方法,做第二件事有$m2$种方法,...,做第 $k$ 步有 $mk$ 种方法,那么完成这件事总共有 $m1×m2×…×mk$ 种方法。

阅读全文

几何平均数

The Geometric Mean is a special type of average where we multiply the numbers together and then take a square root (for two numbers), cube root (for three numbers) etc.

阅读全文

线性代数的本质

线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。

阅读全文

写了个前端组件库 - zhaKU

基于vue 2.x开发的UI组件库,轻量,简洁。

阅读全文

在这做一些日常搜索的笔记


阅读全文

深刻理解Python中的元类(metaclass)(转)

在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:

阅读全文