函数重构

原创 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语言的代码,以函数为模块  首先要注意的是命名,好的命名方式,函数的功能一目了然,加快理...
  • maochengtao
  • maochengtao
  • 2015年05月19日 17:20
  • 1977

c程序代码重构(摘)

本文为吾之拜阅Martin Fowler著,侯捷/熊节译>所摘,其书以java语言为基础写就,吾仅取其与c程序代码重构相关部分,至于思想云云...,亦只列出吾有体会之处. Duplicated cod...
  • tiananma0607
  • tiananma0607
  • 2015年10月30日 16:48
  • 684

重构--重新组织函数

重构手法中,很大一部分是对函数进行整理,使之更恰当地包装代码。几乎所有问题都源于过长的函数,这很讨厌,因为它们往往包含太多的信息,这些信息又被函数错综复杂的逻辑遮盖,不易鉴别。对付过长函数,一项重要的...
  • geqian2010
  • geqian2010
  • 2016年04月11日 17:52
  • 2047

重构笔记——搬移函数

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

函数重构

函数重构发生在什么时候 1、编写代码时       编写的过程中一旦发现函数逻辑有点儿复杂,就要进行函数的重构。(这应该是函数重构最重要的时刻) 2、维护代码时      1)  添加功能时,...
  • HMSIWTV
  • HMSIWTV
  • 2012年03月26日 23:50
  • 3539

自己写C语言一些基本函数,比标准库实现简单,提高嵌入式效率

  • 2017年04月19日 21:26
  • 5KB
  • 下载

代码重构(五):继承关系重构规则

陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段。其实重构伴随着你的项目的整个阶段。在前几篇关于重构的文章中我们谈到了函数的重构、类的重构、数据的重构以及条...
  • tutuzhuz
  • tutuzhuz
  • 2017年04月26日 10:00
  • 139

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

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

C语言函数调用的底层机制

这是一篇介绍C语言中的函数调用是如何用实现的文章。写给那些对C语言各种行为的底层实现感兴趣人的入门级文章。如果你是C语言或者汇编、底层技术 的老鸟或是对这个问题不感兴趣,那么这篇文章只会耽误您的时间...
  • maochengtao
  • maochengtao
  • 2017年03月12日 20:12
  • 656

C语言代码重构

一个小问题,代码写着写着,杂乱不堪,不忍直视。程序首先是写给人看的,然后才是计算机,于是乎,唯有重构C语言的代码,以函数为模块 首先要注意的是命名,好的命名方式,函数的功能一目了然,加快理解 再者...
  • destinyuan
  • destinyuan
  • 2015年05月07日 14:34
  • 858
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数重构
举报原因:
原因补充:

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