如何进行 TypeScript 覆盖率分析

Catalogue
  1. 1. type-coverage
    1. 1.1. type-coverage 的基本使用
    2. 1.2. type-coverage 工作原理
  2. 2. 真实可用的 ts 覆盖率统计算法

自从用了 TypeScript 之后,爱不释手,已经回不去 JavaScript 时代了。最近在公司各个项目中普及 TypeScript,包括对老代码进行 TypeScript 化改造,比较关心项目 TypeScript 覆盖率的变化情况。

type-coverage

调研后找到两个比较好的包,看起来 type-coverage 的使用情况更好一些。

Package Name Weekly Downloads Description
type-coverage 21,838 *.ts, *.js, *.tsx
typescript-coverage-report 19,997

type-coverage 的基本使用

type-coverage 工作原理

真实可用的 ts 覆盖率统计算法

真实项目中,我们的代码不光是 jsts,而是包括了 vue 或者 tsx 等。以我们的项目而言,如何支持 Vue 文件分析是个问题。

另外,直接以 type-coverage 按代码行级别的覆盖率统计,可能会让老项目在 TS 化改造过程中非常没有信心——每天改一点,何时是个头?

其实,可以定义不同的 TS 覆盖率级别(类似于自动驾驶级别),我自己想出来的是这样的:

  • L1 级 TS 覆盖率 = .ts 文件与声明了 lang="ts".vue 文件的个数占所有文件的比例。
  • L2 级 TS 覆盖率 = .ts 文件与声明了 lang="ts" 且组件以 class 声明的 .vue 文件的个数占所有文件的比例。
  • L3 级 TS 覆盖率 = 基于 type-coverage 按行统计得到的 ts 覆盖率。
Share

对买房的思考以及房屋、房地产行业学习笔记

关于房地产行业

“房地产行业是我国的支柱产业。”

Read More

Share

2021年中读书、理财小结

Catalogue
  1. 1. 读书
  2. 2. 理财

简单总结总结上半年吧。

读书

今年上半年读完了 7 本书。

  1. 《世风日上》
  2. 《巴菲特致股东的信(原书第4版)》
  3. 《男孩、鼹鼠、狐狸和马》,这是一本插画书,十几分钟就翻完了。
  4. 《Node学习指南 第2版》,咱是技术人,技术类的书不能少。
  5. 《价值投资实战手册》,非常非常好的一本书。极力推荐给所有对理财感兴趣的朋友。
  6. 《共同基金常识》,基金之父写的书,数据非常权威,可以坚定一个人定投的信念。
  7. 《巴芒演义》,太精彩了。唐朝的书都很棒。

理财

股票收益率 30% 左右,支付宝整体收益率 6% 左右。
资金量,股票:支付宝 = 10:3,所以整体的加权平均收益率 = 24%,还可以。希望下半年基金和股票都能有点上涨。

而从国内经济发展速度来说,下半年还是比较乐观的。

Share

海南之旅

时间:2021-05-09 ~ 2021-05-20
途径地点:北京 -> 石家庄 -> 海口 -> 三亚 -> 海口 -> 南昌 -> 北京

海南,这特么可是热带啊。我这辈子就从来没有去过热带。虽然前年去过珠海,但是我查了一下,那边是亚热带季风海洋性气候,你看,是亚热带而不是热带~~而海南,直接就是“热带季风气候”,啧啧。椰子汁味道都不一样了。

说到椰子汁,海口市路边全都是椰子树,而且结满了椰子,真是神奇。我们在假日海滩边上的小公园里看到当地大爷拿着长杆子摘椰子,很有意思。

Read More

Share

TypeScript,类型系统,及领域模型理念在前端开发中的运用

Catalogue
  1. 1. 前端面临的挑战
    1. 1.1. 阶段1:良好的注释与文档
    2. 1.2. 阶段2:面向对象
    3. 1.3. 阶段3:TypeScript

去年 10 月至今,自己参与了大量内部运营活动管理系统的开发工作,大约到今年2月份的时候,在前任小组长的引导下,自己在新模块的开发中尝试使用 TypeScript 开发。

不试不知道,一试才觉得,真香~~

当年在猫眼用 React 的时候,自己开发过大量的使用了表单的系统,那时候就借助于面向对象的技术封装了很多类,来抽象一些数据结构,当时感觉这样做使得代码很清晰。最近基于 TS 开发的项目,复杂度比当时猫眼的要高更多,TS 提供的静态类型系统可以说提供了很大的帮助。

这篇文章就简单对类型系统、领域模型在前端开发过程中起到的作用,进行总结与思考。

前端面临的挑战

首先要讲讲前端面临的哪些挑战,导致我们必须去思考借助领域模型来降低前端开发中的复杂度。

在现代前端十几年的发展历程中,前端开发人员的定位通常以还原交互视觉、提供视图组件解决方案为主,而后端则通常以业务模型、领域模型等作为自己的聚焦核心。前后端之间以 HTTP 或者 Apache Thrift 这些 RPC 技术进行数据通信,相互之间通常不存在很强的静态代码层面的数据结构约束。

但是渐渐的,业务模型越来越复杂,后端的 Model 越发庞大。前端开发者会发现,如果对于后端接口返回的 Model 没有业务上的理解,那么对整个系统进行迭代、重构甚至简单维护,都寸步难行。

软件系统在经历数量级的巨大变化之后,原有的解决方案通常不堪重负。前端必须有个单独的层来对接后端复杂度的巨大变化。

每个开发人员在进入一个新团队时,一般都会给自己设定较为充足的时间来“了解、熟悉业务”,熟悉了业务之后,开发速度也会明显加快。这个业务,本质上是知识,是概念与逻辑的集合,理论上,也是可以用数据结构来描述的。

我所理解的前端需要的领域模型,就是要找到合适的方法来描述解决这几个基本问题:

  • 前端开发人员看到的每个字段、属性,是什么
  • 业务系统中每个模型、对象,有什么方法/逻辑
  • 模型与模型直接的关系,是什么

阶段1:良好的注释与文档

阶段2:面向对象

阶段3:TypeScript

TypeScript 给前端开发人员提供了编码阶段降低代码复杂度、提升代码可读性的极佳解决方案,主要就是因为提供了完备的类型系统。

此外,TS 的强制类型检查,也能帮助开发者在编码阶段提前规避很多问题,例如类型错误、参数个数错误等。

Share

Goodbye, 2020

又到了总结一年的方方面面的时候了。2020 年真是魔幻的一年。下面就是今年的总结啦。

PS:这份总结从 12.19 开始写,陆陆续续补充,一直写到了 12.31。以后想到什么了可能也会补充进来。

Read More

Share

回京工作五年啦

Catalogue

总而言之,在北京工作整整 5 年啦。

Share

《高效能人士的七个习惯》读书笔记

Catalogue

今年的 Q4,在组内制定了读书计划。我自己的计划是《高效能人士的七个习惯》(The 7 Habits of Highly Effective People)。11 月份下旬读完了,感觉还不错。

TODO

Share

2020 年中理财小结

Catalogue
  1. 1. 基金收益率
  2. 2. 股市
  3. 3. 接下来的半年

魔幻的 2020 年过去了一半,真是让人感慨唏嘘,跌宕起伏的半年啊。先是疫情全国蔓延,然后股市暴跌,接下来逐渐稳住了,股市也有起色了,结果全球疫情开始爆发,股市又多次暴跌,美股甚至出现了罕见的连续熔断。

大跌的日子,自己的心理承受能力似乎已经慢慢磨练出来了。这算是一种幸运吧,大盘是从 3200 点左右大跌,而不是 08 年或者 15 年的那种高位暴跌,所以损失并不是很惨重。这种程度,对我这样的初级理财者来说,刚刚好。

上半年期间,阅读了格雷厄姆的《聪明的投资者》,非常受用。了解了证券分析的一些具体的知识,以及在股市中投资时应当具备的心理素质和长期策略。

基金收益率

上半年的基金总投入金额跟去年差不多,但是中间在收益率还可以的时候,多次卖出了,所以到现在的持仓数额不是很多。半年的收益率是 6.9%。

基金里面目前银行股还是亏损比较严重的板块。看经济基本政策的话,估计要很长期才能回本了。

股市

去年下半年开完户还挺兴奋,一直买买买。结果年后就悲剧了一段时间。有几个点没有做好:

  1. 没有控制好仓位。按照格雷厄姆的建议,应该是始终将仓位控制在 25% ~ 75% 之间。这点没有我做好,导致在 3.20 号左右大跌的时候,自己没有钱可以抄底了。
  2. 没有控制好成本价。很多时候,自己买股票过于着急,没有在意当时股票的价格。导致成本价格过高。

接下来的半年

  • 下半年等有机会了,再次抄底。
  • 有时间的时候,研究一些公司,长期买入,做好持有 10 年以上的打算。
Share

《聪明的投资者》(The Intelligent Investor)

今年 3 月份,读完了《聪明的投资者》一书,这算是我在金融领域阅读的第二本专业性较强的书籍(上一本是《货币金融学》)。

这是一本证券投资实务领域的世界级和世纪级的经典著作,自从 1949 年首次出版以来,在股市上一直被奉为“股票投资圣经”。

本博文记录自己阅读过程中认为比较重要或者有意思的知识点。

Read More

Share