go-context介绍 发表于 2019-03-12 | 分类于 go context 简介并发控制经典的并发控制方法 waitgroup控制多个 goroutine 1234567891011121314151617func main() { var wg sync.WaitGroup wg.Add(2) go func() { time.Sle ... 阅读全文 »
https理解 发表于 2019-03-11 | 分类于 cs https 请求过程交互流程 加密通信一条完整的 HTTPS 请求应该是这样的:客户端 (浏览器) 发起 HTTP 请求,请求连接服务端,发送支持的加密通信协议 (和版本),并且生成一个随机数,后续用于生成”对话密钥”。【关键点:加密协议列表和随机数】 服务端确认加密通信协议 (和版本),同时也生 ... 阅读全文 »
go-函数式可选项 发表于 2019-03-10 | 分类于 设计模式 函数式可选项通过参数创建实例,常见方式 常用方式 123456789101112131415161718192021func NewStuffClient(conn Connection, timeout, retries int) StuffClient { return & ... 阅读全文 »
net/http包关键点解析 发表于 2019-03-03 | 分类于 go net/http 包关键点解析Go 创建一个 http server如何创建 http server 服务端 核心 1.保存 path 和 handler 的对应关系 2.请求过来时,查找 path 对应的 handler,然后调用 handler 的 ServeHTTP(w, r)方法 12345 ... 阅读全文 »
k8s入门 发表于 2019-02-22 | 分类于 docker docker 虚拟化实现隔离是怎么实现的? namespace 进程隔离,名称映射【障眼法】 Cgroups 限制进程使用资源,限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等。此外还可以对进程进行优先级设置、审计、进程挂起和恢复。 cgroup 隔离配置配置相关文件 12 ... 阅读全文 »
docker命令 发表于 2019-02-21 | 分类于 categories 常用命令容器生命周期管理 run start/stop/restart kill 向容器发送信号 rm 常见 combo 是:stop x;rm x ;build x;run x pause/unpause create exec 在运行的容器中执行命令 容器操作 ps 显示容器 inspect ... 阅读全文 »
代码规范 发表于 2019-02-21 | 分类于 code_style 代码风格代码简洁 VS 代码易读1234567if (variable != null) { return variable.getSomething();}return null;return x >= 90 ? "A" : x >= 80 ? "B" : x ... 阅读全文 »
私信系统设计 发表于 2019-02-21 | 分类于 system design 私信系统设计整体设计分两种类型的表 联系人表 私信消息表 通过长连接或者 push 消息推送实现实时聊天 表结构设计[分库分表]1234567891011121314151617181920212223242526272829303132333435363738DROP TABLE IF EXI ... 阅读全文 »
golang-pprof 发表于 2019-01-04 | 分类于 categories pprof 的使用什么是 Profiling?Profiling 这个词比较难翻译,一般译成画像。比如在案件侦破的时候会对嫌疑人做画像,从犯罪现场的种种证据,找到嫌疑人的各种特征,方便对嫌疑人进行排查;还有就是互联网公司会对用户信息做画像,通过了解用户各个属性(年龄、性别、消费能力等),方便为用户推 ... 阅读全文 »
es6 发表于 2018-12-19 | 分类于 front-end ES6Babel是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码 Babel 的配置文件是.babelrc,存放在项目的根目录下。使用 Babel 的第一步,就是配置这个文件。Babel 使用babel-cli工具,用于命令行转码。 1234567// 转码前input.ma ... 阅读全文 »