IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
Jiajun的技术笔记
1998
source
关注
love
0
Jiajun的技术笔记
发表于
2020-05-15 00:00:00
分治的思维方式
《分治的思维方式》算法,其本质是一种思维方式。具体实现是术,思维方式是道。对于分治算法,它对应的数学理论是数学归纳法。在程序的表现中,它一般会和递归一起使用... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2020-05-13 00:00:00
Debian 使用NetworkManager之后networking.service崩溃
《Debian 使用NetworkManager之后networking.service崩溃》NetworkManager更好用,但是直接安装NetworkManager之后,原有的networking.service会崩溃。安装当然很简单... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2020-05-09 00:00:00
httprouter源码阅读与分析
《httprouter源码阅读与分析》httprouter是Go里比较高效的一个http 路由框架,比如GIN就是基于它。我们来看看httprouter的源码。首先要明确的一点是httprouter基于radix tree这种数据结构... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2020-05-05 00:00:00
Golang sync.Pool源码阅读与分析
《Golang sync.Pool源码阅读与分析》Go的很多地方都有用到 sync.Pool,这是作为一个内存池来使用的。例如 `fmt.Printf`:```go... ...
继续阅读 (47)
love
0
Jiajun的技术笔记
发表于
2020-05-01 00:00:00
MySQL操作笔记
《MySQL操作笔记》MySQL是我最常用的关系型数据库,不过运维相关的一些命令,我不是很常用,但是偶尔又要用,每次都要去搜索太麻烦了,遂作笔记。## 把默认编码设置为 utf8mb4... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2020-04-30 00:00:00
Go语言解析GBK编码的xml
《Go语言解析GBK编码的xml》最近接短信提供商,因为要做审计功能,所以就要把短信的trace id等信息存储下来,但是捏,提供商返回的是GBK格式的XML,而Goxml库默认只支持UTF-8。那咋办呢?下面是两个方案,第一个比较trick,但是还挺好玩的,第二个比较正式... ...
继续阅读 (43)
love
0
Jiajun的技术笔记
发表于
2020-04-24 00:00:00
使用Go语言实现一个异步任务框架
《使用Go语言实现一个异步任务框架》如何使用Go语言实现一个简单的异步任务框架呢?且听我一一道来。首先我们看一下常见的任务队列的架构:... ...
继续阅读 (47)
love
0
Jiajun的技术笔记
发表于
2020-04-23 00:00:00
Go使用gdb调试
《Go使用gdb调试》其实我一般调试都是直接打log的,不过gdb调试还是很有用处,尤其是当碰到一些底层错误的需要单步跟踪的时候,比如,想研究一下Go的runtime是如何实现的的时候... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2020-04-22 00:00:00
Golang ASM简明教程
《Golang ASM简明教程》这几天倒腾了一下Go的ASM,然后写了一个简单的汇编代码,记录一下以防忘记。首先要说明的是Go的ASM是一种中间码,或者说是众多汇编语言的一种抽象体,但是呢,又不完全是抽象,总之,揉合了Go自定义的一部分,和真实汇编语言。这里主要记录的就是Go自己定义的那部分... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2020-04-21 00:00:00
善用闭包(closure)让Go代码更优雅
《善用闭包(closure)让Go代码更优雅》通常来说我们降低一个函数的复杂度的方法是拆分。即大事化小,各个击破的原理。不过拆分成函数调用有一个问题,那就是修改函数参数的时候很蛋疼... ...
继续阅读 (52)
love
0
Jiajun的技术笔记
发表于
2020-04-21 00:00:00
Golang中的并发控制
《Golang中的并发控制》之前我写过一篇博客介绍 [Python中的并发控制](https://jiajunhuang.com/articles/2020_02_12-python_concurrency.md.html)。Python的并发控制可以说很优雅,Java的也是类似的,那么,Go语言咋办?如果我也想实现类似的需求,例如:同时不超过8个goroutine... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2020-04-13 00:00:00
FreeBSD ipfw使用教程
《FreeBSD ipfw使用教程》FreeBSD,古老的UNIX系统,最近在研究它的ipfw防火墙,鉴于国内相关资料较少,我就记录下来,以飨读者。首先在FreeBSD 12中,ipfw已经默认编译进内核了,所以中文资料包括很多英文资料里,还需要编译的,就不用看了,那是过时的... ...
继续阅读 (55)
love
0
Jiajun的技术笔记
发表于
2020-04-11 00:00:00
Golang SQL生成库 Squirrel 教程及源码阅读
《Golang SQL生成库 Squirrel 教程及源码阅读》可能看到标题会产生一个疑问:为啥不用ORM?使用ORM的好处显而易见,能够自动帮我们处理好面向对象和数据库之间的映射,Python中我使用的是SQLAlchemy,但是Go语言目前没有一个比较好用的ORM,目前的ORM都是处于半自动形态的,而且还要处理零值和非零值时的坑,想要省略某些字段要这样写,不想省略要那样写,很难记忆,因此还不如使用SQL这种已经是事实标准的,学一次就能用很久的东西... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2020-04-10 00:00:00
Golang validator使用教程
《Golang validator使用教程》validator应该是Golang里进行表单校验的事实标准了,比如在Web框架GIN中,就是默认使用它。表单校验的作用,就是对输入的数据进行合法判断,如果是不合法的,那么就输出错误。比如... ...
继续阅读 (53)
love
0
Jiajun的技术笔记
发表于
2020-04-09 00:00:00
使用Redis的Stream模块实现群聊功能
《使用Redis的Stream模块实现群聊功能》Redis 5.0 加入了一个新的模块:[Stream](https://redis.io/topics/streams-intro),在这篇文章中,我们使用它来实现IM中的群聊。首先我们来看看我们的IM有哪些功能,回忆一下我们使用的最多的IM---微信,聊天的形式有两种... ...
继续阅读 (63)
love
0
Jiajun的技术笔记
发表于
2020-04-09 00:00:00
价值编程与职业发展
《价值编程与职业发展》投资中有一种理念叫做价值投资,指的是评估一支股票的内在价值所应有的价格,当市场价格低于它时,买入,高于它时卖出。其中市场价与实际价格的差,就叫安全边际... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2020-04-08 00:00:00
解决k8s cron无法读取环境变量的问题
《解决k8s cron无法读取环境变量的问题》我们使用 `cron` 放一个deployment里,而不是使用k8s自带的cron方案,原因有几个:- cron经过了历史验证,并且满足要求(虽然精度只到分钟,但是够用了)... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2020-03-26 00:00:00
两种常见的访问控制模型
《两种常见的访问控制模型》那就是ACL(Access-control list,访问控制列表)和RBAC(Role-based access control,基于角色的访问控制)。如果我们现场来做一个访问控制,会怎么做呢?最简单的就是,像门卫一样,把每个人和每个对象做一行记录,比如... ...
继续阅读 (55)
love
0
Jiajun的技术笔记
发表于
2020-03-25 00:00:00
gunicorn max-requests 选项的作用
《gunicorn max-requests 选项的作用》gunicorn 是Python中常见的一个服务网关,它有这么一个特性就是,处理完一定量的请求之后,就会把那个worker重启,用一个新的worker来替代之。但是,这样做的目的是什么呢?... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2020-03-23 00:00:00
Redis使用中的几点注意事项
《Redis使用中的几点注意事项》- 如非必要,一定要设置TTL。如果不是业务所需,必须持久存储,那么请一定要设置好TTL,否则随着时间流逝,Redis里会塞满垃圾。此外还要注意使用框架时,确定好框架是否会设置ttl,比如最近遇到的一个坑就是Python RQ没有默认为job设置ttl,因此几年过去,现在Redis内存不够用了,分析之后才发现,里面有诸多的垃圾,比如一些不用的业务数据,还有很早以前的job的数据等等,全部都堆在... ...
继续阅读 (66)
love
0
Jiajun的技术笔记
发表于
2020-03-12 00:00:00
给你的代码跑个分?pylint使用教程
《给你的代码跑个分?pylint使用教程》之前我一直使用 `flake8` 来检查Python项目中的代码规范,工作良好,除了一个问题,由于Python是动态语言,编译器只能做最基本最简单的错误检查,这也就意味着,很多错误,如果肉眼看不出来,那就得等执行报错了才会被发现... ...
继续阅读 (49)
love
0
Jiajun的技术笔记
发表于
2020-03-11 00:00:00
一个Gunicorn worker数量引发的血案
《一个Gunicorn worker数量引发的血案》最近大佬想要我重写一个应用,为嘛呢?因为发现这个应用内存占用非常高,每个pod(我们部署在k8s里)占用1.2-1.3G,一共放了6个pod。但是按道理来说,这个应用并不复杂,不应该占用如此多的内存... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2020-03-06 00:00:00
MySQL Boolean类型的坑
《MySQL Boolean类型的坑》MySQL中,Boolean只是 tinyint(1) 的别名,也就是说,MySQL中并没有真正的bool类型。而SQLAlchemy生成SQL的时候并没有检测到这一点,这就导致一个问题,当使用 bool 类型作为查询条件时,用不上索引,从而导致扫表的行为... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2020-03-04 00:00:00
pip freeze是魔鬼
《pip freeze是魔鬼》很多用Python的项目,喜欢用 `pip freeze > requirements.txt` 来保存依赖,而不是手动维护文件,`pip freeze` 是魔鬼。来看看一个项目依赖的简化版... ...
继续阅读 (45)
love
0
Jiajun的技术笔记
发表于
2020-03-02 00:00:00
一个feed流系统的演进
《一个feed流系统的演进》这几年我持续开发维护了一个类feed流系统。类feed流在结构上都有这么一个共性,即类feed流系统是一个中心节点,将多个用户和多个feed来源连接起来... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2020-03-01 00:00:00
Android 使用view binding
《Android 使用view binding》在学习和使用flutter一段时间之后,发现flutter的生态和原生相比还是不在一个数量级。因此进行了原生安卓的学习。Android开发中比较烦的一个事情是,当你要操作Activity中的控件时,你必须要写类似的代码... ...
继续阅读 (60)
love
0
Jiajun的技术笔记
发表于
2020-02-26 00:00:00
MySQL charset不同导致无法使用索引的坑
《MySQL charset不同导致无法使用索引的坑》今天排查了一个MySQL Charset不同导致无法使用索引的坑。当然最开始我是不知道的,同事碰到一个性能问题,我也在群里,因此就捞过界了一把,一起看了一下问题。但是从SQL来说应该是... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2020-02-19 00:00:00
微服务的缺点
《微服务的缺点》微服务,火了好几年的东西。曾经我们看中的是微服务拆分之后,每个项目变得更小,对团队的每个人来说维护成本降低,因为需要了解的东西局限于一个更小的服务。第二是加强了技术选型的灵活性。但是由于没有实践,并不知道微服务会带来什么大的问题... ...
继续阅读 (84)
love
0
Jiajun的技术笔记
发表于
2020-02-14 00:00:00
远程工作一周有感
《远程工作一周有感》由于疫情的缘故,最近在家远程办公一周了。很久以前就想过切换到远程工作这件事情,咨询过很多人,有的人说远程不好容易受打扰,有的人说远程好因为工作效率高,但是自己却一直没有机会试试。谁也没想到,突然就有一个机会尝试一把... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2020-02-12 00:00:00
Python中的并发控制
《Python中的并发控制》最近有个需求,要大批量写数据,项目是用Python写的。所以有个问题就是如何使用Python做并发控制,如果是Go语言,那么就可以使用[WaitGroup](https://golang.org/pkg/sync/#WaitGroup)... ...
继续阅读 (54)
上一页
6/14
下一页