原文来之:http://hi.baidu.com/mr%5Fziqiang/blog/item/5565c013ad1b930b5baf5347.html
重构是需要勇气和抗压能力的,因为一些原因让我下决心来完成客户端的重构。
1、需求基本都定型了。
2、以前的代码像团乱麻,全部通过关键的全局变量紧密耦合,牵一发动全身。
3、培养的两个人相继离开,让我开始反思如何让人员流动对项目影响最小。
4、以前的东西想到哪做到哪,根本没有任何架构可言。各种代码注释不清,换一个人基本没法改。
5、UI面上冗余数据太多,可没人敢删东西。
6、很多逻辑已经实现,在重构中可以节省考虑逻辑的时间。
我想很多开发Flash项目的公司或者团队都有着同样的问题,一开始策划不明确,数据结构来回改。一边需要建立基础引擎,一边需要准备随时修改,最重要的是工期还在天天逼着你。很多时候我们也就以先实现再说了。
这样的做法并没有问题,不过我们需要有一个人随时关注我们的改变,一旦需求成型我们应当如何迅速形成架构,建立标准和规范。
Flash网游的客户端架构其实并不算复杂,一个典型的MVC结构可以描述完。接下来就是如何来为MVC定义。
模型其实是最好设计的,但是他和我们的策划息息相关,策划不明确我们的模型事件就不好确定。
视图的实现比较简单,不过Flash里面的组件实在太难用了,根本就不是为游戏开发准备的,ASWing由于不是很熟悉我们没有采用。现在的做法是从编码命名上来做规范,使用黑羽的建议,所有AS文件中有关fla素材的内容全部使用"__"双下划线开头,并且所有的UI类都必须有一个initView方法将素材和私有变量关联。这样即使以后需要换肤,只要按照继续按照这个规则。我们仍可以很快实现。
控制层的规划是最不好做的,控制层负责了服务器指令和客户交互等等事情。我现在还在对控制层修改。
提一下通讯层和协议设定:通讯层不算复杂只负责接收数据把各个解析出来的完整数据包丢出来,通过事件让某个控制器接收就行了。通讯层的独立的优点几乎不用说了,什么时候想加密解密或者干点其他的修改就靠他了。
协议设定其实也没啥规定,不过我的做法基本是完全跟着模型(M)走,一个协议只负责一种模型的数据,如果一个操作会对两个模型数据变化,那么就走两个协议,谁也不挨着谁。这样控制器的工作也会单纯一些,谁的就是谁的都别抢。
最后说一下如何控制人员的问题对项目的影响,当然就是一个成型架构+代码工人的模式了。
过些日子发一点用EA软件重构系统的心得和图片。
分享到:
相关推荐
而AS3(ActionScript 3)作为Adobe Flash Platform的主要编程语言,曾经是开发网页游戏的主流工具。本篇将围绕“塔防游戏客户端源码”进行深入剖析,旨在为对AS3编程和游戏开发感兴趣的读者提供宝贵的参考资料。 ...
Flash曾经是创建动态网页内容、动画以及交互性应用程序的常用工具,而JavaScript则是一种客户端脚本语言,用于增强网页的动态功能。两者结合可以实现更丰富的用户体验。 在Web开发中,Flash和JavaScript的集成主要...
因此,了解如何用现代Web技术重构旧的Flash项目也是现代开发者必备的技能之一。 综合以上,"西安腾讯网首页flash焦点.rar"这个压缩包文件代表了一个融合了Flash和JavaScript技术的焦点图项目,涵盖了前端开发的多个...
"Flash全站"表明网站的前端设计和用户体验主要依赖于Flash技术,而"网站源码"则提示我们这是一套可编辑和可部署的代码,可以用于个人项目或者教学目的。 【压缩包子文件的文件名称列表】:东森广告 根据提供的...
4. 网站架构:分析源码,理解网站的目录结构和文件组织方式,这对于理解和重构现有代码至关重要。 5. 错误处理和调试:学习如何在ASP中设置错误处理机制,以及使用调试工具来查找和修复问题。 6. 安全性:了解ASP...
【标题】"迅雷影视flash广告展示.rar"揭示了这个压缩包内容主要涉及的是迅雷影视...通过对这些知识点的深入了解,可以更好地理解和重构迅雷影视平台的Flash广告展示,使其符合现代Web标准,同时保持优秀的用户体验。
【标题】"js Flash+xml 翻牌广告方格墙效果.zip" 提示我们这是一个包含JavaScript、Flash和XML技术的项目,旨在实现一种翻牌广告的方格墙效果。这种效果通常在网页中用于吸引用户的注意力,展示产品或服务。 在网页...
- **服务器端Flash内容处理**:例如,服务器需要解析客户端上传的SWF文件中的ActionScript代码,进行安全检查或内容过滤。 - **ActionScript到Java的桥接**:将ActionScript代码转换为Java,以便在Java环境中运行或...
尽管Flash平台并非专门为移动设备设计,但从开发工具和编程模型的角度来看,二者都主要用于客户端或浏览器端的应用程序界面与逻辑层开发。因此,开发者能够轻易地发现两者之间的共通点。 在功能层面,无论是...
根据提供的压缩包文件名“ASP.NET-[整站程序]flash小游戏网站_flashgamesrc.rar”,我们可以推测其中可能包含的是该网站的源代码文件。"src"通常是源代码的缩写,意味着这个RAR文件可能包含了ASP.NET项目的所有源...
这个资源属于“脚本资源-Ajax/JavaScript”类别,这意味着它的核心在于JavaScript,一种广泛用于网页交互和动态效果的客户端编程语言。JavaScript可以修改HTML内容、处理用户事件、执行异步通信(Ajax)等,从而实现...
这是一个基于Java Applet技术开发的小游戏项目,名为“大鱼吃小鱼”,是对经典Flash小游戏的模仿。在本文中,我们将深入探讨这个...通过分析和重构这个项目,开发者可以提升自己的编程技巧,同时也能感受到编程的乐趣。
1.4.1基于Macromedia Flash的方案 1.4.2 Java Web Start及其相关技术 1.5 小结 1.6 资源 第2章 Ajax新手上路 2.1 Aiax的关键元素 2.2 用JavaScript改善用户体验 2.3 用CSS定义应用的外观 2.3.1 CSS选择器 2.3.2 CSS...
"flashcards-client" 是一个专为软件开发人员准备面试而设计的应用程序,它采用抽认卡(Flashcards)的学习方式...通过深入理解和重构这个抽认卡客户端,开发者不仅能提升技术能力,还能更好地准备应对实际的面试挑战。
【标题】"4屏横向flash+js带缩略图自动切换焦点图代码"涉及的核心技术是网页设计中的焦点图展示,这种...但鉴于当前的技术趋势,可能需要将Flash部分重构为HTML5的解决方案,以确保在更多设备上的兼容性和性能优化。
6. **开发工具支持**:对于客户端开发,有各种IDE和工具支持AMF连接,如Flash Builder和IntelliJ IDEA,它们可以帮助开发者调试和优化AMF通信。 7. **社区与文档**:AMFPHP拥有活跃的开发者社区和丰富的文档资源,...
2. **Bootloader重构**:Bootloader是系统启动的第一部分,它需要被重新规划以支持自动检测和应用更新。通过设置状态标志,Bootloader可以在检测到更新存在时自动跳转到更新模块。 3. **读写算法优化**:固件的更新...
JavaME包括一套丰富的API,开发者可以利用这些API来创建功能丰富的应用,比如我们的网页在线查看文档服务。 对于在线查看文档,核心的技术涉及文件转换和浏览器渲染。首先,服务器端需要有能力处理多种文件格式,如...
然而,对于非Windows系统,可能需要通过其他技术(如Java或Flash)来提供相似的功能。 客户端和网站端的交互是现代IT解决方案的关键部分。在PowertalkBox中,客户端可能是一个桌面应用程序,用户可以直接在本地运行...
- **优势**:无需对现有系统进行大规模重构,即可实现RIA的高级功能。 综上所述,Flex作为一种先进的RIA开发框架,不仅提供了强大的客户端表现能力,还保持了与传统Web技术的良好兼容性,为构建高效、交互性强的...