/images/avatar.jpg

Typescript学习

安装

安装TypeScript还是很简单的:

1
npm install -g typescript

写个hello.ts

1
2
3
4
5
6
function sayHello(person: string) {
    return 'Hello, ' + person;
}

let user = 'Tom';
console.log(sayHello(user));

然后执行

1
tsc hello.ts

这时候会生成一个编译好的文件 hello.js

RabbitMQ四五事之死信队列

业务需求

有时候我们需要某些任务定时执行,譬如取消订单,5分钟没支付,这个订单就被取消。简单实现的话,我们可以使用Redis或Linux的crontab来实现,而对于RabbitMQ,我们则可以用它的死信队列来实现定时任务。

Puppeteer使用例子

https://s3.ax1x.com/2021/03/05/6eGwVJ.png
这篇文章很简单呢,就是记录一下用Puppeteer的一些snippet。

访问网站后截图

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const puppeteer = require('puppeteer');
const url = 'https://segmentfault.com';

(async() => {
    const browser = await puppeteer.launch({
        headless: true,
        args: ["--no-sandbox", "--single-process"],
    });
    const page = await browser.newPage();
    await page.setViewport({ width: 1920, height: 1080 });
    // ‘networkidle2’ means that there are no more than 2 active requests open. 
    // This is a good setting because for some websites (e.g. websites using websockets) there will always be connections open
    await page.goto(url, {
        waitUntil: 'networkidle2',
        timeout: 1000 * 60 * 5, // 毫秒 超时参数需要加上,有时候网络不好,会导致等着
    });
    await page.screenshot({path: './data/website.png', type: 'png'});
    page.close();
    browser.close();
})();

ES6中的class

https://s1.ax1x.com/2020/08/30/dbt2p6.png

ES6

ECMAScript 2015或ES2015是对JavaScript编程语言的重大更新。这是自2009年对ES5进行标准化以来对语言的首次重大更新,ES6加入很多有用的特性。因此,ES2015通常被称为ES6。

调试PHP源码

https://s1.ax1x.com/2020/07/05/U91xmt.png

缘由

有时候,我们想看看一个变量底层对应底层的数据结构或者PHP脚本是如何执行的,gdb就是这样一个好工具,之前有篇文章写过如何简单使用gdb。

本文环境:

  • PHP版本:PHP 7.1.16 (cli) (built: Apr 8 2020 11:56:59) ( ZTS )
  • OS:Ubuntu 18.04.4 LTS
  • gdb: GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git

编译

你可以从PHP官网下载PHP源码的压缩包,者是从git.php.net(或者是github的镜像)的git库clone最新的代码库,然后切换到对应的PHP版本的分支,本文使用的是PHP7.1,你可以使用下面的命令完成这些工作:

gdb调试简单使用

gdb

gdb 是 UNIX 及 UNIX-like 下的调试工具,在 Linux 下一般都直接在命令行中用 gdb 来调试程序,相比 Windows 上的集成开发环境 IDE 提供的图形界面调试,一开始使用 gdb 调试可能会让你感觉很难适应,但是只要熟悉了 gdb 调试的常用命令,调试出程序会很有成就感,一方面因为这些命令就类似图形界面调试按钮背后的逻辑,另一方面用命令行来调试程序,逼格瞬间就上了一个档次,这次就跟大家分享 gdb 调试的基本技术和 15 个常用调试命令。