跳到主要内容

· 阅读需 4 分钟

最后更新于 2022-08-13 02:46:00

在发布 npm 包时添加对 TypeScript 类型定义文件的支持会让用户的使用体验增色不少,TypeScript 官方提供了 tsc --emitDeclarationOnly 命令用来生成类型定义文件(.d.ts)。但是,该命令会同时执行类型检查,遇到错误时会报错中断命令行进程,这就使其无法直接集成在 CI 环节在发布 npm 包时自动执行生成类型定义文件的操作。当然,一个解决办法就是解决掉代码中所有的类型检查错误即可,既然讨论到这个问题,必然不会花费额外精力去解决一些历史遗留问题。

· 阅读需 20 分钟

最后更新于 2022-08-06 00:21:00

前端工程化是在做与业务开发完全不同的事情,旨在解决软件工程领域与开发者密切相关的问题,通常会将其与基建开发、DevOps 放在一起讨论。前端开发是复杂的,其结合了 HTML/CSS/JavaScript 3 种语言,甚至还有很多其超集,没有开箱即用的工具链,不像 Java Web 开发、Android 开发等等有官方或者商业领域非常成熟的工具可以利用,一切都源于开源社区的从 0 开始构建。正因如此,前端工程化领域百花齐放,开放与创新展现的淋漓尽致,这也是前端开发者了解学习软件工程的机会。

· 阅读需 5 分钟

最后更新于 2022-06-12 22:22:00

对于 Web 的图表组件库来说,一些功能比较强大的开源库,渲染层可以支持 DOM、SVG、Canvas、WebGL 等多个平台的环境,而图表库的很多功能的实现都和渲染层紧密相关。

最近,在参考学习一些开源的图表组件库时,发现在跨平台设计中,事件机制的实现很有意思,所以在这里以最简化的代码来解释和记录一下这个方案。如果要用经典的软件设计模式来解释,大概就是桥接模式了。

桥接模式(Bridge Pattern) 将一个功能的实现拆分为抽象(Abstraction)和实现(Implementor),让其相互独立的扩展和定义,借助该模式可以设计一种平台无关的软件架构。

· 阅读需 8 分钟

最后更新于 2022-05-03 20:38:00

最近在做前端可视化相关的东西,在完成动画效果时,遇到一个不是很好处理的问题,需要让一个元素在画布上以曲线的轨迹进行运动。因为动画这块之前基本也没有怎么接触过,做的也都是简单的线性动画效果,所以碰到这个需求点的时候觉得是有点难度的。

其实,要真的实现按照一定曲线轨迹运动的效果倒也不难,毕竟圆、椭圆方程在平时做布局计算的时候用的也挺多的。但是,用圆或者椭圆计算曲线相当于是找了个特殊场景,不具备通用性;另一方面,说到曲线的绘制,贝塞尔曲线是绕不开的,这也是非常值得考虑的方案。

· 阅读需 18 分钟

最后更新于 2022-05-03 16:43:00

一直以来,开源精神被开发者所推崇,开源项目为开发者提供了不用付出除时间以外任何成本就可以学习前沿技术的最佳途径,另一方面,我们应该思考开源为何会成功,在全球开发者参与协作的情况下代码仓库为何能保持整洁、不出现大规模冲突而奔溃,上下游依赖如何管理,这背后有既定的规范进行强约束,也有一系列社区工具来完成复杂而有价值的工作。所以,从参与或者维护开源项目的角度来看,这些社区公认的最佳实践值得我们了解,学习这些东西也能在一定程度上提高我们管理项目的能力。

· 阅读需 9 分钟

最后更新于 2022-03-27 01:04:00

互联网时代是个新概念频出的时代,每年有相当多的新名词诞生,而诸多与商业活动紧密相关的词汇了解一下有助于我们熟悉日常工作中接触的东西。

· 阅读需 3 分钟

最后更新于 2022-01-18 14:47:00

现在已经 2022 年了,回过头去看看刚参加工作第一年也就是 2021 年的工作历程以及参与的项目,总结一下遇到的问题,解决方法以及自己的成果,做个简单的总结。