敏感消息交换对正确性和安全性都有比较强的要求。 使用消息摘要算法对消息体计算和验证摘要,可以防止消息传输过程中被篡改为非法消息值;使用加密算法加密消息体,可以防止消息传输过程中被拦截并读取。二者结合则可以实现较强的安全性…
TypeScript 获取函数的参数类型、返回值类型
在使用 TypeScript 开发的过程中,类型定义是一个必要但又繁琐的过程。 当需要对一个第三方库方法的入参进行单独定义,而该库又没有导出该方法的入参类型时,就需要获取该方法的入参类型。 例如,有如下示例函数,我们想获…
使用 npm-check-updates 快速升级前端项目 package.json 依赖版本
通过使用 npm outdated 和 npm update 命令,可以对前端项目中的第三方依赖版本进行分析与升级。但他们可用的参数较少,有些过于简单。 在 Microsoft Visual Code 编辑器中,当鼠标停…
windows 10 编译构建 electron 源码的环境配置流程参考
当需要对 electron 进行删减或逻辑修改以实现个性化的需求时,第一步要做的就是其源码构建环境的搭建。由于涉及 chromium 和 nodejs 的源码编译,整个构建项目是非常庞大的,其过程中任何一个小环节出现问题…
对 windows 10 系统 C 盘空间大小进行手动清理瘦身的几种方法
如果在系统分区初始 C 盘空间给的不是很多,可能随着各种应用软件的安装、系统的自动更新等,C 盘的空间慢慢的就不够用了。此时如果你不想重装系统全部重头再来,下面磁盘清理建议可能会帮助到你。 要对进行 C 盘瘦身,无非以下…
Node.js 关闭 window 命令提示符 Console 控制台的快速编辑模式
windows 10 的 cmd 命令提示符下,如果你双击界面中的字符,则可能会发现可以快速选中部分文字,鼠标拖动模式也可以进行区域选择。 这是因为在 cmd 的选项配置中,默认开启了 “快速编辑模式”。但是可能你也会发…
Macbook 安装和配置 Python3
1 下载并安装 Python3 Mac 系统自带了 Python2.7,安装 Python3 的方式很简单,从官网下载对应的 pkg 安装文件,然后一路安装即可。 官方下载地址: https://www.python.o…
合理地使用 git rebase 代替 git merge 操作
先将本文主要观点写在前面: 同一分支上开发,每次提交改动记录较少,建议使用 rebase 从公共分支合并至个人的特性分支,建议使用 rebase 不同分支合并,存在较多的改动记录时,建议使用 merge 从个人的特性分支…
针对 websocket 服务代理与数据 mock 的方案
在前后端分离的协作开发过程中,mock 数据是一个不可避免的需求。针对普通 http 方式的数据mock有非常多的成熟解决方案,但面向 websocket 这种推送模式就变得复杂一些。 下面分享一下借助 simple-m…
React 16 中的错误边界(Error Boundaries)与全局错误处理
自 React 16 起,任何未被错误边界捕获的错误将会导致整个 React 组件树被卸载。 对于开发已久且 Code Review 不是那么严格的庞大项目来说,在升级到 React 16 以后,可能会发现以前只偶尔在局…