Masutangu

也許我這一生 始終在追逐那顆九號球

水滴石穿-第二期

不积跬步,无以至千里;不积小流,无以成江海 A Little Architecture 文章以问答的形式,讲解了如何成为一名优秀的架构师。 成为一名优秀的架构师,不仅仅是知道如何选择数据库,选择框架。一个优秀的架构,业务逻辑不需要依赖底层的技术架构。 文章提出两个重要的原则: Dependency Inversion Principle The ...

回顾 2015 这一年

时间飞逝,今天已是12月的中旬。还记得年初我给自己定下了详细的计划和目标,转眼一年时间就快过去了。刚好今天公司年会,心里特别有感触,所以就提前回顾和总结下这一年的点点滴滴。 计划回顾 首先来看看我年初给自己定的计划: 完成度 [阅读计划:0%] 很惭愧,制定的阅读计划一本都没有读,这其实是有原因的。因为我发现自己的代码量远远不够,看书的话很有可能还是无法把理论和实践很好的结合起来。...

设计模式之控制反转

今天重新设计了Elric的logging模块,接触到了Inversion of Control设计模式,记录下分享给大家。注:本文定义介绍均取自wiki,代码样例取自Elric 定义 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。” 实现方法 实现控制反转主要有两种方式:依赖注入和依赖查找。 两者...

水滴石穿-第一期

不积跬步,无以至千里;不积小流,无以成江海 最近觉得自己需要开拓下视野,更多的了解外面的世界。之前看过湾区日报,觉得其形式很不错,简评+原文链接。所以我决定参考并扩展其形式,坚持读一些文章,听一些talk,并沉淀些笔记。 现在的想法是每个月出一期,每一期会推荐10-15篇文章/演讲/书籍等。如果大家有好的内容,非常欢迎推荐给我,一起探讨分享。主题不限,包括技术/产品/运营等等。 ...

FFmpeg 浅析

最近在做和转码有关的项目,接触到ffmpeg这个神器。从一开始简单的写脚本直接调用ffmpeg的可执行文件做些转码的工作,到后来需要写程序调用ffmpeg的API。虽然上网搜了别人的demo稍微改改顺利完成了工作,但是对于ffmpeg这个黑盒子,还是有些好奇心和担心,于是抽空翻了翻ffmpeg的源码,整理成文章给大家分享分享。 由于我并非做音频出身,对于音频一窍不通。ffmpeg整个也非常...

NSQ 源码解读之 NSQD 篇

接触go语言也有几个月了,从入门后一直用go写些小项目,语法和编程思维已经比较熟悉了,但是感觉很难再进阶一级,因此决定来读一读优秀的go项目源码。这篇文章名叫“解读”,其实有点言过其实。这里我主要是贴出我梳理的NSQ源码的代码架构,给出流程图,并提取其中比较精妙的代码来分析学习,算是比较粗糙。 为什么选择NSQ 知乎上不少人推荐 对消息队列挺感兴趣,想了解其实现。 关于N...

谈谈前后台协议

最近在做一款内容型的app,身为一枚后台开发童鞋,在开发新的功能的时候,初期总是需要制定和客户端的协议。在绕了不少弯路后,今天在这里总结一些经验,也算是一种沉淀。 制定协议最主要就是灵活,通用。针对一款内容型的app,你可能会有很多个页面,展示很多种元素,每个元素会是不同的类型。我们拿一款fm的app来做示例: 如果我们要开发上面这三个页面,你会怎么制定和客户端的协议? 我们先来简单...

应对反爬虫之换 Cookie

最近想玩一玩数据分析,却苦于没有数据。所以想写写爬虫抓些数据来分析分析。想来想去,把目标瞄准了新浪微博。虽然现在微博已经不太行了,但是毕竟UGC内容很多,并且都是短文本,感觉比较好处理些。 说搞就搞,通过抓包分析移动版微博,很容易就知道新浪微博的api接口(获取粉丝列表,获取微博列表),更爽的是,这些接口不需要登陆态,并且返回的都是json数据。本来我的目的就是分析数据,正好也不想花费太多...

Elric Change Log I

自从把Elric放在线上跑,到现在已经跑来小半年。也发现了些接口设计上的不合理和小坑。今天花时间改进了下,分享下改进的地方。 接口简化 之前的worker在往某个queue提交任务之前,需要调用add_queue()方法来先在master创建一个queue。同时worker也需要注册自己监听哪些queue,这里worker和master就有两个queue的交互,一条queue用于提交任务,...

谈谈我对 Golang 的理解

谈谈我对Golang的理解 一直想了解下go这门新的语言。前段时间看了Google IO上Rob Pike对Go语言的介绍,又过了下A Tour of Go。然后趁热打铁花了两天时间写了个比较有趣的脚本管理器Scripter。当然对Go语言的语法规范和代码组织还不了解,所以这代码写的有些凌乱。 回到主题,从开始看Google IO,到用Go写完了Scripter,加起来花了差不多五天。...