正则表达式中的回溯过程

本文所有正则表达式皆为 JavaScript 正则形式
本文所有图片和实例都来自:知乎-老姚:正则表达式回溯法原理

回溯算法

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就「回溯」返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为「回溯点」。许多复杂的,规模较大的问题都可以使用回溯法,有「通用解题方法」的美称。

来自「百度百科」

查看更多

ZooKeeper 入门简介

是什么?

Zookeeper 最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。

《从 Paxos 到 ZooKeeper》

ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

查看更多

ZooKeeper 配置文件解析

最低配置

以下是必须在配置文件中定义的最低配置选项:

  1. tickTime: ZooKeeper 中使用的基本时间单元, 以「毫秒」为单位, 默认值是 2000。它用来调节心跳和超时。例如, 默认的会话超时时间是两倍的 tickTime
  2. dataDir: ZooKeeper 用来存储内存数据库快照的目录, 并且除非指定其它目录, 否则数据库更新的事务日志也将会存储在该目录下。建议配置 dataLogDir 参数来指定 ZooKeeper 事务日志的存储目录。
  3. clientPort: 服务器监听客户端连接的端口, 也即客户端尝试连接的端口, 默认值是 2181
查看更多

tmux 入门 + 快捷键整理

1
2
3
本文全部快捷键和配置文件均在以下环境成功运行:
操作系统:MacOS 10.14
tmux 版本:tmux 2.9a

最近进入了工作热情高涨的时期,疯狂的重构、打包、上传,每次这样搞都要重复开好多的终端窗口而且要一个一个的用鼠标点来点去的很麻烦(最近莫名的嫌弃鼠标),所以想起了之前被自己放到「待会儿再读」收藏夹的「十分钟学会 tmux」,貌似这个工具可以帮助我更好的管理终端窗口。

话不多说直接上手:

PS:如果你也像我一样第一次接触这类软件,那么我建议你不要观望,先把软件下下来然后根据快捷键列表一个一个的尝试一次,再决定要不要使用,整个过程不超过十分钟但是却能给你节省 N 多观望的时间。

安装 tmux

tmux 可以应用在各类终端上(Windows 下未测试)支持 Vi/Emacs 风格的键盘映射

查看更多

webpack 4 入门

导读

写这篇文章是为了让自己在自学 webpack 的过程中有所产出,于是边读 webpack 中文文档 边写下了这篇文章,里面的很多实例都是直接挪用的文档中的实例,但在一些概念的理解上我加入了自己的想法「未必精确」,所以读的时候要抱着「怀疑的态度」。

文章内容不仅仅是简单的「概念堆叠」,还有一些「重点」概念的「深入理解」,不过篇幅有限我不希望这篇文章变成一份冗长的伪文档,所以全部的内容都是围绕 webpack 的 4个 核心概念延展开来的,每个配置后面我都会尽量跟上一个实例以更加形象的展示配置的具体作用。

站在我的角度上,读完这篇文章并不能让你精通 webpack 但是理解 webpack 中的重要概念,自己编写一个 webpack.config.js 配置文件还是可以的。

webpack 简介

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(static module bundler)。在 webpack 处理应用程序时,它会在内部创建一个依赖图(dependency graph),用于映射到项目需要的每个模块,然后将所有这些依赖生成到一个或多个bundle。

查看更多