注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

大宝(sodme)的Blog

人生如戏, 梦一场; 岁月似歌, 任逍遥.

 
 
 

日志

 
 
关于我

执着, 务实, 勤于思考, 注重实效。我是大宝, 05年~11年2月在广州网易互动负责网游项目研发, 核心开发者, 网游行业六年从业经验, 主张并一直坚持实践研发+运营一体化产品观。工作内容涵盖:服务器研发/突发事件处理/产品技术攻坚、团队管理/培训、过程监控/改进、客服/运营管理等诸多方面。关注网游产品设计、研发、运营、市场完整流程构建和实践。现为创业公司项目合伙人。愿广结同道者, 共同进步。msn: sod_me@hotmail.com, mail&gtalk: sodme.dev@gmail.com

网易考拉推荐

防御式编程  

2006-12-18 00:02:23|  分类: 那一摞子书 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一直想为网络游戏的服务器端编程模式找一个最精确的词语来描述, 没想到, 我从<<代码大全>>的第8章得到了答案:"防御式编程".

这个词语, 如此准确的描述了我自从事网游服务器端设计以来的所有感想和体会:

1. 客户端是绝对不可信的, 网游服务接口是公开的接口, 你自己的客户端可以访问, 理所当然的, 别人写的客户端, 只要遵照你的协议, 也自然可以访问;

2. 前后相连的逻辑, 是一定要用状态机或类似于状态机的东西进行控制的, 状态控制的判断依据是: 指定的状态才是合法的, 非此状态的都是不合法的, 不要试图去列举非法状态加以判断, 而应该是以唯一的合法状态为依据;

3. 在你攻我守的过程中, 仍然要注意信息保密: 有些错误信息, 是不可以输出给客户端的, 以防此信息进而被客户端恶意利用, 而我们需要作的, 是在后台多作日志;

4. 开发期和发布期, 使用的防御策略是不同的. 开发期宁愿多崩溃, 易崩溃; 而发布期, 则应尽可能避免崩溃, 尤其是, 不能丢失客户数据. 软件的最终价值, 在于用户的认可和信赖, 而丢失数据这一项则足以让用户将此软件的评级定为: 不及格;

5. ......

第8章伊始部分, 便指出, 防御式编程的主要思想是: 子程序应该不因传入错误数据而被破坏, 哪怕是由其他子程序产生的错误数据.

而放在网游服务器的设计上, 我把它引申为: 服务器不应该因为客户端传入的错误数据而被破坏, 哪怕是由其他客户端(非官方)产生的错误数据.


  评论这张
 
阅读(572)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017