通信模型之“透明”

    今天是大牛走后的第一周,大牛走了,理所当然所有的代码变成我维护修改了。由于最开始写的是写一步算一步,现在0.0.1版release后发现代码结构有很多不合理,理所当然要重构。首先重构的当然是影响着整的前后台系统的socket通信。之前socket的设计是这样的:      前后台系统共用一个socket.dll,使用socket.dll来封装socket的部分。但是今天看代码时发现其实bg(后台程序)与fg(前台程序)分别加载时socket时,socket.dll分别在两个进程中都有一分部没……

我的C编码风格

首先声明一点,我是一个不相信注释的人,所以我的代码不会有很多注释,我代码的注释越多说明我实现的越蹩脚。我的大部分风格与linux kernel code style保持一致,又增加了一点自己的个人习惯。 1. 所有变量函数名全为小写,单词之间用下画线隔开 2. 所有宏全用大写,我把枚举变量的值也视为宏 3. 将Tab键设为8个空格 4. 从不设置编辑器将tab变成空格,在我看来,这简直是强奸民意,比如我自己的编辑器tab是8个空格,但是别人也许更喜欢4个空格呢? 5. 所有关键字与括号之间有空格,……

状态机

  从毕业到现在都没有写过博客了,一是没什么大的收获,二是这段时间发生了太多事,从入职到这段时间,思想经历了各种斗争。今天终于有了点值得写的东西,就暂时放下思想斗争记录一下新发现吧。   以前写代码时从来只知道有状态机,但是从来没有用过,这段时间因为代码开的线程太多了,程序吃不消,经高人指点才发现其实可以用状态机来用一个任务来模拟多个相似任务。下面就来分析一下状态机实现多任务的原理。   一个完整的代码是由数据和代码组成,由同一个函数创建的多个线……