多点使用短函数

短函数的优点
服务器君一共花费了149.571 ms进行了4次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

还记得刚学编程那时关于“为什么要用函数”的问题吗?那就是把重复的代码归纳到一个函数中多次利用。这点毋庸置疑,大家也用的很熟了,但是除了这个还有什么改进空间吗?答案肯定是有的。

长函数有什么问题

大家都知道当一个函数很长的时候,就会造成阅读困难,那以前我们都是怎么解决的呢?

  1. 写注释:这个大家都知道怎么用,也是一种有效的方法。
  2. 用 #region 代码块:这个也是一个行之有效的方法。

还有什么别的方法吗?其实还有一个方法就是:使用短函数。在讨论短函数有点之前,我想先用一点篇幅来讲述一下什么时候改写注释。

什么时候该写注释

函数主要就有两个用途:

  1. 在 Class 和 别的函数、字段、属性前打三个 / ,就会自动生成供 VS 使用的智能提示内容。
  2. 解释代码意图。

第一点大家都会用,而且就这么用,没有什么替代的办法。但是关于第二点,注释未必是最好的解决办法。

因为如果一段代码让人看不懂,要么就是“英文看不懂”,要么就是“逻辑复杂”。注释是为了弥补它们带来的缺点,但是为什么不从根本解决呢?

“英文看不懂”:每个程序员都应该有一定的英文基础吧?另外注意命名规范,就可以解决了。

“逻辑复杂”:如果一段程序逻辑复杂,让人看不懂,你觉得你应该费力地去给别人解释呢?还是自己好好整理整理,把代码梳理一下呢?

那怎么梳理你的代码呢?短函数?

短函数的优点——有助于梳理代码

我想废话不多说了,都是程序员,大家一看代码就明白了。代码才是最好的注释,其实写的就是短函数的优点。

顺便提一下 region ,其实 region 在 VS 下的收缩功能可以达到差不多的效果,你可以选用这个,但是不是很推荐。下面,我还要和大家探讨一下另一个优点。

短函数的优点——可优化性能

关于这点,我是在《More Effective C#》中看到的,觉得非常好,所以推荐给大家。

把一个大函数拆分成很多小函数可以优化性能?这点看上去很可笑。是的,其实这点性能的提升微不足道,但是如果可以,为什么不做呢?更何况这样做还有上面说的另一个优点。

为什么长函数分割成短函数的时候可以优化 .Net 下的性能呢?

你首先要明白:.Net 下的语言编译的时候只是编译成了中间语言。运行的时候,它会再一次编译成机器码。这个中间语言编译成机器码是以一个函数为基本代为的。也就是说,每次调用函数的时候,这个函数才会被编译。

那长函数分割成了短函数有优势吗?代码量不还是一样的?纯粹的分割反而会产生更多的代码呢!

的确如此,所以说,这里还有另一个条件:当这个长函数中有很多分支的时候。

public void Func1()
{
    if(xxxx)
    {
        //代码段1,几百行
    }
    else
    {
        //代码段2,几百行
    }
}

上面这段代码,有两大段代码,每次调用这个函数其实只会执行一部分。所以,如果把这两块代码段提取出来,编译的过程中就会少编译一半的代码。

现在明白在什么时候把长函数分割成短函数能优化性能了吧。

虽然这点性能提升并不明显,但是,如果你一个函数中,有一个很大的分支。你在看代码的过程中,一定会看花眼,滚屏的过程中,都不知道自己现在身处在哪个部分。随意就算不考虑性能,也推荐把这样的代码分割成短函数。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1762,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1762

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《高性能网站建设指南》 桑德斯 (Steve Sounders) (作者), 刘彦博 (译者)

《高性能网站建设指南》结合Web2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。全书内容丰富,主要包括减少HTTP请求、ExpiresHeader技术、Gzip组件、CSS和JavaScript最佳实践、关闭ETags的技巧、Ajax缓存技术和最小化技术等。

更多计算机宝库...