IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
Jiajun的技术笔记
1998
source
关注
love
0
Jiajun的技术笔记
发表于
2021-05-24 00:00:00
Redis源码阅读:字典是怎么实现的
《Redis源码阅读:字典是怎么实现的》dict,也就是哈希表这个数据结构,在Redis中的作用非常广泛,比如,Redis用它来存储支持的命令,这篇文章我们会看一下Redis是如何实现dict的... ...
继续阅读 (58)
love
0
Jiajun的技术笔记
发表于
2021-05-23 00:00:00
Redis源码阅读:执行命令
《Redis源码阅读:执行命令》上一篇我们读到,Redis是怎么从启动服务,到开始读取来自socket的字节流。这一篇我们继续看看,如何处理字节流,然后变成命令,到返回对应数据... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2021-05-22 00:00:00
Redis源码阅读:启动过程
《Redis源码阅读:启动过程》最近我突然想看看Redis是怎么开始处理命令的,也就是从启动到开始处理请求,中间大概都发生了什么。话不多说,首先fork原始仓库,然后把代码拉下来... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2021-05-15 00:00:00
WAL(Write-ahead logging)的套路
《WAL(Write-ahead logging)的套路》WAL的全称是 Write-ahead logging, 是一种常见的用于持久化数据的方式, 通常性能都很不错,利用了磁盘连续写的性能高于随机读写的这一个特性. 一般来说, WAL都是用于这样一种场景, 记录操作日志, 数据库收到合法请求之后, 首先在WAL里写入一条记录, 然后再开始进行内存... ...
继续阅读 (59)
love
0
Jiajun的技术笔记
发表于
2021-04-15 00:00:00
如何定位程序问题所在
《如何定位程序问题所在》如何定位bug所在,这是一个很好的问题,我的经验也不丰富,今天综合学习了一下,结合我的经验,总结成文。在出问题之前,我们需要做的事情是(生产环境,测试环境一般容忍性更强,下面的步骤就看各团队要求了)... ...
继续阅读 (67)
love
0
Jiajun的技术笔记
发表于
2021-04-14 00:00:00
设计一个IM归档系统
《设计一个IM归档系统》最近整了一个IM归档系统,需求就是把IM聊天记录、文件、图片等全部归档,供数据团队分析。挑战在于量非常的大,以及可靠性保证。架构如下... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2021-04-11 00:00:00
logrotate read only filesystem问题
《logrotate read only filesystem问题》最近配置了OpenResty的 logrotate 规则,但是遇到一个奇怪的问题,自己直接在命令行执行是ok的,但是systemd timer执行却是不行... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2021-03-20 00:00:00
Python Queue源码分析
《Python Queue源码分析》今天读源码时发现了 [Queue](https://docs.python.org/3/library/queue.html) 这个标准库,是Python标准库里对队列的实现,翻了一下源码,发现还挺有意思的... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2021-03-18 00:00:00
Go里优雅的使用全局配置
《Go里优雅的使用全局配置》全局配置是一个单例,最简单的实现是使用一个全局变量,为了到处都可以使用到,所以常见的做法是有一个包,例如名字叫 `global`或者诸如此类的,然后要用到的地方去导入,例如... ...
继续阅读 (71)
love
0
Jiajun的技术笔记
发表于
2021-03-11 00:00:00
Android滑动时隐藏FAB
《Android滑动时隐藏FAB》我在BaseClass里加入了如下代码,实现了在滑动 `RecyclerView` 的时候,隐藏浮动按钮(FAB):```kotlin... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2021-02-21 00:00:00
编写可维护的函数
《编写可维护的函数》之所以写这篇,是因为看到 Dave Cheney 的一篇博客,深有同感:https://dave.cheney.net/2019/09/24/be-wary-of-functions-which-take-several-parameters-of-the-same-type ... ...
继续阅读 (61)
love
0
Jiajun的技术笔记
发表于
2021-02-04 00:00:00
为什么要把配置保存在仓库里?
《为什么要把配置保存在仓库里?》作为后端我们经常会遇到运维性质的活儿,比如测试环境起一个容器化数据库,或者是要改改Nginx配置等等。在很久以前,其实我们是跑商去改完了就算了,甚至包括数据库也是这样,测试环境改完了,生产环境抄过去再改一次。但是我认为应该要把这些配置放在一个repo里,这样子有如下几个好处... ...
继续阅读 (65)
love
0
Jiajun的技术笔记
发表于
2021-01-27 00:00:00
Android自动展示和关闭进度条
《Android自动展示和关闭进度条》客户端总是要有个进度条告诉用户,正在加载内容。可是我很懒,不想每次都自己来控制,那样子的话,得在调用api前设置进度条显示出来,调用api之后不显示。每次都要这样,太麻烦了... ...
继续阅读 (65)
love
0
Jiajun的技术笔记
发表于
2021-01-13 00:00:00
Kotlin/Java 列表Protobuf序列化
《Kotlin/Java 列表Protobuf序列化》本来想保存一些Protobuf生成的类的实例到本地,方法自然就是把一个列表的数据序列化成bytes,然后存起来。不过搞了半天都没办法,于是就自己整了一个 "poor man's serialization for list of protobuf object"... ...
继续阅读 (69)
love
0
Jiajun的技术笔记
发表于
2021-01-03 00:00:00
怎么使用ViewModel 和 RecyclerView
《怎么使用ViewModel 和 RecyclerView》当他们分开使用的时候,很简单,但是怎么把ViewModel和RecyclerView结合在一起呢?代码如下... ...
继续阅读 (87)
love
0
Jiajun的技术笔记
发表于
2021-01-03 00:00:00
deeplink结合路由处理扩展App的能力
《deeplink结合路由处理扩展App的能力》开始学习移动端开发是一个正确的选择,点了一颗新的技能树,扩展了知识和能力体系。下面是最近的关于路由处理和deeplink的感想。通常情况下,如果想要服务端触发一些App的行为,那么我们选择的是通过某个约定的code,App检测到之后,就作出一定的响应。例如... ...
继续阅读 (53)
love
0
Jiajun的技术笔记
发表于
2021-01-02 00:00:00
Android手动挡MVVM
《Android手动挡MVVM》Android官方的自动档MVVM方案 Jetpack Compose 还没正式发布,目前只有手动挡的MVVM方案,那就是下面几者的组合:- view binding... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2020-12-23 00:00:00
来电拦截方案
《来电拦截方案》最近接了很多垃圾电话,分享一下我的拦截方案。首先我有一个主号,这是很多年前办的,银行、房贷等重要信息的电话,都是用的这个,不能换,但是由于办理时间长,很多垃圾电话和短信... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2020-12-22 00:00:00
你好,2021!
《你好,2021!》时间的流逝似乎跟上了深圳快节奏的步伐,转眼之间就快到了2021。是时候来总结一下2020年,然后以一种全新的心态来面对来年,正所谓辞旧迎新... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2020-12-16 00:00:00
Golang里数据库migration方案
《Golang里数据库migration方案》Python中如果用SQLAlchemy的话,一般会用alembic来做migration。那么,Go呢?我一般用这个:https://github.com/golang-migrate/migrate... ...
继续阅读 (47)
love
0
Jiajun的技术笔记
发表于
2020-12-12 00:00:00
Android SwipeRefreshLayout左右滑动冲突的解决
《Android SwipeRefreshLayout左右滑动冲突的解决》我有一个页面是需要下拉刷新的,所以在 `` 的外层包了 ``,但是同时我希望 ``里的组件,可以支持左右滑动,比如,右滑删除,左滑编辑... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2020-12-07 00:00:00
Android调用gRPC的两个小工具函数
《Android调用gRPC的两个小工具函数》Android上调用gRPC,由于gRPC中的status错误,在gRPC Java/Kotlin生成的代码中,是以异常的形式展现出来的,所以,如果不想在业务代码里到处都充斥着 `try {} catch(e: StatusRuntimeException) {}` 这样的代码,就得抽出一个工具函数来同一处理错误,如下... ...
继续阅读 (62)
love
0
Jiajun的技术笔记
发表于
2020-12-01 00:00:00
Android上结合kotlin使用coroutine
《Android上结合kotlin使用coroutine》最近入了Android坑,目前还处于疯狂学习的状态,所以很久都没有写博客了。今天记录一个小代码片段,在Android上使用coroutine的小例子... ...
继续阅读 (49)
love
0
Jiajun的技术笔记
发表于
2020-11-13 00:00:00
Java collection的结构
《Java collection的结构》最近在学Java,这张图是collection的结构,Java里常用的数据结构实现都在这里面了,准备好好的研究研究。结构如图:... ...
继续阅读 (63)
love
0
Jiajun的技术笔记
发表于
2020-10-10 00:00:00
TCMalloc设计文档学习
《TCMalloc设计文档学习》TCMalloc全名Thread-Caching Malloc,是Google开发的用来替代传统malloc函数的内存分配库,它的竞争对手主要是jemalloc, glibc malloc等。我们主要学习它的设计思路。首先要明确的一点就是tcmalloc为什么这么快,大量使用无锁操作是tcmalloc... ...
继续阅读 (63)
love
0
Jiajun的技术笔记
发表于
2020-09-20 00:00:00
Linux常用命令(二):htop
《Linux常用命令(二):htop》htop是非常非常常用的一个命令行工具。htop在top上有很多改进,更加易用,并且操作更加简单、直观。我们来看看htop的截图:... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2020-09-20 00:00:00
Linux常用命令(三):watch
《Linux常用命令(三):watch》watch命令是一个比较简单但是实用的命令。不知道你是否有过这样的经历,你想看一个命令的输出,因此不断的手动执行这个命令,然后观察输出。watch命令就是帮你自动完成这个过程的命令。举个例子,我们像要看现在的时间,就可以这样... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2020-09-19 00:00:00
Linux常用命令(一):netcat
《Linux常用命令(一):netcat》netcat是常见的用于网络相关的工具,比如连接,监听,扫描端口等。和所有的UNIX命令一样,netcat也是一把瑞士军刀。接下来我们来学习如何使用... ...
继续阅读 (49)
love
0
Jiajun的技术笔记
发表于
2020-09-16 00:00:00
结合Flask 与 marshmallow快速进行参数校验
《结合Flask 与 marshmallow快速进行参数校验》在Flask里如何方便快速的进行参数校验呢?如下,我们通过组合Flask提供的工具函数,以及marshmallow,来完成一个方便快捷的参数校验函数... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2020-09-10 00:00:00
规整数据的重要性
《规整数据的重要性》对于后端而言,无论前端是否校验了表单(前端可能出于用户体验会做校验),后端都必须校验一次。并且在数据有问题时及时终止处理。常见的请求处理如下... ...
继续阅读 (47)
上一页
4/14
下一页