产品开发实录(1)——代码重构

news/2024/5/19 17:35:44 标签: 产品, localization, 语言, 工具, flex, c
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

前言

    最近࿰c;正竭斯底里地重构class="tags" href="/tags/FLEX.html" title=flex>flex技术平台开发的class="tags" href="/tags/ChanPin.html" title=产品>产品【wizBuilder CS】。以前为赶功能࿰c;界面部分代码都写得好乱࿰c;现在是时候修理下自己作的孽了࿰c;顺便为class="tags" href="/tags/ChanPin.html" title=产品>产品添加多class="tags" href="/tags/YuYan.html" title=语言>语言支持(Localization)。

主要任务

  • 代码重构
  • class="tags" href="/tags/YuYan.html" title=语言>语言支持
  • 添加新功能、修改现有功能、去掉不合理的功能
  • 修正重构过程中发现的Bug

实录

类内部重构

    去掉、合并多余的变量࿰c;把简单的方法合并࿰c;把复杂的方法差分࿰c;使方法内代码行数适中࿰c;属性和方法以private, public顺序定义访问修饰。

    去掉this.代码࿰c;偷懒的人都喜欢用this带出智能感知写代码࿰c;但是࿰c;重构时记得把类里所有的this.替换成空字符。为什么?如下:代码更简洁࿰c;编译出的swf更小࿰c;匿名方法时this会是致命的Bug源。

    以前我习惯m_Value的规则定义私有变量࿰c;但是࿰c;最近又觉得_Value的方式更优雅…少个字符的好处多多啊:少敲个字母࿰c;代码更简洁࿰c;编译出的swf更小。~.~!

提取class="tags" href="/tags/GongJu.html" title=工具>工具类

    把经常用到的方法抽出来放到class="tags" href="/tags/GongJu.html" title=工具>工具类࿰c;例如:PathUtil࿰c;StringUtil࿰c;DisposeUtil等。class="tags" href="/tags/GongJu.html" title=工具>工具类建议是final修饰的࿰c;并且里面的方法最好全是静态方法static

抽象出接口

    把经常用到的方法抽象出来接口来类约束类的行为࿰c;例如:IDispose(用于资源释放控制)࿰c;IClone(用于数据复制࿰c;实现复制、粘贴操作时很好用)࿰c;ISeriailze(数据序列化转换控制)࿰c;ISelectable(容器子项选择控制)࿰c;ILocalication(多class="tags" href="/tags/YuYan.html" title=语言>语言支持控制)等࿰c;接口具体操作根据实际使用而定。

抽象出基类

    如果有几个类型概念很相似(属性和方法很相似)࿰c;可以提取公共部分的属性和方法作为基类࿰c;公共的属性和方法以protected让子类访问。

解耦

    再次看回【wizBuilder CS】的界面层࿰c;发现海量耦合得很紧的代码࿰c;例如:A包含B、C࿰c;B包含A、C࿰c;C包含A、B࿰c;这样的结果是࿰c;ABC循环的制约着࿰c;维护起来很困难。目标是改成只有C 包含A、B的情况。

归类归包

    例如:类C 包含A、B࿰c;说明A࿰c;B࿰c;C是发生关联的3个类࿰c;可以把A࿰c;B࿰c;C放到同一个命名空间下࿰c;如果只是C给外界调用࿰c;那么把A࿰c;B声明为internal。

cle>

http://www.niftyadmin.cn/n/1574761.html

相关文章

网站安全测试之支付漏洞检测与修复

前几篇的网站安全检测的文章,介绍的都是跟验证码以及用户逻辑功能方面的安全测试与防攻击方法,今天给大家深度的来剖析一下关于网站里含有支付接口的安全漏洞。许多商城网站,以及微信支付网站,在线游戏平台,发卡商&…

制作SCORM课件离线播放器(C#)

概述 SCORM标准的课程是e-learning比较常用的标准,但课程要放到LMS浏览才看到课件数据的交互很不方便,下面介绍.net写的SCORM课件播放器,方便离线浏览SCORM课程或用于SCORM的课件测试。 主要实现 建立winform项目,向窗体添加…

一杯敬产业,一杯敬消金:白电巨头们的金融“初心”

本周,有两家白色家电龙头在金融方面的新动态赶巧凑到了一块儿。 日前,美的金融在猎聘网发布了一则招聘消费金融副总经理的需求,该岗位职责之一是负责制定消费金融公司(筹备)发展战略并组织执行。 5月28日晚间&#xf…

Flex——IDispose接口

前言 C/C的开发,内存的管理是十分重要的课题,分配内存使用后要及时释放,否则内存泄漏导致内存耗尽。进入托管环境后,内存能够自动管理和回收,已经不用开发者太操心内存管理方面的问题了,在托管环境&#…

26期Linux20180531 单用户 救援模式 克隆虚拟机 linux机器相互登录

5月31日任务1.13 单用户模式1.14 救援模式1.15 克隆虚拟机1.16 Linux机器相互登录单用户模式忘记root密码?1. 单用户模式2.救援模式单用户模式首先需要重启linux (reboot, init 6, shutdown -r now 都可以重启)e-edit然后按 ctrl x 就会进入紧…

Flex——命令管理,Undo来Redo去

前言 Undo,Redo是编辑环境里常见的并且非常重要的功能,下面介绍【命令模式】在Flex/AS3下的实现。 ICommand接口 定义ICommand接口,其中Execute和UnExecute是相反的2个操作,Title属性用于命令显示,例如显示在操作历…

减少前端代码耦合

什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天。由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: 1. 避免全…

Flex通信篇——构建企业级HTTP通信层

概述 RIA和SOA是一对绝配。SOA强调把业务以接口方式向外界提供不关注前端的呈现,而RIA则强调用户体现,结合两者优势能够设计出用户体现良好、灵活的、易扩展、易集成的系统。要处理好RIA前端和SOA后端,需要搭建一个健壮的企业级通信层&#…