一个关于luasocket使用的很蠢的问题

今天遇到了一个问题,服务端给客户端发包,偶尔会出现客户端无法解析的情况。我们服务端采用的skynet,客户端使用的是luasocket,协议采用的sproto。

照例首先不怀疑库的问题,肯定是自己的原因,而且应该是比较蠢的问题。首先问题出现在某一个协议上,这个协议每次发出去,客户端都无法解析,然而从proto文件里无法看出任何差别,也尝试修改了其他几个协议来尝试,并没有发现使其必现的规律,折腾了半天。最后只好动用VS,单步调试,内存跟踪,最终发现一个问题,服务端发出的包内容和客户端收到后拿给sproto解析的包内容不一致!
继续阅读

cocos-lua Scene介绍

cocos-lua里的Scene是对cocos2d的scene进行进一步的逻辑封装,增加常用的功能及方便管理,整个游戏都由一个个Scene来构成,所有的表现代码都应该在Scene里完成,而所有的Scene都由SceneMgr来管理,

SceneMgr

管理场景模版。

管理场景实例。管理结构为由Scene构成的栈,通过LoadScene和UnloadScene完成进栈和出栈,其中第一次加载需要用FiresLoadScene。

接口列表:

继续阅读

金山这几年--程序员的信仰(二)

“信仰是指对一个人(同样的对他的能力)、事物、神、宗教的教条或教导、没有经验证据的观点(例如拥有强烈的政治信仰)抱有信心和信任。” 维基百科如是说。

做为一名程序员,在金山的经历也使我拥有了一种编程信仰,我相信通过正确的方式方法可以写出优质没有bug的程序(是真的没有bug,而不是自己的声称)。只有你相信了它,你才有了这种可能去做到。

PS:至今还没有人从Tex的bug悬赏金中大幅获利给了我们这种教徒以极大的曙光。

继续阅读

金山这几年--program in project(一)

不知不觉在金山已经呆了近五年,这段时间里犯过很多错误,同时也学到了很多东西,既然已经离开,那也该为这段时间好好的做个回顾。今天就先来谈谈在编程技术这块吧。

首先声明,我谈到的技术相关的东西都是指在项目中的经验,那些纯粹的追求技术的人和在学术上追求的人,这些东西可能对你们来说毫无意义。 ^_^

继续阅读

不要迷信面向对象

还记得以前刚开始学编程那会,还不太理解面向对象,后来第一次弄明白面向对象的概念的时候,觉得这个棒极了,将所有问题都抽象成对象来解决,再后来再接触设计模式的时候,觉得简直精妙极了。但是今天我想说的是,不要太过于迷信面向对象,它也有局限性。

面向对象可以令很多问题分而治之,划分对象,对象之间通过接口沟通,对象内部解决自己的问题,降低问题的复杂度和代码的耦合度。这种模式这么好,它会有什么问题呢?以前我也从来没有想过这个问题。直到来到西山居,参与九天神话项目。这个项目与西山居以往项目一个很大不同在于lua的大规模运用,所以开发过程中基本会以lua为主。习惯了C++编程的人刚开始在用lua的时候会很习惯按C++的风格来编写lua的代码(当然我是以我为例,我相信很多人会跟我一样,因为旁边的人也是这样),但慢慢的,我开始考虑动态语言与静态语言的区别究竟在哪里?
继续阅读