为 JWT 生成私钥 今天在写一个登录鉴权的接口,用到了 JWT,JWT 的签名与认证需要用到一对公私钥。所以需要在本地生成一对密钥。 方法很简单,只需要用到 ssh-keygen 和 openssl 即可,如果命令行下没有这两个工具,可以通过 homebrew 来安装。 生成的方法代码如下: 1234# 首先生成私钥文件,在生成过程中不要输入密码ssh-keygen -t rsa -b 4096 -m PEM -f 2021-02-07 #日常
Go append 的小技巧 在开发的过程中,遇到了一个需要将 T 类型切片映射为 F 类型切片的操作,由于 Go 的标准库中并没有内置 Map 函数,于是就写了一个简单的辅助函数。 第一版是这样的 123456789101112131415161718var ts = []struct { Foo int} { { Foo: 1, }, { Foo: 2021-02-04 #Go
我是如何写程序的 做为一名软件工程师,日常的工作就是去编写程序,写一段程序很简单,就比如 “hello world“。但是如果想要写好一段程序,就不是那么容易的事了,这篇文章主要是记录一下自己在编程时的一般流程。 1. 明确并且理解需求最近在读一本关于微服务架构的书,其中对需求有这样一个定义: 需求是一个必须要解决的问题,以及围绕这个问题的特定上下文环境 将每个开发任务当成需要解决的一道数学题。那么在解题的第一 2021-02-04 #日常
Go 函数式选项 在实例化一个含有多个字段的结构体时,往往会封装一个工厂函数,类似于 123456789101112131415// 用于示例,实际情况可能有更多的字端type T struct { A string B int C int D bool}func NewT(a string, b int, c int, d bool) *T { return &T& 2021-01-24 #Go
Goland 远程开发 最近准备写一个简单的容器管理工具,需要运行在 Linux 上。然而开发的机子是 MacBook,于是就想折腾一下自己的 goland,配置一下远程开发。 目标就是在本地编写的代码,一件部署到远程的服务器上并运行。 配置远程的服务器在进行开发之前,首先需要把远程的服务器给配置好。远程服务器的版本为 Ubuntu 20.04 ,准备使用的协议是 SFTP,所以需要在 ubuntu 20.04 上配置一 2020-12-28 #工具
docker 连接远程主机 介绍在某些情况下,需要工作的电脑上 docker CLI 连接到另一台主机上的 docker 服务器。记下具体的配置过程。 配置远程主机首先需要在远程主机上开启监听本地的端口, 修改 docker 的配置文件: 1vim /etc/docker/daemon.json 修改,或增减 hosts 字段 123456{ "hosts": [ "unix:// 2020-10-01 #container
DNS 概述Domain Name System(DNS) 是一个用于计算机,服务以及其他资源连接到 Iternet 的分布式分层系统。DNS 是一个数据库,它保存了域名以及 IP 地址的映射。可以将域名转化成对应的 IP。 用户与互联网上的某台机器进行交互时,需要知道对方机器的 IP 地址,不论是 32 位还是点十分制的 IP 地址都不容易记忆,因此需要有一个容易记住的主机名称(域名),并且有一个对映的 2020-09-07 #Network
cgo 内存释放 介绍使用 cgo,Go 可以与 C 语言代码进行交互,但是在使用过程中,如果使用的姿势不对,那么就有可能带来内存泄漏问题。 Go 自带 GC,一般情况下不会发生内存泄漏事件,自带的 GC 会收集不再使用的对象,并将其释放。但是在使用 cgo 时,某些函数会将 C 语言对象分配到 C 的堆上,在 Go 中初始化的 C 对象,是需要显示的调用 C.free() 去释放。官方文档也写明了这一点。在 cg 2020-05-17 #Go
Python map, filter, reduce 函数的注意事项 介绍 注意:本文所说的 python 都是指 python3,python2 已不再被支持 :) map(), filter() 以及 reduce() 是 Python 中与函数式编程相关的三个函数,可以对可迭代序列做映射,过滤以及累积。熟练使用这三个函数可以提升编码速度,并且感受到函数式编程的一些思想。但是在使用过程中需要注意一些事项 TL;DR from functools import 2020-05-06 #Python
Shell Tips 💡 一些关于 shell 的笔记 权限判断在执行脚本时,确定当前的权限是否为 root 代码: 1234if [ "$EUID" -ne 0 ] then echo "not root" exitfi EUID, 用于系统决定用户对系统资源的访问权限,等于 0 时表示权限为 root。 路径判断判断一个文件夹是否存在 代码: 123if [ -d &quo 2020-02-27 #shell