🌜
摘要: 零值 未显式指定初始值的变量会自动获取零值,具体来说, 整形:0 浮点:0.0 布尔类型:false 字符串:"" (空字符串) interfaces,slices,channels,maps,pointers 及 functions: nil 字面量 对于数字字面量,可在值中穿插 _ 分隔以提高可 阅读全文
posted @ 2021-09-18 08:36 刘哇勇 阅读(16) 评论(0) 推荐(0) 编辑
摘要: go run 编译生成临时可执行文件,程序结束后删除。适合用于小程序的调试,或者把 Go 当成脚本语言来用的场景。 go build 编译并生成可执行文件,默认与源码文件同名,可通过 -o 指定名称。 go install Go 程序除了可通过预先编译成可执行文件进行分发外,常用的工具包等三方依赖, 阅读全文
posted @ 2021-07-03 17:46 刘哇勇 阅读(64) 评论(0) 推荐(0) 编辑
摘要: GOROOT: 标识 Go SDK 的位置,一般情况下不用改,除非要切换到其他 Go 版本 GOPATH: 定义工作区(workspace)的位置。 默认情况下为 ~/go 目录。其中包含 bin: go 编译后的可执行文件 pkg:包含编译后的包代码,即 .a 文件 src: 源码目录,包含诸如 阅读全文
posted @ 2021-07-03 17:44 刘哇勇 阅读(51) 评论(0) 推荐(0) 编辑
摘要: axios 中一个请求取消的示例: axios 取消请求的示例代码 import React, { useState, useEffect } from "react"; import axios, { AxiosResponse } from "axios"; export default fun 阅读全文
posted @ 2021-06-23 19:27 刘哇勇 阅读(300) 评论(0) 推荐(1) 编辑
摘要: 前面使用 Docker 部署 Node 应用 - 镜像文件尺寸的优化一文中,通过各种手段将镜像文件的大小已经降到了一个理想的状态,此时再进行分发就会方便很多了。毕竟,传递上 G 大小的文件和 100+M 大小的文件,还是很不一样的。 发布与部署 通过将镜像发布到 Docker Hub, 在服务器再安 阅读全文
posted @ 2021-06-20 14:27 刘哇勇 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 前面 使用 Docker 部署 Node 应用 一文中完成了镜像的创建和运行,不过生成的镜像还有些粗糙,需要进一步优化。 镜像的优化 通过 docker images 看到简单的一个 node 服务端应用,超过 1G 大小,因此需要优化一下使其更加轻量。 通过如下命令查看镜像文件里都有什么文件以及分 阅读全文
posted @ 2021-06-20 14:26 刘哇勇 阅读(283) 评论(0) 推荐(1) 编辑
摘要: 容器将应用与环境打包整合,解决了应用外部依赖的痛点,打包后通过窗口可方便地部署到任意环境,用过就知道很香。 创建示例应用 以 NestJS 为例,先创建一个示例应用。 $ npm i -g @nestjs/cli $ nest new my-app $ cd my-app $ yarn && yar 阅读全文
posted @ 2021-06-18 22:31 刘哇勇 阅读(405) 评论(0) 推荐(0) 编辑
摘要: Intersection Observer API 随着 Web 应用的丰富和成熟,检测元素是否可见的需求增多。之前一般是通过三方库来实现,各自有各自的实现方式,性能也有差异。Intersection Observer API 便是这种功能的一个原生支持。 适用场景 页面滚动过程中的懒加载。 长页面 阅读全文
posted @ 2021-06-10 14:07 刘哇勇 阅读(40) 评论(0) 推荐(0) 编辑
摘要: Monkey-Patching 的目的是修改原方法同时为其注入新的逻辑。可以理解成劫持。这样系统在执行的时候,实际上执行的是被替换的版本。 大部分时候,这里的操作隐含了对原方法的保留,只是向其中添加自己的新逻辑。毕竟,你不想修改掉系统某个方法后整个程序就崩掉。所以最安全的做法就是在劫持的时候保留对原 阅读全文
posted @ 2021-06-09 18:55 刘哇勇 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 访问同一个 URI 时,服务器可以返回不同类型的资源。比如在浏览器中访问 http://www.example.com/user 可以是个网页,也可以是个 JSON 接口,甚至可以是张图片等。 具体返回哪种类型,就需要引入内容协商的机制,以达到返回正确资源类型的目的。 内容协商分为服务器主导(ser 阅读全文
posted @ 2021-06-05 13:31 刘哇勇 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一般地,本地会安装到最新的 MySQL,比如 8 点几开发调试。而云服务上的 MySQL 很可能是老版本的,比如 MySQL 5 点几。 那么问题来了,将本地高版本的 MySQL 导出的建表语句及数据导入到低版本时,毫不意外会有问题,这里记录两点。 准备工作 整个 dabase 的导出 数据导出使用 阅读全文
posted @ 2021-06-04 19:20 刘哇勇 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 首先,理解一下 ps -ef 的输出。 以下是该命令的一个输出示例: $ ps -ef UID PID PPID C STIME TTY TIME CMD 0 1 0 0 9:05PM ?? 0:05.03 /sbin/launchd 0 93 1 0 9:05PM ?? 0:00.33 /usr/ 阅读全文
posted @ 2021-06-03 19:08 刘哇勇 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 使用以下语句尝试修改 root 密码时, mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 如果提示如下错误: ERROR 1819 (HY000): Your password does not satisfy the 阅读全文
posted @ 2021-06-02 19:57 刘哇勇 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Flutter 开发时,会遇到另的任务挂起导致新的 Dart 服务无法启动的问题,提示如下: Waiting for another flutter command to release the startup lock... killall 命令 此时可以通过以下命令,将所有当前运行的 Dart 阅读全文
posted @ 2021-06-01 14:27 刘哇勇 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Linux 服务器 CentOS 为例。 Kafka 安装 获取下载地址,下载后解压。 $ wget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz $ tar -zxvf kafka_2.12-2.5.0.tgz 阅读全文
posted @ 2021-05-31 20:06 刘哇勇 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 显而易见的事实是,Objective-C 中,+ 表示类方法,- 表示实例方法。 但看别人代码过程中,还会发现一种,不带加减号的方法。 @implementation MyViewController void foo(){ printf("msg from foo..."); } - (void) 阅读全文
posted @ 2021-05-26 19:11 刘哇勇 阅读(178) 评论(0) 推荐(0) 编辑
摘要: Optional Chaining 解决的问题是重复且无意义的判空,之所以说无意义,是对业务来说它不是必需的,但不判空,程序直接就挂了,比如: let x = foo.bar.baz(); 这里的访问链路上 foo bar baz 任何一个为 undefined,程序就停止工作。 使用 Option 阅读全文
posted @ 2021-05-25 14:06 刘哇勇 阅读(245) 评论(0) 推荐(1) 编辑
摘要: 执行一个耗时很长的命令时,或命令耗时不确定,可以配置 iTerm2 在命令完成或失败时主动通知,而不用我们自己时不时地去检查。以下是一些获取完成通知的方式。 say 可在命令后跟 say done 来使用声音提示。这里 say 是 mac 上文本转语音的工具,后面跟需要朗读的文本,可以是任意文本。 阅读全文
posted @ 2021-05-22 09:06 刘哇勇 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 安装 $ brew install redis 检查安装: $ redis-server -v Redis server v=6.0.3 sha=00000000:0 malloc=libc bits=64 build=5bce11175f58e836 启动 $ brew services star 阅读全文
posted @ 2021-05-20 19:32 刘哇勇 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 当我们使用 TypeScript 时,我们想利用它提供的类型系统限制代码的方方面面,对象的键值,也不例外。 譬如我们有个对象存储每个年级的人名,类型大概长这样: type Students = Record<string, string[]>; 理所当然地,数据就是长这样: const studen 阅读全文
posted @ 2021-05-19 23:09 刘哇勇 阅读(552) 评论(1) 推荐(1) 编辑

Bingo!!

少年,我看你骨骼清奇,怕是一名前端吧‽

腾讯内推长期有效,简历这边来 liuwayong@gmail.com