C++学习笔记----2、使用C++进行优雅编程(四)----代码分解

        代码分解就是将代码分解成一小块一小块的,在代码的世界里,想像一下这样的一个别人震惊的场景:打开一个代码文件,发现有300行长度的函数,大量的、成网状的代码块。在理想的情况下,每个函数完成一个功能,如果该功能比较复杂,就要进行分解,把该功能中复杂的部分再通过子函数的方式进行实现。

        代码分解不是一种科学,而是一种艺术,还拿写文章来进行比喻,文章是用来解决实际问题的,把要说明的问题讲解清楚基本上就达到了实用的目的,但要让人喜欢读,愿意读,只是简单地堆砌文字显然不可能使读者愉悦。写程序也是一样,如果只是能够实现相关功能,就把所有的代码写在一起,完全不利于阅读,更不利于维护,这样的代码不是我们喜欢的。打开一段儿代码,我们首先关注的其实不是代码的功能是什么,而是是否清晰,是否能够马上知道这段儿代码的结构,知道从哪儿入手,谁调用了谁。如果一段儿代码就一个函数,从头到尾没有任何函数调用,就像平铺直叙的文章一样,根本吸引不了人,也无法令人快速掌握该代码的实质。

1、通过重构来对代码进行分解

        有时候,当你喝了一杯咖啡或者抽了一支烟之后,你文思泉涌,高质量地写出大量的代码出来。这时候的代码一般情况下都是符合规范的,效率也高,性能也好。但是随着时间的推移,功能的增加,代码缺陷的修复,也许是半年,也许是一年之后,你回头再来看这段代码,可能已经面目全非,完全想不起来它当初的样子,何谈优雅......

        重构就是将你的代码重新构造一遍,下面会列出重构代码的一些实例技巧:

  • 使代码更抽象的技巧
    • 包装成员变量:将成员变量私有化,通过get与set操作私有成员
    • 类型通用化:生成更多通用类型,共享代码
  • 将代码分解成更多的逻辑块
    • 分解成员函数:将复杂的成员函数进行分解,分解成小的子函数,使其更易理解。
    • 分解类:将类分解成新类
  • 提高命名质量与转移代码位置
    • 移动成员函数与成员变量:将其放置到更合理的位置
    • 修改成员函数与成员变量的命名:使其更合理,更能表达其目的
    • 升级:在面向对象中,将其升级到基类中
    • 降级:在面向对象中,将其降级到派生类中

        不管你的代码从一开始就是一坨屎还是随着时间的推移变成了一坨屎,对其进行重构都是有必要的。通过重构,你可以重新审视原有代码,重写使其更易读,更易维护。重构是一次对原有代码进行分解的好机会,如果代码的目的变掉了,或者一开始就从来没有分解过,当你重构代码时,先粗略地看一下再决定,看是否需要分解成更小的部分。

        当重构代码的时候,很重要的一点是依赖测试框架,发现缺陷,这些以后我们再细讲吧。

2、通过设计来对代码进行分解

        在写代码之前,如果你考虑了如何对功能进行分解,将其放置到不同的函数与模块中,你的程序一般来讲就不会臃肿,会组织的比较好。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值