Toggle navigation
Liangjf
Home
About
Tags
Tags
keep hungry keep foolish
生活
品味ZooKeeper
Upsource
代码审查
HDFS
数据挖掘
Android蓝牙
排序算法
网络编程
golang
c++ 并发
网络协议
linux 网络编程
linux
STL
Ntrip协议
lua
设计模式
Mysql
Protocol
Protobuf
mysql
TCP/IP
编程杂谈
云服务
go
redis
docker
工作开发
公众号/小程序
加解密
token
中间件
总结
内存泄漏
性能分析
分布式
CI/CD
系统设计
限流熔断降级
性能
数据库
工作
消息队列
复盘
生活
生活
稳健的漫步~~~
Hello 2018
"Hello 2018, Hello Blog"
品味ZooKeeper
tinyhttpd
源码分析
品味ZooKeeper
客户端对比选择
品味ZooKeeper
选举及数据一致性
品味ZooKeeper
Watcher机制
品味ZooKeeper
纵古观今
Upsource
代码审查
Upsource
代码审查
代码审查
Upsource
HDFS
HDFS
架构和设计
数据挖掘
数据挖掘
回归算法
数据挖掘
TF-IDF文本相似度
Android蓝牙
蓝牙连接性能测试工具
Android Bluetooth
排序算法
排序算法
排序算法之快速排序
排序算法
排序算法之归并排序
排序算法
选择排序
排序算法
插入排序
网络编程
Libevent
libevent的配置event_base
Libevent
libevent的event_io_map哈希表
Libevent
Libevent的TAILQ_QUEUE队列
Libevent
Libevent多线程,锁,条件变量(下)
Libevent
Libevent多线程,锁,条件变量
Libevent
libevent内存管理
Libevent
libevent配置文件和日志
Libevent
Libevent2.1和两个重要结构体
Reactor模型
Reactor模型的迭代进化
Ntrip协议
使用流程及服务器实现架构
golang
golang
makefile提高效率
go-grpc
go-grpc应用demo
go https
https 安全性API
golang
http.Handle和http.HandleFunc的区别
goland
goland连接远程仓库代码,自动同步
gin
gin启动和请求流程,压测
nsq
nsq集群和踩坑
golang
为程序添加版本功能
nsq
Viper
nsq
nsq-go实战
nsq
nsq深入浅出
beego与bee初识
beego和bee安装使用
vscode go插件安装
解决vs code中golang插件依赖安装失败问题
go命令
go的三个常用命令
go包引用
golang包引用解析
c++ 并发
并发编程
并发共享数据的一些思考
并发编程
关于std::thread线程传参的思考
并发编程
c++中关于std::thread的join的思考
网络协议
一次网络交互
客户端和服务端一次网络交互
网络协议
出了网关,网络包的经历
网络协议
网络为什么分层
linux 网络编程
对socket的思考
为什么有监听socket和连接socket,为什么产生两个socket
linux
linux
linux 调试core文件
linux性能调优
cpu上下文切换
linux性能调优
linux负载均衡与性能监控
linux安装wine
ubuntu 18.04 通过联网方式安装wine
STL
《Effective STL》
40《若一个类是函数子,使它可适配》
《Effective STL》
39《确保判别式是“纯函数”》
《Effective STL》
31《了解各种与排序有关的选择》
《Effective STL》
30《确保目标区间足够大》
《Effective STL》
29《对于逐个字符的输入请考虑istreambuf_iterator》
《Effective STL》
28《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》
《Effective STL》
26《iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator》
《Effective STL》
24《当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择》
《Effective STL》
23《考虑用排序的vector替代关联容器》
《Effective STL》
21《总是让比较函数在等值情况下返回false》
《Effective STL》
22《切勿修改set或multiset的键》
《Effective STL》
20《为包含指针的关联容器指定比较类型》
《Effective STL》
19《了解相等和等价的区别》
《Effective STL》
18《避免使用vector
》
《Effective STL》
17《使用“交换技巧”来修整过剩容量》
《Effective STL》
16《如何将vector和string的数据传给遗留的API》
《Effective STL》
15《注意strng实现的多样性》
《Effective STL》
14《使用reserve来避免不必要的重新分配》
《Effective STL》
13《尽量使用vector和string来代替使用数组》
《Effective STL》
12《切勿对slt容器的线性安全性又不切实际的依赖》
《Effective STL》
11《理解自定义分配子的合理用法》
《Effective STL》
10《了解分配子(allocator)的约定和限制》
《Effective STL》
9《慎重选择删除元素的方法》
《Effective STL》
8《永不建立auto_ptr的容器》
《Effective STL》
7《如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉》
《Effective STL》
6《当心C++编译器中最烦人的分析机制》
《Effective STL》
5《当心C++尽量使用区间成员函数代替它们的单元素兄弟》
《Effective STL》
4《用empty来代替检查size()是否为0》
《Effective STL》
3《确保容器中的副本对象高效而正确》
《Effective STL》
2《不要编写独立于容器类型的代码》
《Effective STL》
1《慎重选择容器类型》
Ntrip协议
Ntrip协议
Ntrip协议
lua
配置Lua运行环境
SublimeText3配置Lua运行环境
设计模式
设计模式
设计模式在go的开源项目和实战开发的总结
设计模式
设计模式之策略模式
设计模式
设计模式之模板方法
设计模式
设计模式——面向对象设计原则
设计模式
设计模式——个人浅谈
Mysql
Mysql
ubuntu16.04 安装 mysql-level
Mysql
ubuntu16.04 能启动mysql服务
《MySQL技术内幕:SQL编程》
《MySQL技术内幕:SQL编程》读书笔记
Protocol
Protocol
Protocol Buffers介绍及例子
Protobuf
Protobuf
Protobuf底层二进制存储
Protobuf
阅读 Protobuf 官网的一些笔记
mysql
mysql b+树
mysql的innodb为什么用b+树, 不用红黑树/b树/跳表/LSM[上]?
mysql同步redis
通过MySQL触发器UDF自动同步刷新Redis
linux cpp连接并查询mysql
linux C API连接并查询mysql5.7.9
TCP/IP
TCP/IP
TCP粘包拆包处理
编程杂谈
编程杂谈
异步编程
云服务
京东云
京东云视频处理签名认证
go
go-bindata
redis lua脚本高效技巧
go题目
由一道go题目引发对内存分配和内存逃逸思考
反射
go 反射和应用场景
go设计模式
函数类型实现接口,隐式回调接口
依赖注入
go依赖注入
sync.RWMutex
sync.RWMutex源码分析
sync.Once
sync.Once源码分析
sync.Map
sync.Map源码分析
gin
gin 从路由响应函数看Engine和Context的关系
gin
gin 路由注册分析
gin
gin http从请求到响应的步骤分析
插件化和设计模式
从go-micro中看插件化和设计模式的思想
validator.v10库提高参数校验效率
validator.v10库提高参数校验效率
go pprof
go pprof分析goroutine阻塞
go module
go module的使用技巧
goreleaser
一键跨平台编译
编码习惯&标准库
1.defer的应用,close文件
编码习惯&标准库
1.defer的应用,close文件
编码习惯&标准库
1.defer的应用,close文件
微信监控机器人
🙉微信监控机器人设计
go pprof
性能分析和瑞士军刀go pprof
go-mod
go1.13.4 go get报错-mod
go-micro
go-micro 启动流程分析
go-micro
go-micro关键点
go cgo
go cgo访问空指针不报段错误,静默越过程序
go mod
go mod的使用技巧
protobuf
go protobuf
go
go开发经验
go
wktmltopdf实战
go
go-web常用表单验证
go
go websocket
redis
redis客户端缓冲区
redis客户端缓冲区
redis网络模型
redis网络模型
redis-go-cluster
从redis-go-cluster报错源码分析
redis客户端与服务端通信流程
客户端与服务端通信流程(客户端角度)
redis LRU
LRU配置参数
redis
监控指标
redis
pipeline(管道)
redis
redis集群搭建和应用
redis
redis存用户信息用key-value还是hash
docker
docker
一次docker web服务的奇怪问题
docker
gin+docker+阿里云
docker
阿里云镜像仓库
docker
什么是容器
工作开发
用户权限
用户权限管理模块设计
公众号/小程序
公众号/小程序
公众号后台开发
加解密
aes加密
aes加密原理
动态密钥方案
动态密钥接口服务设计
token
token自动续期
长短token实现自动续期
中间件
etcd server
etcd server启动的流程
池化技术
池化技术
etcd
etcd watch机制
etcd
etcd3 KV、Lease、Watcher、Auth、Maintenance
etcd
etcdv3 client的创建流程
etcd
etcd与zookeeper
etcd
etcd server启动
etcd
etcd介绍和应用场景
etcd
etcd思维导图
总结
总结&计划
2020总结,2021计划
2019总结
2019年褪去羞涩,走向成熟
内存泄漏
C++内存泄漏排查
内存泄漏排查
性能分析
性能问题分析
go+grafana+influxdb性能分析和问题排查
go pprof
go pprof分析goroutine阻塞情况
分布式
由服务注册中心故障引起的思考
CAP和BASE理论
hystrix
hystrix设计深究
限流器
剖析juju/ratelimit限流器
grpc
grpc服务发现分析
grpc
grpc压缩编解码
etcd3
etcd3 client/client.go设计分析
CI/CD
CI/CD
三台机器搭建gitlab+jenkins+docker cicd
系统设计
短连接系统设计
短连接服务原理和系统设计
限流熔断降级
ratelimit限流器
限流器在项目中的应用
性能
图解性能分析
实际系统的性能分析
图解性能分析
性能的分析基础
图解性能优化
性能的基础知识
数据库
事务
事务的封装和管理
工作
订单处理
vip开通处理流程
消息队列
nsq
nsqd的网络通信和对网络逻辑处理框架的思考
nsq
nsq中的内部优化和技巧
复盘
消息乱序,重复,幂等性
语音遥控器和智能台灯项目复盘