【翻译】Rust笔记:Type Layouts和ABIs

本文阐述了Rust中类型在内存中的布局及ABI相关的知识,对于学习rust ffi很有帮助。 原文地址:https://gankro.github.io/blah/rust-layouts-and-abis/     Read more
Hanks's avatar
Hanks Mar 10, 2019

Jest玩转异步代码测试

在软件开发中,我们通常通过单元测试(Unit Test, UT)来确保编写的代码符合软件需求,UT也往往作为自动化集成的一部分存在于软件工程中。说来惭愧,笔者在过去的工作中没有写过UT,最近主动接受了为项目做UT的任务,以弥补这方面的经验不足。本文主要介绍使用Jest对TypeScript项目中异步代码做UT的一些实践。     Read more
Hanks's avatar
Hanks Aug 25, 2018

基于Vue的跨区域拖拽方案实现

数据驱动是Vue的核心思想之一,Vue官方也鼓励使用数据驱动思想进行开发,这样可以有效利用Vue的diff算法提升性能。拖拽是前端开发中一种常见的交互形式,本文介绍一种利用Vue的数据驱动特性和双向绑定能力实现的跨区域拖拽方案(兼容IE9+)。     Read more
Hanks's avatar
Hanks Jul 06, 2018

Vue中使用Provide/Inject实现全局浮层管理

在基于Vue构建大型应用时,不可避免地需要在不同层级的组件之间进行通信,Vue提供了props/event、event bus、Vuex、provide/inject等方式来实现组件间通信。本文将阐述一种基于provide/inject来统一管理组件库中各类弹窗组件的思路。     Read more
Hanks's avatar
Hanks Feb 04, 2018

项目中的代码规范检查

在团队项目开发中,每个人有不同的编程习惯,包括使用不同的缩进、换行、注释等等,当团队人员逐渐增多之后,代码就会变得越来越来杂乱,这无形中给团队合作增加了困难。因此,制订一套团队的代码规范十分有必要,这套规范应该包含代码风格规范、commit规范、变量术语规范等几个方面。当然有了规范之后,为保证大家严格按照规范来进行开发,需要设置一定的“关卡”来校验这些规范,只有符合规范的代码才能通过。本文介绍利用ESlint+Git来控制项目代码的质量。     Read more
Hanks's avatar
Hanks Jul 31, 2017

填坑行动之纯静态页面中使用Vue

现在团队除了一些老项目,基本上已经完全切换到了Vue,我们也开发了自己的基础组件库VHTML。不过最近接手的一个项目是纯静态的,没有使用任何的构建或打包工具。但是设计师大大给出的设计稿沿用了基础组件库的设计风格,如果要用jQuery来实现,工作量将会很大,因此考虑在页面中引入Vue并使用VHTML的基础组件,从而大大缩短开发量。本以为像使用jQuery一样,简单的引入Vue之后使用就可以了,事实证明我还是too young too naive。就用这篇文章来纪念一下开发过程中踩过的各个坑。     Read more
Hanks's avatar
Hanks Jul 26, 2017

highcharts-pattern-fill

Highcharts是一个优秀的数据可视化图表库,它具有很高的自定义度,只需要通过JSON对象进行配置即可。在最近的一个需求中要求区域图的填充必须为斜线,调研了一番之后发现Highcharts本身并不支持斜线填充,所幸highcharts提供了一个可以实现此功能的插件pattern-fill。本文简要分析pattern-fill的实现原理及使用方法。     Read more
Hanks's avatar
Hanks May 14, 2017

Vue之自定义指令

我们都知道在Vue中,代码复用和抽象的主要形式是组件。但是在有些情况下,我们可能仅需要操作一些普通元素,这个时候如果也使用自定义组件会显得很笨重。因此,Vue允许注册自定义指令来实现一些简单的功能。本文将结合自定义指令on-scrollto来看看在Vue中是如何实现自定义指令的。     Read more
Hanks's avatar
Hanks May 07, 2017

闭包那点事儿

一直以来都没有彻底理解JavaScript的闭包特性及其使用,《JavaScript Ninja》中 闭包 一章是我读过讲解闭包的书籍或博客中,梳理的最清晰的,以此为基础整理了自己对闭包的理解。 主要内容 闭包是什么,如何工作? - 闭包的几个重要概念 闭包的使用 私有变量 函数回调 绑定函数上下文 偏应用函数 函数重载 立即执行函数     Read more
Hanks's avatar
Hanks Mar 15, 2017

Javascript创建对象的几种方式

JavaScript作为一门动态性的面向对象的编程语言,其核心思想就是一切皆对象。为了深入理解JS面向对象的编程思想,本文总结了几种常见的创建JS对象的方法,比较了各自的优缺点以及使用场景。 参考书籍:《Javascript高级程序设计》(第3版)、《Javascript权威指南》     Read more
Hanks's avatar
Hanks Feb 09, 2017

简易Javascript 模板引擎

最近在研究学习JavaScript的模板引擎的实现原理,读到Krasimir Tsonev的这篇介绍JS模板引擎实现原理的文章,对于新手很是受用,因此翻译过来。 原文链接:JavaScript template engine in just 20 lines     Read more
Hanks's avatar
Hanks Feb 09, 2017

My Blog

我的博客之旅作为一个前端“老菜鸟”,我在研究生行将毕业之际才开始博客之旅,better late than never。一直以来,由于对自己的文笔不够自信,因此迟迟没有勇气开始写博客。在鹅厂实习半年以来,在老司机们的谆谆教诲和环境刺激之下,深刻了解到通过博客来总结和记录自己的知识栈是一种非常高效的方式。     Read more
Hanks's avatar
Hanks Feb 09, 2017