代码改变世界

解锁redis锁的正确姿势

2017-03-22 07:11 by 轩脉刃, 513 阅读, 收藏, 编辑
正文内容加载中...

说说API的防重放机制

2017-03-20 18:19 by 轩脉刃, 683 阅读, 收藏, 编辑
摘要: 说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正常逻辑是插入数据库操作,那么一旦插入数据库的语句写的不好,就有可能出现多条重复的数据。一旦是比阅读全文

laravel的消息队列剖析

2017-03-18 10:33 by 轩脉刃, 254 阅读, 收藏, 编辑
摘要: laravel的消息队列剖析 这篇来自于看到朋友转的58沈剑的一篇文章: "1分钟实现“延迟消息”功能" 在实际工作中也不止遇见过一次这个问题,我在想着以前是怎么处理的呢?我记得当初在上家公司的时候直接使用的是laravel的queue来实现的。当然,这里说的laravel的queue实际上也是基于阅读全文

策略模式

2017-03-14 07:43 by 轩脉刃, 41 阅读, 收藏, 编辑
摘要: 最近工作使用到设计模式,在选用设计模式的时候,发觉设计模式理解不难,难的是在某个场景下选用哪个设计模式。就是设计模式的使用场景。 策略模式 策略模式适用情况是你已经知道了某个算法。第一步做什么,第二步做什么,第三步做什么。但是具体的三步在不同场景怎么做有不同的行为。 代码举例: 策略模式属于行为型模阅读全文

说说接口封装

2017-03-09 15:36 by 轩脉刃, 750 阅读, 收藏, 编辑
摘要: 今天给同事封装了一个接口,说起接口封装的事情,其实其实很有的聊。很多时候,说一个服务好,一个服务烂,实际上都是在吐槽服务队外暴露的接口好坏。不管什么语言,封装接口,抽象起来,就是由一个函数名,若干个参数,若干个返回值组成的。封装的好坏,就在这几个上面。 函数名 首先是函数名。函数名的好坏很明显,我的阅读全文

说说框架的数据库迁移功能

2017-03-07 10:20 by 轩脉刃, 442 阅读, 收藏, 编辑
摘要: laravel中有个数据库迁移功能,migration。基本用法就是在database/migrations/的文件夹下面创建迁移数据库的类,在这个类中实现两个方法: up表示运行这个数据库迁移你要做些什么,down表示你回滚这次数据库迁移你要做些什么。 这样你就可以使用 php artisan m阅读全文

shell的exec命令

2017-03-02 21:38 by 轩脉刃, 62 阅读, 收藏, 编辑
摘要: 工作中遇到运维人员挂supervisor的时候建议启动使用命令control.sh start, 并且在control.sh 里面启动命令: 使用man看下说明,可以看到exec是一个内部命令, 如这里说的exec是将要exec的命令替换当前的这个命令。所以这个意思是 如果你使用了exec之后,你当阅读全文

前后端分离趋势谈

2017-02-06 00:16 by 轩脉刃, 2303 阅读, 收藏, 编辑
摘要: 最近已经不止一个人和我提起过vue了,在我的前端印象中,我还停留在smarty渲染模版,jquery做js处理。学了一晚上,对现在这种工程化webpack打包生成html,js,css的生产方式越来越有兴趣了。工作年限摆在这里的好处就是经历了不少技术的变革,能从纵向思考下技术的变革和趋势的路子。 想阅读全文

php内核分析(八)-zend_compile

2016-12-05 10:39 by 轩脉刃, 214 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 回到之前看的zend_eval_stringl 这里的zend_execute执行了两步,第一步是把php编译解析成为opcode的过程,我们就先看这个。 zend_compile_string zend_compile_阅读全文

Golang汇编命令解读

2016-12-05 10:12 by 轩脉刃, 694 阅读, 收藏, 编辑
摘要: 我们可以很容易将一个golang程序转变成汇编语言。 比如我写了一个main.go: 使用命令: 我们就获取了main.S是main.go的汇编版本。 首先这个程序根据TEXT是定义函数的,分为3个部分 这个"". 代表的是这个函数的命名空间。 g(SB) 这里就有个SB的伪寄存器。全名未Stati阅读全文