愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

Jest中提供的工具(jest-platform)总结

Jest中有一些独立的包,我们可以使用这些包来使用一些Jest的特性。这些可能对于开发一些工具,做一些自动化流程时是非常有帮助的 一、jest-changed-files 用来识别git/hg仓库文件变更的工具,暴露了两个方法: getChangedFilesFor...

Dart学习笔记(七):库

在Dart中,可以使用import和library创建模块化的可分享代码。Dart库具有如下一些基本概念: 在库里面,以_开头的标识符仅在库内部可见 每个Dart程序都是一个库,即使没有使用library命名,也是一个库 ...

Dart学习笔记(六):泛型

一、什么是泛型 泛型,顾名思义,是指泛类型,也就是说类型可以延迟到使用时候再决定,而非声明时决定。如同List<E>这种写法,<E>就声明了list是一个泛型类型,通常情况下,建议使用一个字母来代表类型参数,如E,

Dart学习笔记(五):类

Dart是面向对象的语言,所有对象都是一个类的实例,所有类都继承自Object。此外,Dart支持基于mixin的继承机制,这意味着,每个类(除了Object)都只有一个父类,一个类的代码可以在其他多个类继承中重复使用。 一、类的实例化 类的实例化,可以使用new

Dart学习笔记(三):运算符

Dart的操作符 Dart中的操作符和大多数编程语言所差无几,但是也有一些特定的操作符。此外,Dart的操作符是 可以重载 的,以下列出的则是Dart的操作符优先级(从上到下,从左到右,优先级依次变小): 一元后缀:expr++,expr--,(...

Dart学习笔记(二):方法

一、Dart方法 Dart中,方法也是对象并且是Function类的实例,因此,方法可以赋值给变量,也可以当做其他方法的参数,还可以是把Dart类的实例当做方法来调用,示例如: String greet(String name) { return 'Hello,...

通过一次场景模拟来深入理解和实践持续集成(CI)

最近参加 leader 所举办的 CI 相关的 CoP(Communication of Practice),过程相当精彩且收获甚多,本文是听完了第二场分享“CI in action”之后的一次总结,分享本身是基于 Java 和 Gradle 进行的,但是由于对前端开发者而言,可能以前端所了解的技术栈进行总结更为熟悉。因此,本着吸收分享内容且结合前端实际开发的初衷,写下本文

持续集成(Continuous Integration)的基础概念

一、持续集成的特点 至少每日集成一次 有助于快速解决问题 不止一个过程 二、所谓持续,是至少每日集成一次 持续集成(Continuous Integration, CI)是一种开发实践,它要求开发者将 代码 在一日内集...

《编程语言实现模式》学习笔记(一):LL(1)递归下降的词法分析器

一、什么是Lexer? 在阅读的时候,人们会无意识地将字母合成单词,然后将合成的单词组成句子,之后考虑语法结构,最终明白句子的含义。在编译的过程中,编译器为了更好地进行语法分析,就也需要先将字符流识别分类为有意义的一个个单元,而这些单元便称之为词法单元,编译器解析字符流到生成词法...

使用rebase的Git工作流

Git是目前最为强大的代码版本管理工具,被开源社区和各大公司所广泛使用。使用Git进行团队协作开发是很便利的一件事情,但是在多人协作的过程中,我们也会面临如何运用好Git的问题。这种情况下,就出现了各种各样的Git Workflow,而本文将介绍一种基于rebase的工作流,这种工作流也是目前开源社区所比较推崇的做法,了解了这种工作流之后可以更好地优化对git...

BDD工具Cucumber学习记录

一、前言 BDD(Behavior Driven Development)是一种有效的软件开发与测试方法,它能够清晰化地描述应用程序的行为,用于在业务方、开发者与测试人员之间明确业务需求,并且为更好地自动化测试提供指导。Cucumber是广泛使用的一个BDD工具,支持多种语言,本文则基于JS...