qfiregame

这里。一个用于快速搭建2.5D的游戏的框架和工具集合。开发中,敬请期待。

Advertisements

codetooth 一些有用的 ActionScript3 工具类

可以在这里找到,长期更新中。

自动化工具

使用Perl已经一段时间了,再配合上bat就可以处理工作中所遇到的大部分问题了,相当的方便,节省了大量的重复性的劳动。

在Windows下工作的话,powershell也是值得一看的。

再加上AutoIt,在界面上的自动化,就比较的完美了。

代码注释、测试与文档

Q:为什么要写注释?

A:写注释是为了能够更好的说明代码的意图。对于那些写的十分漂亮的代码来说,代码本身就是一种很好的注释,可是重要的地方还是需要写注释的,不但为了自己,更重要的是为了别人。

Q:注释是为谁而写的?

A:为了任何会接触到这写代码的人,包括开发者、调用者以及后续维护的人员。有时候,带有注释的代码也会给人带来一种安心的感觉,不会因为大段的代码而马上头晕。文档注释更是这样,这不仅是为了表现的更专业,也是为了更好的团队配合。

Q:为什么要写测试?

A:怎么来保证写的代码是正确的呢,那么写测试代码就是一个很好的方法。同样,测试对于维护或继续开发的人员来说也很有用,当他调整原先的代码时,为了确定自己调整或添加的代码不会产生bug,只需要把原来的测试执行一边即可。

Q:测试为谁而写?

A:为了所有的开发人员更好的有自信的进行代码的编写,也为了项目的完整性。开发人员不会因为担心自己是在一个地基不稳的建筑上添砖加瓦而时常担心,整天忧心忡忡。而整个项目也不会因为没有完整的测试而成为一个没有经过验收合格的工程。

Q:为什么要写文档?

A:技术类文档无需长篇大论,点明意思就行。文档同样也是项目完整性的一部分,是了解整个项目的一个入口。

Q:文档为谁而写?

A:这里指的是技术文档,当然是为了让人员对目前的工作的内容有个整体而又明确的了解后,然后再去理解具体的内容,免得像无头苍蝇一样。

Over:生活中有很多三无产品,程序代码也一样,无注释、无测试、无文档的三无产品,谁都不想去做,也不想遇到。

奇偶校验

奇偶校验,这是最基础的校验算法。就从这个开始吧。
这里显示的是核心的算法,完整的见这里。

// 判断指定数据中,位为1的总是是否是偶数个

// 把每个位依次进行异或,如果最后结果是0,就表示有偶数个bit1,如果最后结果是1就表示有奇数个bit1

private static function hasEvenBitOne(data:ByteArray):Boolean

{

var xor:uint = 0;

var size:uint = data.length;

var byte:uint;

var bitMask:uint;

// 读取每个字节

for(var i:uint = 0; i < size; i++)

{

bitMask = 1;

byte = data[i];

// 利用位掩码,依次异或当前字节中每一个位

for(var j:uint = 0; j < 8; j++)

{

xor ^= ((byte & (bitMask << j)) >>> j);

}

}

return xor == 0;

}

服务端和客户端的通信模拟

 

 

两个应用程序。可以同来模拟服务端和客户端的通信,帮助开发。

服务端下载地址

 

 

 


客户端下载地址

二进制通信协议

源代码见:这里
这套通信协议的设计目的是为了能够通过自定义的二进制格式进行socket的通信。目前协议支持的类型有Int、Uint、Double、Float、Object、Array、Vector。协议的二进制的结构通过一个XML文件来配置。总得来说效果达到了,可是效率方面比AMF还差许多,经过测试主要是XML把速度给拖了下来。但是比起AMF,这套方案做到了,任何协议输入或者输出的数据都是有类型的,不再是Object,以及为AS3特别设计的Vector。
对于实时性不苛刻的情况下还是可以很好的胜任的。

Break Pane Law

“破窗效应”,这是第一次听到这个名词,是在一本计算机的书籍上,于是google了一下,说得还真有道理。

我们对于美好的事物总是不忍心去破坏,反而会向着这种美好去靠拢。但是如果是一个丑陋肮脏的事物,大多数人会去避免接触它或者破罐子破摔,而只有少数的人有这个勇气去改变。然而即使下定了决心去改变的人,也需要花费成倍的精力去做才能得到很小的进展。

生活中是如此,写程序的又何尝不是如此呢。代码就好像是一篇篇文章一样,好的代码让人读起来能够感到心情愉快,并且希望自己也能参与到这么好的写作中,而且要尽最大的努力来写好。可是糟糕的代码却是完全的相反,再也不想看下去了,什么,还要让我参与到这个写作里面,而且是必须的,那好吧,就随便写两笔吧,反正已经是如此的糟糕了,我的一点小小的润色根本是无济于事。

当然完全的避免”破窗效应”还是太理想化了,有人会说,窗户破了没关系,先能用起来就行,等以后慢慢的把这一扇扇的破窗换掉就行,孰不知,当还没来得及换掉这些破窗户的时候,你的房子已经被一个大的垃圾场给包围起来了。

所有我包容不了的东西,都会遭到抛弃

如果这句话出自某个人的口中,那么这个人的心胸不能说是很狭窄,至少不够宽广。如果这句话是某个员工对领导说的,那么这位员工以后的日子就不会太好过了,一个亮明了自己是没有包容心的人,机会会越来越少。反过来,如果是boss对全体员工说这样的话呢,那结果就有两种可能。一、这家是垄断企业,那它肯定还是屹立不倒;二、这家企业有竞争对手,那它肯定不会长久了。

城市在不断的扩张,在落后的公共交通和高昂的出行费用上,产生个多种的交通工具(此处以电摩为例),可有人(以下称为反方)就非得以速度快、易产生交通事故为由,禁掉它,因为包容不了所以就得抛弃。而在反方举出的种种证据中,明确的显示了,凡是交通事故中涉及到电摩的,无一例外都是某一方没遵守交通法规而导致的。所以这到底是我们的交通工具的错,还是原来的制度就不健全的原因,是真的包容不了,还是没有能力去包容。只有无能的人才会把错归结到没有生命的一堆钢铁塑料上。如果连交通法规都不能真正落实到位的话,还有什么能落实到位呢?

其实这样类似的事很多,只是上面举的例子正好发生在了身边。似乎在这里我们不用去想问题的根源和解决办法,而想的是谁更有权利,然后用这种权利去压倒一切。