Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

怎样, 函数, 拆分, 分为, 小的

  小函数越小越有优势力。“设计良好的函数往往比较小,而过大函数的设计往往一塌糊涂,或者存在很大的优化空间。”
  
  也许您认为讨论函数的大小没有必要,原因是函数设计的本质是内聚,它的大小只是它的表现形式。而上面的原因有必要让咱们讨论一下函数的大小问题。
  
  我对函数的核心思路:我提出具体代码如下最小处理单元的概念:一个基本具体操作办法(赋值,比较等),一个函数调用(包括调用后判断返回值进行判断)都看成一个最小处理单元。那么,一个函数,最小处理单元合理的个数范围在7以内。如果超过了7,您就要考虑把他们拆分成多个函数了(为什么是7?人同时能够处理的信息不超过7个)。
  
  最小数目没有限制,即便是只有1个,也有存在的必要。
  
  在下面的情况下我会将函数拆分为更小的函数:
  
  1、一眼不能够看到函数所有的具体代码如下。
  
  如果函数过长,无法一眼看到一个函数所有的具体代码如下,我会毫不犹豫的拆分。我不想让读者去翻屏,也不想让读者前顾后盼,顾此失彼。漂亮的函数应该让读者一眼就知道他在做什么以及怎么做的。
  
  2、局部变量过多。
  
  如果局部变量超过七个,我会考虑拆分函数。变量过多意味着我要记录太多的状态,这会加重我大脑的负担,同时要考虑太多的东西。这也同时意味着我可能没有对函数功能进行深入的思考。
  
  3、太多的缩进。
  
  太多的缩进意味着太多的嵌套,要么是循环,要么是判断,都会导致复杂的逻辑。
  
  4、如果您在使用ctrl c和ctrl v
  
  那您写的具体代码如下不够拽(DRY,Don’tRepeatYourself)。这个时候,您要把您复制的部分拆分为新的函数。
  
  5、不处于同一抽象层次。
  
  举例,有一个初始化函数,需要初始化配置数据,套接字,网站数据库连接,通道状态。
  
  voidinit()
  
  {
  
  Config_init();
  
  Socket_init();
  
  Db_init();
  
  inti=0;
  
  For(i=0;i<max_chn_num;i )//初始化所有通道{
  
  G_user_chn[i].status=status_init;
  
  ……
  
  }
  
  }
  
  上个函数中对所有通道的初始化一块具体代码如下就和其他的不处于一个抽象层次,咱们应该将它封装起来:
  
  voidchn_init()
  
  {
  
  inti=0;
  
  for(i=0;i<max_chn_num;i )//初始化所有通道{
  
  G_user_chn[i].status=status_init;
  
  ……
  
  }
  
  }
  
  函数最小可以有多小,它存在的意义
  
  我见过的最优秀的函数:
  
  intmax(inta,intb)
  
  {
  
  returna>b?a:b;
  
  }
  
  这个函数很小,只有一行,但是他存在的意义在于:在函数的调用点,咱们一眼就知道是获取a和b中的最大值,而不是分析a>b?a:b的逻辑。这样可以节省网站程序员的脑力成本,从而达到一个目的:漂亮的函数应该让读者一眼就知道他在做什么以及怎么做的。
  
  小函数的最大障碍:性能
  
  对于网站程序员新手,小函数的最大障碍在于没有经验体会不到小函数的优势,没有经验拆分大函数为更小的函数。
  
  对于有一定经验的网站程序员,小函数的最大障碍也许是对性能的忧虑。
  
  对于性能,切记,不要过早优化。咱们一般认为的网站程序的瓶颈,一般并不是网站程序的瓶颈:咱们需要工具来确定真正的瓶颈所在,20%的具体代码如下耗费了80%的性能,优化之前首先要找到那20%的具体代码如下。函数调用会产生资源和性能的损耗,但是这是不是网站程序的性能瓶颈?消耗的性能占总体的性能百分比为多少?这一切在具体代码如下编写时并不清楚,所以,我的观点是宁可选择简短的函数来获得清晰简单的设计,以便在项目后期能够更快,更好的进行性能优化。
  
  很多人都在质疑我上面列举的max函数的实例,如果说他在运行期间调用次数不大,则对性能的影响基本可以忽略,而获得的可读性,清晰性这极具价值;反过来,如果他的调用次数是否庞大,以致成为了性能的瓶颈,则完全可以在网站程序编写完成后,很快的用其他的具体的方法优化。网站程序的瓶颈不会很多。
  
  关于函数调用产生的性能消耗,我会抽时间测试一下,看到底占用多少。
  
  最后的建议:
  
  在对新员工培训的过程中,发现网站程序员新手一般对函数的大小不够敏感。所以,我建议您可以多尝试编写10行左右(甚至更小)的函数,慢慢您会发现小函数原来具有大威力。
名站网址导航 于 2020-7-22 20:56 移动 @版权声明 名站网址导航声明: 1.该文观点仅代表作者本人,名站网址导航系信息发布平台,名站网址导航仅提供信息存储空间服务。 2.名站网址导航所发布的一切资源、破解补丁、注册机和注册信息及软件的解密分析文章等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该网站程序,请支持正版软件,购买注册,得到更好的正版服务。 3.如有侵权请邮件与咱们联系删除或处理(邮箱:[email 988365@gmail.com]),本站将立即改正,谢谢。

有哪些网站可以做推广kG9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

kG9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市