npx 入门使用

今天在使用的 Gulp 时看到首页的一段命令:

...
$ npx -p touch nodetouch gulpfile.js
...

npx 是个啥?决定一探究竟。

VSCode 使用经验

编辑 settings.json

command + , 右上角点击 {}

放大左侧文件栏字体

通过整体放大窗口比例。在 settings.json 中添加:

"window.zoomLevel": 1.1

Git 修改提交时间

指定本次提交时间:

git commit -m "fix..." --date=`date -R`

git commit -m "fix..." --date="$(date -R)"

git commit -m "fix..." --date="Tue, 11 Jun 2019 17:50:50 +0800"

最左前缀原理与相关优化

the-left-prefix-index-rule

MySQL 中的索引可以以一定顺序引用多个列,这种索引叫做联合索引,一般的,一个联合索引是一个有序元组 <a1, a2, …, an>,其中各个元素均为数据表的一列。另外,单列索引可以看成联合索引元素数为 1 的特例。

我们在 Employees Sample Database 中实验,MySQL 版本 5.7。

归并排序

merge-sort

归并排序(英语:Merge sort,或 mergesort),是创建在归并操作上的一种有效的排序算法,效率为 O(nlogn)。1945 年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。

PHP composer 基本原理

php-composer-basic

启动

public/index.php

// Register The Auto Loader
require __DIR__.'/../vendor/autoload.php';

autoload.php 不负责具体功能逻辑,只做了两件事:初始化自动加载类、注册自动加载类。

autoload_real.php 中的类名为 ComposerAutoloaderInit... 这可能是为防止与用户自定义类名跟这个类重复冲突,加上了哈希值。

其实还有一个做法我们更加熟悉,是定义一个命名空间。这里为什么不定义一个命名空间呢?一种理解:命名空间一般都是为了复用,而这个类只需要运行一次即可,以后也不会用得到,用哈希值更加合适。

PHP 请小心判断 strpos

有开始写世界上最后的语言 PHP 了(狗头保命)。一个很简单的字符串是否包含判断就掉坑了。

方法签名:

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int