IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
Jiajun的技术笔记
1998
source
关注
love
0
Jiajun的技术笔记
发表于
2018-05-13 00:00:00
数据库索引设计与优化
《数据库索引设计与优化》这是读完了 <高性能MySQL> , <数据库索引设计与优化> 和 MySQL Manual 之后的总结。本文的所有知识都是与MySQL相关的,其他数据库也许有不同... ...
继续阅读 (66)
love
0
Jiajun的技术笔记
发表于
2018-05-08 00:00:00
如何调试?
《如何调试?》单步跟踪是最常见的调试方法,不过我用的极少,因为效率低。往往也不需要用到这个。接下来我写的几种常见的调试方式,主要针对Go和Python。按难度从容易到难,按效率从高到低... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2018-04-14 00:00:00
Docker CE 18.03源码阅读与分析
《Docker CE 18.03源码阅读与分析》Docker更新的速度太快了。网上很多分析已经过时了。今天我翻了一下Docker的源码,发现其实Docker的源码挺简单易懂的。当然前提是,你已经熟练掌握了Docker,经常用,知道有哪些概念,了解其原理。有了这些做基础,就很容易读了... ...
继续阅读 (43)
love
0
Jiajun的技术笔记
发表于
2018-04-10 00:00:00
Golang和Thrift
《Golang和Thrift》Thrift是一款RPC协议+工具。我们团队选择了Thrift的主要原因是之前gRPC对gevent的支持不够好。目前虽然有支持,但是合并也还没有多久。而Thrift有饿了么搞的一套,相对来说好用一些... ...
继续阅读 (41)
love
0
Jiajun的技术笔记
发表于
2018-03-29 00:00:00
goroutine 切换的时候发生了什么?
《goroutine 切换的时候发生了什么?》## Goroutine怎么主动让出权力?https://golang.org/pkg/runtime/#Gosched... ...
继续阅读 (44)
love
0
Jiajun的技术笔记
发表于
2018-03-10 00:00:00
如何面试-作为面试官得到的经验
《如何面试-作为面试官得到的经验》- 社会很残酷,学历是一块敲门砖,尽管个人认为学历不是硬性要求,但是现实就是如果用合格人选处以其学历等级的人数,学历越高,合格的几率越高,因此很多HR为了节省时间,往往是要求本科以上... ...
继续阅读 (41)
love
0
Jiajun的技术笔记
发表于
2018-03-09 00:00:00
自己写一个容器
《自己写一个容器》见: https://github.com/jiajunhuang/cup容器技术并不是什么新技术,Docker能如此风行估计是让容器技术降低了使用难度。大概说一下这个demo用到的技术... ...
继续阅读 (55)
love
0
Jiajun的技术笔记
发表于
2018-03-08 00:00:00
Golang(Go语言)中实现典型的fork调用
《Golang(Go语言)中实现典型的fork调用》[English Version](https://jiajunhuang.com/articles/2018_08_28-how_does_golang_implement_fork_syscall.md.html)## 背景... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2018-02-25 00:00:00
程序员的自我修养:链接,装载与库 阅读笔记
《程序员的自我修养:链接,装载与库 阅读笔记》- 我们可以把内存想象成一个巨大的数组,很久以前的程序是直接在物理内存上进行操作的。 - 程序在运行时访问的地址都是物理地址... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2018-02-24 00:00:00
Redis源码阅读与分析一:sds
《Redis源码阅读与分析一:sds》- sds的定义: `typedef char *sds;`。所以sds是指向一个C字符串的指针。- sds所指向的指针之前有一个头部... ...
继续阅读 (41)
love
0
Jiajun的技术笔记
发表于
2018-02-02 00:00:00
Golang runtime 源码阅读与分析
《Golang runtime 源码阅读与分析》> 只想简单地写写,就不写的太复杂了。注释都在: https://github.com/jiajunhuang/go- Go的编译方式是静态编译,把runtime直接编译到最终的可执行文件里。首先我们把代码考过来,然后编译出 `go` 这个可执行文件... ...
继续阅读 (43)
love
0
Jiajun的技术笔记
发表于
2018-01-31 00:00:00
Golang的一些坑
《Golang的一些坑》- 传给 `signal.Notify` 的channel必须是一个buffered channel, 否则收不到信号- channel默认是unbuffered channel, 因此在没有消费者之前, 放入channel的动作都会被阻塞, 例如... ...
继续阅读 (38)
love
0
Jiajun的技术笔记
发表于
2018-01-28 00:00:00
设计一个路由
《设计一个路由》简单地说一下常见的路由形式。- 数组存储。按照添加路由的顺序存储在数组中,查找时依次匹配。这种路由效率比较低。tornado就是这么设计的... ...
继续阅读 (52)
love
0
Jiajun的技术笔记
发表于
2018-01-14 00:00:00
那些年开发的时候踩过的坑
《那些年开发的时候踩过的坑》- 可能发生的错误一定会发生,所以能尽早想到,就尽早采取措施预防- 系统默认的环境被人改了,例如有人默认把 `python` 指向了2或者3... ...
继续阅读 (52)
love
0
Jiajun的技术笔记
发表于
2018-01-08 00:00:00
(关系型)数据库优化总结
《(关系型)数据库优化总结》> 来自高性能MySQL, 数据库索引设计与优化, 和MySQL官方文档。总的来说,数据库优化是一门艺术,需要不断的去探索,这篇博客是前段时间学习以上三份资料时所做的笔记... ...
继续阅读 (44)
love
0
Jiajun的技术笔记
发表于
2018-01-04 00:00:00
动态规划民科教程
《动态规划民科教程》> 这是我本人近段时间学习和练习动态规划的总结,因为本人不是练过ACM的,所以自称民科。文章末尾是一些有用的引用。动态规划(Dynamic Programming),一听就是一个高大上的词语,我们先来看看维基百科是怎么说的... ...
继续阅读 (44)
love
0
Jiajun的技术笔记
发表于
2017-12-30 00:00:00
Golang 分布式异步任务队列 Machinery 教程
《Golang 分布式异步任务队列 Machinery 教程》Golang的分布式任务队列还不算多,目前比较成熟的应该就只有 [Machinery](https://github.com/RichardKnop/machinery) 了。这篇文章里我们简略的看一下Machinery怎么用。但是我们首先简单介绍一下异步任务这个概念... ...
继续阅读 (36)
love
0
Jiajun的技术笔记
发表于
2017-12-27 00:00:00
使用geohash完成地理距离计算
《使用geohash完成地理距离计算》geohash的原理是使用二分法,把当前的经度和纬度和最大最小的经度纬度进行无限二分,在一边则为0,否则为1,这样就可以定位到地球上的每一个点了。然后把经度放在偶数位,纬度放在奇数位,组成一个01010101串。如果想变得更容易传输,可以用某种方式进行hash,例如 `base32`, `base64` 等... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2017-12-20 00:00:00
2018年就要到了,这一年都做了什么呢?
《2018年就要到了,这一年都做了什么呢?》一年又这么过去了,到年底的时候就应该总结一下过去的一年做了哪些事情,学到了什么,悟到了什么,有什么是需要改进的。2017年,要说发生的重大事情,第一是,发现自己原来想做的是高性能自研软件的研发,想成为技术专家,而不是CRUD程序员... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2017-12-02 00:00:00
算法导论阅读笔记 --- 排序算法
《算法导论阅读笔记 --- 排序算法》> 这篇文章是我在学习算法导论之后的笔记排序算法,无论是在工作上还是面试中,都是经常遇到的问题。话不多说,我们一个一个来回忆。为了方便理解,我们总是假设输入的... ...
继续阅读 (49)
love
0
Jiajun的技术笔记
发表于
2017-11-29 00:00:00
Git HTTPS 如何保存密码
《Git HTTPS 如何保存密码》读了一下 `git-credential-store` 的manual。在项目下执行 `git config credential.helper store` 然后 `git push` 输入密码之后,家目录下就会多出一个文件... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2017-11-29 00:00:00
短链系统的实现
《短链系统的实现》简单的代码在:https://github.com/jiajunhuang/links其中主要的就是,通过 https://github.com/jiajunhuang/links/blob/master/codes.go#L9... ...
继续阅读 (46)
love
0
Jiajun的技术笔记
发表于
2017-11-04 00:00:00
Python开发实践经验
《Python开发实践经验》> 这是我在公司项目中写下的约定, 该项目使用Python3开发, 分享出来, 希望对大家也会有一些帮助- 项目杜绝循环引用, 包之间的引用关系为(`->` 表示被引用)... ...
继续阅读 (40)
love
0
Jiajun的技术笔记
发表于
2017-10-25 00:00:00
Golang实现平滑重启(优雅重启)
《Golang实现平滑重启(优雅重启)》> 平滑重启,也叫优雅重启,热重启,平滑升级,热升级,热更新等等。最近在看traefik的源代码, 看到其中有一个功能是平滑重启, 不过他是通过一个叫做 [graceful](https://github.com/tylerb/graceful)... ...
继续阅读 (38)
love
0
Jiajun的技术笔记
发表于
2017-10-19 00:00:00
Nginx作为TCP/UDP的负载均衡
《Nginx作为TCP/UDP的负载均衡》从Nginx 1.9开始,nginx也可以支持TCP/UDP的负载均衡,当然前提是编译的时候把stream这个模块编译进去了,可以通过 `nginx -V` 来查看是否有... ...
继续阅读 (53)
love
0
Jiajun的技术笔记
发表于
2017-10-19 00:00:00
Web开发系列(十一):数据库扩展
《Web开发系列(十一):数据库扩展》常见的MySQL数据库扩展方式有:- 读写分离:这种情况适用于读远大于写的情况,读越多,就可以分出越多的从库。从库是只读的,主则负责所有的写入。主和从之间... ...
继续阅读 (38)
love
0
Jiajun的技术笔记
发表于
2017-10-19 00:00:00
Web开发系列(九):消息队列,异步任务
《Web开发系列(九):消息队列,异步任务》有这样一个需求,第三方请求向我们的用户发送一个推送消息。我们必须尽快响应第三方:你的请求我们收到了,但是第三方又想知道结果。一种办法是等,第三方等我们的系统处理好了,然后返回结果给他。这样做有个优点,代码逻辑简单,但是缺点似乎更大,因为用户要等待结果,所以这个TCP连接是不会断掉的,也就意味着,如果请求的并发量比较大,那么对我们的系统负载是非常高的,因为要... ...
继续阅读 (35)
love
0
Jiajun的技术笔记
发表于
2017-10-19 00:00:00
Web开发简介系列
《Web开发简介系列》这个系列是我用来总结从实习到现在这一年半里接触到的web开发相关知识用的,主要是从后端开发的视角去看。从大体上分为两部分,简介部分和扩展部分。简介部分主要是从各个角度说明web开发中需要用到的一些东西,而扩展部分则是对简介部分没有讲到的东西的补充和讲到的东西的深入。以下是提纲(简介部分已经完成,扩展部分我会依次写完并且更新超链接)... ...
继续阅读 (34)
love
0
Jiajun的技术笔记
发表于
2017-10-18 00:00:00
Web开发系列(六):关系型数据库,ORM
《Web开发系列(六):关系型数据库,ORM》数据库,web开发中总是离不开这个核心应用,可以说web开发的核心就是数据库。但数据库是一个泛称,通常我们说的数据库是指关系型数据库,此外还有非关系型数据库。在这篇文章中,我们单指关系型数据库... ...
继续阅读 (76)
love
0
Jiajun的技术笔记
发表于
2017-10-18 00:00:00
Nginx 请求匹配规则
《Nginx 请求匹配规则》当一个请求到来,nginx首先会检查请求的目标ip地址和端口与哪一个规则里listen的部分相匹配。如果同一个ip和端口中匹配了多个虚拟的server块,nginx将会测试HTTP请求中 `Host`头部的值和nginx配置文件中 `server_name` 的值。如果一个 `Host` 匹配到了多个 `server_name`,那么nginx... ...
继续阅读 (37)
上一页
12/14
下一页