多一分则肥少一分则瘦

最近在重构以前写的代码,希望更安全,更快,更优雅;

发现自己当时犯着可笑幼稚错误:

1,幼稚的过度编程:在写一个底层的资源管理的东西,在出错的时候我选择像dx函数一样返回一个handle,通过handle的数值来确认是什么问题;但是我的这个类规模不大,而且可以debug跟进去,所以这么麻烦的handle错误认证是杀鸡用牛刀,结果就是简单的类,看起来相对非常的麻烦;而dx handle是因为封装到库中,没法跟踪,而且规模比较大这样做不得已而且也合理;而我则是不假思索的去照搬--幼稚的过度编程;

2,清晰的构造逻辑:一个类的object的构建需要一些资源,如果这些资源分配不出来怎么办?是仍旧构建这个object,但是其任何action都成为空,还是干脆不构建;当然,我们没法给出一个通用的答案;但是常规来讲,一个object构建出来我们总是潜意识认为它是可以工作的,如果构建出来了却仍旧不能使用,那的确是伤脑筋增加复杂度的事情;我开始是在构造函数里去申请资源,却没有加空指针判断,结果crash,后来加了保护仍旧不好的结构;

3,指针的保护,判断,assert;

4,if...else:下面是典型的短见的行为:

 

enum QueryState
{
    QueryBegin;
    QueryEnd;
}
;
 
void Query(QueryState val)
{
    
if(val == QueryBegin)
    
{
         ...;
    }
else
    
{
        ...;
    }

}

if...else讲非此即彼,适用于true,flase;NULL,非NULL;但是对于那个enum则不是如此,虽然目前是好用的,但是它的写法表达的是非此即彼,而不是类型的判断,尽管对,但是不准确;

仍旧应该用else if...

重构重构再重构,时间越长,理解越深刻,思路越清晰,最后写到“多一分则肥,少一分则瘦”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值