关于程序设计的两个小小感受

前几天需要在别人的代码的基础上做开发,需要添加一些新的东西。这时我发现了一个问题:尽管我只需要修改一个功能,但是我可能需要修改几个不同的代码模块。这是不合理的,理想的情况应该尽量控制变化的代码在同一个地方。我深深为此纠结了几天:我到底该不该对这个部分的代码重构呢?重构意味着时间的延后,意味着可能引入新的bug,意味着可能每天要加班到很晚;不重构,意味着我以后还会为此纠结...当然,最后我还是对原来的代码做了修改,然后给原作者看,得到的评价是:嗯,的确清晰了很多。

 

尽量抽象出易变的部分,并且把变化集中在一处,这个c++基本的规则,在实现起来,竟然这么难。有时是考虑不周,有时仅仅是为了写代码的方便,其实代码是写给别人看的,我们都应该学习白居易:通俗易懂好维护的代码才是好代码;同时在代码设计的时候要“排除异己”,知道什么是自己人,忠贞不变,什么是异己,隔离出去、集中控制。

 

昨天,一个同事要求我修改一个接口,我问为什么,他说:你看,如果我是要验证用户的输入,调用这个配置接口是不合适的,我还需要适应你这个接口....我回答说:但是我这个模块并不提供用户数据的验证功能啊,不是有个用户数据管理模块么,为什么要用这个接口呢?他解释说:由于在数据模块要实现一个接口所些的代码和我这个接口的代码很相似,而只要稍微修改一下这个接口的参数就可以满足要求了,为了“代码重用”,再在另外一个模块上开发一个接口显得就太麻烦了...我很不以为然:这不是代码的重用,这是混淆是非,就像抓住别人老婆说:你看你也会生孩子,并且也生过,我再娶个媳妇也太麻烦了,不如你帮我生一个吧,对你来说只是....这不是可不可以的问题,是原则问题。觉得所谓的模块各司其职互不打扰才是一个好的设计,否则的话,只会一团糟。。。

 

这是我的最近的两个小小的感受,抛砖引玉,希望大家说说自己的感受。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值