自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crylearner的专栏

about C/C++ , data structure and algorithm

  • 博客(7)
  • 资源 (19)
  • 收藏
  • 关注

原创 一个简单RPC框架是如何炼成的(VI)——引入服务注册机制

开局篇我们说了,RPC框架的四个核心内容:RPC数据的传输, RPC消息协议, RPC服务注册, RPC消息处理。接下来处理RPC服务的注册机制。所谓注册机制,就是Server需要声明支持哪些rpc方法,然后当客户端发送调用某个声明的rpc方法之后,服务端能自动找到执行该请求的具体方法。1. 引入服务注册的方式也是为了代码解耦,将req的处理与具体的req消息内容解耦。2. 上面我们 引入了两种服务注册的方式,一种方式是普通的方式,逐个添加方法。另一种方式通过python的“反射”技术,自动查找一个服务

2015-07-20 22:52:08 3809

原创 一个简单RPC框架是如何炼成的(V)——引入传输层

开局篇我们说了,RPC框架的四个核心内容RPC数据的传输。RPC消息 协议RPC服务注册RPC消息处理   接下来处理数据传输。实际应用场景一般都是基于socket。socket代码比较多,使用起来也比较麻烦。而且具体的传输通道使用socket或者其他的方式,如更上层的http,或者android里的binder,都是可替换的,只是具体的一种实现而已。所以,这里我就偷个懒,只是

2015-07-20 22:47:41 2081

原创 一个简单RPC框架是如何炼成的(IV)——实现RPC消息的编解码

之前我们制定了一个很简单的RPC消息 的格式,但没有实现相应的encode和decode方法,下面我们处理掉这个编解码问题。这里我还是简单原则,重点在于晓义嘛。利用python里的两个运算。 str 和eval,实现编解码。

2015-07-19 19:29:16 2666

原创 一个简单RPC框架是如何炼成的(III)——实现带参数的RPC调用

上一篇,我们制定了一个很简单的RPC消息 的格式,但是还遗留了两个问题我们并没有实现相应的encode和decode方法,没有基于可以跨设备的字符串传输,而是直接的内存变量传递。现在的RPC request不支持带参数的请求命令。如add(a, b), 如何在RPC消息中描述参数a,b 。我先来实现第二个问题,即带参数的RPC调用。其实,也没什么太大不同。既然是要带参数,那

2015-07-19 08:39:23 5314

原创 一个简单RPC框架是如何炼成的(II)——制定RPC消息

开局篇我们说了,RPC框架的四个核心内容RPC数据的传输。RPC消息 协议RPC服务注册RPC消息处理下面,我们先看一个普通的过程调用class Client(object): def __init__(self): self.remote = None ## # 内部是委托给远程remote对象来获取结果。

2015-07-16 21:22:09 2789

原创 一个简单RPC框架是如何炼成的(I)——开局篇

开场白,这是一个关于RPC的相关概念的普及篇系列,主要是通过一步步的调整,提炼出一个相对完整的RPC框架。RPC(Remote Procedure Call Protocol)——远程过程调用协议,基于C/S模型。有四个核心内容:RPC数据的传输,RPC消息的表示与编解码,RPC服务注册,RPC消息的任务处理机。这个RPC框架的搭建,庄稼人将采用python作为开发语言,是从原始的普通调用开始,然后一步步的演化,最后生成一个完整的Rpc框架

2015-07-16 21:20:04 9243 1

原创 读书报告之《修改代码的艺术》 (III)

《修改代码的艺术》,每次读来,都会相当重构,正如作者自己就说到的:从技术上讲,书中列到的解依赖技术,都是重构技术,因为他们都保持了代码的行为。这里庄稼人再多引用《大话重构》中的一句话:先重构我们的系统,使之可以应付那个需求,然后再添加代码,实现新需求。是的,正如读书报告(I)中所阐述的,引入单元测试,本质上就是做定制需求。作为最后一篇,来总结一下最后的解依赖技术。核心思想就是泛化,这里

2015-07-06 22:11:56 886

doxypypy--- Doxygen filter for Python

一个用于将python文档化的doxygen的 inputfilter。 原理是将python的docstring转换为类java doc风格的## #注释。然后由doxygen去自动化生成文档。这个版本增加了中文支持。原版地址https://github.com/Feneric/doxypypy

2014-08-24

TCPParser -- follow tcp stream by python

wireshark自带的follow tcp stream提取出的stream 数据没有时间戳等其他信息,在分析数据的延时和丢包问题时就有些力不从心了。这里简单用python实现了一个简单follow tcp stream功能,同时保留了tcp信息。

2014-08-20

CommonMakefile的帮助文档

对CommonMakefile的帮助文档,概要介绍了如何使用、实现原理、定制扩展等。虽然不是很完整,但聊胜于无,现在工作也比较忙,短期内都不会再补充了。

2014-08-12

通用的makefile模板

通用的makefile模板,支持模块化编译,支持多平台,支持多项目配置。 简单配置,只需添加源文件列表和指定编译目标,就可以直接编译。 支持添加test。 默认包含gtest测试样例

2014-01-14

开发策略培训示例

开发策略之宏控使用

2013-11-27

pydev的eclipse插件

pydev的eclipse插件

2013-11-27

重构——改善既有代码的示例代码

大部分取自《重构——改善既有代码》一书,部分取自其他书籍或者自编。 每一项重构对应一个package。 CodeRefactor 工程是重构前的代码 CodeRefactorExcise 是重构后的代码 里面的重构步骤与《重构》一书微有差异,差异点主要是为了更适合的应用Eclipse自带的重构选项。

2013-04-10

windows下的android源码的批量git处理脚本

windows虽然可以直接下载android源码, 但由于没有repo工具,只能手动地一个一个地去处理Git仓库,比较繁琐。 这个工具可以实现批量处理git 命令,包括git clone, pull, checkout等等。 使用方法: 启动git bash, 输入python Gitbat.py -c "git clone" -e即可。

2012-06-30

C++编程规范

很不多的一份近似于工具书的C++学习资料。书名不太好,有歧义。此书不是讲述C++的代码规范,而是讨论设计规范。C++进阶人士绝对应该看一看的好书。

2012-06-28

STL C++标准模板库参考手册

C++标准模板库的参考手册 小巧玲珑,查阅方便。在理解STL基本原理后,此书既可以温习之用,又可以做字典查询之用。

2012-06-28

C/C++参考手册

简明的c/c++参考手册 如果需要快速索引某个函数或者知识点,这就是您想要的。 里面同时包含了C的标准库的函数说明。

2012-06-27

Adb log查看工具之excel 模板

这是填充形式的excel模板 将其重命名并覆盖原来LogViewer/Util/log_template.xlsx 即可

2012-06-23

android adb log查看工具

人见人爱的adb log 查看工具,您值得拥有! 有时候需要分析一个adb log,但是将log从ddms保存为文本文件后,不能再用ddms打开查看,而一般的文本编辑工具查看这些log时都不是很方便。 这个工具巧妙地利用了Excel的数据筛选功能,使可以用excel查看log,而且效果更胜于ddms。

2012-06-23

深入C++对象模型的读书笔记

深入C++对象模型的读书笔记 主要是将C++对象模型的内容做了提炼,关注更常用的一些知识。 内容基本依照原文,未作改动。实验中,也感觉此书与当下C++编译器脱节严重,有些东西不是太适用了,但仍不失为一份好的参考资料,但不可当作标准。

2012-06-22

C++ProgrammingGuide

讲述C++入门基本知识,但绝对不简单 主要内容只有几点 构造函数、析构函数、拷贝构造函数、赋值运算符 运算符重载,包括如何重载各类运算法及注意事项 对象的内存布局,参考自 深入C++对象模型

2012-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除