`
文章列表
一 Rename Method 函数的名称和函数本体的语义差太大了,或者没有准确表达出,函数本体【做什么】     二 Add Parameter 三 Remove Parameter   根据需求而定。     四 Separate Query from Modifier 将查询函数和修改函数分离 getTotalOutStandingAndSetReadyForSummaries = 》 getTotalOutStanding + setReadyForSummaries        
一 Decompose Conditional 分解条件式 你有一个复杂的的if then else 语句   动机:    程序之中,复杂的条件逻辑是导致复杂度上升的地点之一。一必须编写代码来检查不同的条件分支、根据不同的条件分支来做不同的事情,然后很快你就得到了一串很长的函数。大型函数的自身就会使代码的可读性下降,而条件逻辑则会使代码更难阅读。   做法:     1.将if 段落提炼出来,构成独立的函数     2.将then段落和else段落都提炼出来,各自构成一个独立的函数     3.如果发现嵌套的条件逻辑,我通常会先观察是否可以使用 Replace nested Condiat ...
一。 Move Method 动机:函数搬移是重构理论的支柱。如果一个Class有太多的行为,或如果一个Class与另一个Class有太多合作而形成高度耦合,就需要搬移函数。通过这种手段,我可以是系统中的Class更简单,这些Class最终也将更干净利落的实现系统交付的任务。 常常我会浏览Class的所有函数,从中寻找这样的函数:使用另一个对象的次数比使用自己所驻对象的次数还多。一旦我移动了一些值域,就该做这样的检查。一旦发现有可能被搬移的函数,我就会观察调用了她的那一端、她调用的那一端,以及继承体系中他的任何一个从定义函数。然后,我会根据这个函数于那个对象的交流比较多,决定其移动路径。   ...
六 Remove Assignments t Parameters   你的代码对参数进行赋值的动作。在As3 中除了那些 基原数据 如 String Number int uint Boolean 是安值传递,其余的传递的都是引用值。   所以在As 3.0 中不存在这个问题。   七 Replace Methord with Method Object    你有个大型函数,其中对局部变量的使用,使你无法采用Extact Method .    动机:小型函数具有其优美动人之处,只要将它重大型函数中提炼出来,就可以大大提高代码的可阅读性。但是局部变量的存在会增加分解函数的难度。Repla ...
五 Split Temporary Variable    你的程序的有某个临时变量被赋值超过一次,她不是循环变量,也不是集用临时变量。     动机:临时变量的各种用途,其中某些用途会很自然的导致临时变量被多次赋值,如果是这样,就说明他们负担了过多的责任,(循环里面的那个不算他的任务就是那样的),那他们就应该被换掉,分为多个变量,没个变来那个承担一个责任,来清晰代码。     做法:   很简单,看下列子       eg.    下面的列子要计算一个苏格兰布丁的运动距离。在起点处,静止的布丁会受到一个初始力的作用而开始运动。一段时间后,第二个力作用,让她再次加速。根据牛顿第二定律,我们可以 ...
二 Inline Method     一个函数的本体应该于其名称同样清晰易懂。     动机:如果你遇到的函数,其内部代码和其名字同样清晰易懂,你因该去掉该函数。     做法:1.检查函数,确定它不具多态             2.找出这个函 ...
重新组织你的函数 Compsing Methords    一 Extract Methord  动机:Extract Methord是最常用的重构手法之一,当我看到一个过长函数或则一段需要注释才能让人理解用途的代码的时候,我会将这段代码放到独立的函数中去。如果函数的粒度都很小(finely grained)那么函数间彼此服用的机会就更大,其次,这会使高层函数读起来就像一系列注释,而且函数的复写(override)也会容易些。一个函数长度不是问题,关键在于,函数名称和函数本体之间的语义距离 (semantic distance),如果提炼的动作可以强化代码的清晰度,那就去做,就算函数名比 ...
  1.重构:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其理解性,降低其修改成本。   2.为何重构:     1. 改进代码设计(重构的最终目标就是 设计模式)     2.使代码更易被理解(提高代码质量)     3.帮助你找到臭虫     4.帮助你提高编程速度   3.什么时候重构呢?     三次法则,第一次做某事只管去做,第二次做类似的事会产生反感但是去做了,第3次在做类似的事就应该重构。     1.添加功能时一并重构     2.修补错误时一并重构     3.复审代码时一并重构   4.重构对性能的影响?     重构必然会使软件运行变慢但是它也是软 ...
flash 中的屏幕更新主要分为两种:    1.scheduled update (主要)    2.post-event update 一。scheduled update    flash中的帧分为两种     a. Flash Player Frames    b. SWF Frames    swf 帧就是我们在使用Flash Ide是看到的时间线的帧,包括帧上的内容和帧上的代码    Flash Player帧的概念,是flash执行时的帧的概念,包括运行该swf帧上的代码和render 帧上的内容输出,和代码生成内容输出 下面的图呢过说明两者之间的关系:     其中 ...
        2009年1月23号,离放假还有 4个小时,没事翻翻 BitmapData ,正在研究threshold 函数。           做了一好玩效果的swf, 。         祝新年快乐!!!,希望大家和我自己在新的一年万事顺利!!!!!       package { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.events.*; public class B ...
    web_cilent 这是我来 A 公司做的时间最长,工作量最大的一个作品了,目标是实现各种印品的在线制作和预览。 采用MySql + REST + ROR + Jester + FABridge + PureMVC 的架构,能灵活支持各种产品的制作。        制作的难点有:     1。web版没有在单独设计数据可沿用的Dephi桌面版数据库设计,可能在Dephi中有些字段的设计是针对 Dephi的但是在flash也要使用改字段。     2。对在Dephi中实现的遮罩图片,边框图片 也要在flash中用,并且Dephi中实现的方法和flash中不同,但是flash要显示出 ...

作品分享

     可以支持插入博客、空间的一个 用户作品分享的flash很简单,这个是 炫动分享的一种效果,所以很快就完成了。        
    这是我到 A 公司做的第一个东西,翻书预览,还好很顺利的做完了。但是后来,需要改一成,书是需要带 边界的书,日,这个改动把我搞死了,需要改到 翻书组件的代码,很痛苦,不过后来还是顺利改出来了。     
     这个东西做了大概两个星期,还有11中效果的swf没有上传,公司后来放弃了。                       

QQ AIR

   这个做的比较早,当时在学FMS,于是就有想做QQ的冲动。做的功能比较简单,源代码已经找不到了,只有一个截图留下。     
Global site tag (gtag.js) - Google Analytics