函数重构

原创 2012年03月26日 23:50:28

函数重构发生在什么时候

1、编写代码时

      编写的过程中一旦发现函数逻辑有点儿复杂,就要进行函数的重构。(这应该是函数重构最重要的时刻)

2、维护代码时

     1)  添加功能时,如果发现函数过于复杂,要进行函数的重构。

     2) 修改bug如果发现函数很难理解,很难维护,也要进行函数的重构。


重构3原则

原则1: 函数主题超过10行就意味着可能需要进行重构。

             1)函数要一样就能看出来在做什么

             2)编写代码的时候,一旦发现一个函数超过了10行,就要试图重构。

             3)函数主体不包括参数检查和是否需要进行处理的判断。


函数结构如何设计 

原则2: 要区分出不需要处理和需要处理的情况。

               在做主体处理之间要先排除不需要的情况:

                1)判断参数是否合法。

                2)判断内部状态或数据错误是否正确。

                3)对于这些不需要处理的情况,直接return或return错误。

                 内部数据或状态

参数                 函数                  结果


函数的三段式

XXX FUNC(......)
{
            //  参数合法性判断
            //  排除掉不需要做处理的情况
            //  正常的处理
}


函数逻辑如何设计

原则3: 要把What to do 和 How to do放在不同的函数

                1)What to do 和 How to do是不同抽象层次的事情,应该放在不同的函数中

                2)复杂的函数(需要重构的函数)往往是因为做了不同抽象层次低的事。


主函数:写做哪些事情(what to do)

主函数的主体只需要体现出来三种类型的结构: 分支结构、顺序结构、循环结构。

每一个处理都是一条赋值语句或调用一个子函数。(What to do)

How to do : 子函数1  子函数2  ... ...

C语言代码重构

一个小问题,代码写着写着,杂乱不堪,不忍直视。程序首先是写给人看的,然后才是计算机,于是乎,唯有重构 C语言的代码,以函数为模块  首先要注意的是命名,好的命名方式,函数的功能一目了然,加快理...

常用的代码重构方法

一.提取子函数 说白了就是一个大函数里,可以根据不同功能分成几个小函数,因为说不定,其他函数也可能会用到其中的函数 二.把大家都要用的方法放到父类中     所有对象都要执行同一个方法,那就把这个方法...

巧用匿名函数重构你的代码

匿名函数最早是LISP语言引入,后面发展为不仅是函数式语言所特有,在解释型语言和编译型语言中也越来越多地看到匿名函数的身影,它或许有个更潮的名字叫 lambda 表达式。 闭包多是用匿名函数实现...

翻译《有关编程、重构及其他的终极问题?》——7.不要在循环中调用alloca()函数

alloca()函数在线程的堆栈中分配内存,所以如果在循环中调用alloca()很危险,容易导致栈内存的溢出。有很多方法可以避免,比如使用循环内的栈变量替代(进入和退出范围会自动释放),或者在堆上分配...
  • headman
  • headman
  • 2016年12月07日 21:55
  • 329

1.OC第一个工程,类的设计,重构方法,构造函数

1.  OC:objective-c:面向对象的c  面向对象:把事务的过程分解到对象,强调对象的行为;  面向过程:强调解决问题的步骤,强调业务逻辑;  把大象关进冰箱:     1:冰箱...

JavaScript重载函数的实现【重构优化版】

前言:为什么我们需要JavaScript重载函数? 一把剪刀可以用来做什么? 剪刀可以用来剪纸,也可以用来剪鱼。 我们需要考虑的是更复杂的情况,如果我需要一剪刀下去,同时剪了“纸”和“肉”,这时才能达...

优雅编程之这样重构函数,你就“正常”了(十九)

开心一笑【猜猜:有2个人“明明” 和“偏偏”,那个长的比较帅呢??? 不考你脑力了!!! 当然是明明比较帅了! 明明可以靠脸吃饭,偏偏却靠才华!】提出问题项目开发中函数如何重构???解决问题以下...

重构笔记——搬移函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42679983         我们都知道,类往往因为...

重构笔记——内联函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42261333 在上一篇文章中介绍了“...

重构笔记——提炼函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42214393 在前面的三篇文章中介绍了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数重构
举报原因:
原因补充:

(最多只允许输入30个字)