函数

作者: 小焲 | 来源:发表于2017-08-15 22:56 被阅读0次

短小

函数的第一规则是要短小;第二条规则则是还要更短小
函数应该20行封顶。

  • 代码块和缩进
    if语句、else语句、while语句等,其中的代码块应该只有一行,该行大致是一个函数调用语句。这样不仅能保持函数短小,而且因为块内调用的函数拥有较具说明性的名称,从而增加了文档的价值。
  • 只做一件事
    函数应该做一件事。做好这件事。只做这一件事。
    判断函数是否做了不止一件事的一个方法就是能否再拆出一个函数,这个函数不是单纯的重新诠释其实现。
    只做一件事的函数无法被合理地切分为多个区段。
  • 每个函数一个抽象层级
    要确保函数只做一件事,函数中的语句都在同一抽象层级上。

自顶向下读代码:向下规则
我们想让代码拥有自顶向下的阅读顺序。我们想让每个函数后面都跟着位于下一抽象层级的函数,这样一来,在查看函数列表是,就能循抽象层级向下阅读。我们把这叫做向下规则。
换一种说法我们想要这样读程序:程序就像是一系列TO起头的段落,每一段都描述当前抽象层级,并引用位于下一抽象层级的后续TO起头段落。

  • switch语句
    对于switch语句,如果只出现一次,用于创建多态对象,并且隐藏在某个继承关系中,在系统其他部分看不见,就还能容忍。

使用描述性的名称

选择描述性的名称能理清关于模块的设计思路,有助于改进。
命名方式要保持一致。使用与模块名一脉相承的短语、名词和动词给函数命名。

函数参数

零参数函数 优于 单参数函数 优于 双参数函数;因尽量避免三参数以上的函数。
输出参数比输入参数要难以理解。我们惯于认为信息通过参数传入函数,通过返回值从函数输出。我们不太期望信息通过参数输出。

  • 一元函数
    向函数传入单个参数有两种极普遍的理由。

    1. 问关于那个参数的问题
    2. 操作参数

    还有一种不那么普遍但仍极有用的单参数函数形式,那就是事件。在这种形式中,有输入参数无输出参数。
    所以我们在命名时要注意名称的区别,让读者能轻易分辨是哪种类型。

  • 参数对象
    如果函数看起来需要二个、三个和三个以上参数,就说明其中一些参数应该封装成类。

  • 动词与关键词
    给函数起个好名字,能更好的解释函数的意图,以及参数的顺序和意图。对于一元函数,函数和参数应当形成一种非常良好的动词/名词对形式

其他

  • 分隔指令与询问
    函数要么做什么事,要么回答什么事,但二者不可兼得。函数应该修改某对象的状态,或者返回对象的有关信息。
  • 使用异常代替返回错误码
  • 抽离try/Catch代码块
  • 错误处理就是一件事
  • 别重复自己
  • 结构化编程
    每个函数、函数中的每个代码块都应该有一个入口、一个出口。这意味着每个函数中只该有一个return,不能有break或continue语句,而且永永远远不能用有goto语句。
    但是只要函数保持短小,偶尔出现的return、break或continue语句没有坏处。但是goto在小函数中应该尽量避免使用。

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

      本文链接:https://www.haomeiwen.com/subject/dhgvrxtx.html