从 Dark 看编程语言空安全特性

前段时间想做一个小工具 APP,考虑想用 Flutter 实现,于是去看了看 Dart 语言,发现一个比较有意思的特性 —— “空安全”,这里和大家聊一聊。 什么是空安全空安全是指编程语言的类型系统能够区分可为空的类型和不能为空的类型,这种区别可以防止空引用错误(Null Reference Errors)。 Dart 的空安全Dart 在 2.12 版本引入了空安全。 可空和非空类型在...

macOS - 给 Terminal(终端)配置网络代理

与浏览器不同,mac 的终端默认并没有开启代理模式,也就是说即使我们电脑安装了代理客户端,在终端中也是无法使用代理的。下面通过样例演示如何对终端配置网络代理。 1. 确定客户端端口首先我们打开使用的代理客户端设置界面,查看其开放的 HTTP 端口,比如我这里是 1087 2. 配置代理macOS Catalina 之后,Mac 使用 zsh 作为默认的 Shell 终端,我们这里就以 ...

在 PowerShell 中使用 Git

前言在 macOS 下 git 命令行工具默认有着很好的 tab 补全功能,而在 Windows 下通过 exe 安装的 git 程序,看起来就有些简陋。 其自带的 Unix Shell 环境模拟窗口 Git Bash,有着丑陋的外观,即便可以通过配置字体、颜色等手段稍加改善,但其一会儿类 Unix 工具链环境的反馈,一会儿 Windows cmd 工具链混搭的集成环境,着实容易让人精神分裂...

PowerShell 修改提示符的文字内容和样式

前言默认的 PowerShell 提示符丑? 其实我们可以通过编辑 PowerShell 的启动脚本,来自定义提示符的文字内容和样式 配置脚本执行权限在可以运行 PowerShell 脚本之前,你需要将本地的 ExecutionPolicy 设置为 RemoteSigned 在 PowerShell 中执行下面的命令,更精细化的配置参见 微软文档 Set-ExecutionPolicy 1S...

script元素脚本加载详解

我们知道,将 JavaScript 插入 HTML 的主要方法是使用 <script> 元素。这个元素是由网景公司创造出来,并最早在 Netscape Navigator 2 中实现的。后来,这个元素被正式加入到 HTML 规范。 为了更好地了解 JavaScript 在 HTML 中的加载情况,我们先简单介绍一些基础知识。 <script> 元素有下列 8 个属...

一种适合小团队的Git协作流程

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护 分支介绍 master - 主分支 所有提供给用户使用的正式版本,都在这个主分支上发布 开发者在此分支 不可进行 push 操作 dev - 开发分支 日常开发所使用的分支,开发者完成的阶段性功能模块将首先被合并到此分支 此分支亦是团队内部测试、...

Vue的双向绑定原理及简单实现

Vue 数据双向绑定原理Vue 数据双向绑定是通过 数据劫持 结合 发布者-订阅者模式 的方式来实现的。 我们先来看下定义在 Vue 初始化数据上的对象是什么样的 代码: 12345678910new Vue({ data: { obj: { foo: 1, }, }, created() { co...

模拟实现 JavaScript 的 apply call 及 bind 函数

在 JavaScript 中,apply、call 和 bind 方法都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。 改变 this 指向我们看下面一段代码: 123456789101112131415161718192021var name = 'GlobalName'var obj = { ...

软件测试的分类

按测试阶段分类单元测试 对软件中最小可充实单元进行检查和验证 单元测试的原则 尽可能保证各个测试用例是相互独立的 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求 单元测试的益处 能尽早发现缺陷 有利于重构 简化集成 单元测试一定程度替代文档 用于设计,单元测试体验设计思路,设计本身可以用来验证设计 单元测试的限制 不可能覆盖所有的执行路径,所以不可能保证捕捉到所...

Java面试-基础知识笔记

Synchronized (Java 关键字) 作用: 能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。 两个用法对象锁 方法锁:默认锁对象为 this 当前实例对象 同步代码块锁:自己指定锁对象 类锁 synchronized 修饰 静态 的方法 synchronized 指定锁为Class对象 多线程访问同步方法的 7 种情况(面试常考) 两个线程同时访问...