编程规范思考----大函数
规范需要由发自内心的认同,才可以执行下去,实际中各人由于习惯或能力不同,导致同样的需求,编码方面差异很大。
规范的作用是:尽可能弱化这种影响
本系统记录一下,遇到的反面的示例
1. 超大函数
看到的示例
类的函数接收了一个列表,对该列表做了如下事情
1. 如果本地的列表为空,则将列表复制到本地列表
2. 如果本地列表不为空,但和传入列表不一致
2.1. 传入有,本地无,增加
2.2. 传入无,本地有,删除
2.3. 增加时保证相对次序
----------
3. 将列表做layout布局显示
4. 连接默认资源
违背单一职责
1. 做了太多事情,臃肿
2. 做这些事情的时候,完全手搓,考虑用std 或 QList之类成熟的库来做,主要指合并列表部分
3. 冗余的变量,定义了 m_nDesktopCount 和 m_desktopList 其中 m_nDesktopCount = m_desktopList.size() ---------增加的实体不仅要处处维护其一致性
这样的代码不能说其错,但实在不好维护
1. 可能一开始这个功能只是 1.
2. 发现有问题,存在列表不一致,直接在本函数中修改,修改时,没有用std QList
3. 要增加布局展示,且布局展示正好在这个函数之后进行,----------干脆直接在这里做算了
4. 布局完成之后要做连接默认----同上
那么,如何预防这种现象呢?一开始并没有错,在一步步滑向深渊?