防止代码变质的思考与方法

1、软件长期运营存在什么问题

  一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢变质的时期。

  在这个时期,你可能会发现:我们的软件慢慢出现模块耦合严重,牵一发而动全身;每个版本都会涌现出老功能的BUG,你没动过的模块也会出BUG;或者改了一个小问题了,带出来很多其他问题;缺乏扩展性,往老模块加新功能非常痛苦;程序的崩溃率越来越高;新员工接手老模块经常不能理解原来的设计思想而改坏;移植一个DLL到另一个软件时,发现必须连带也移植十几个DLL。本文将分享对于这些问题的思考与方法。

  2、软件的积木模型

  一个运营型的客户端软件,做出来就是为了长期运营,需要不断的迭加功能。而不是做出来,两三年就重写一次。那么这样一个软件就像堆积木一样。一个软件刚开始写了两千行代码,感觉设计得非常好,模块化扩展性都非常好,性能也非常快,都能很好的面向运营。写了两三年之后,就会出现像这种积木一样的结构,很容易崩塌。所谓重构,形象的说,可以看做是某个积木不稳定,要往里塞一塞。那么整个开发过程,就是一个不断迭代、不断优化、不断重构的过程。对于我们这个积木模形,有什么办法不让一些木条跑出来,这也是我们需要想的思路。我们是不是可以先围四面墙,然后在墙里面再去塔积木?

3、导致代码变质的两大因素

  团队中总是会存在这样那样的问题,这些问题最终总是影响到我们的代码朝着不良的方向发展。对于这些因素,我可以将它们抽象为两大类。一类是人的因素:比如架构设计不合理,需求没考虑清楚,项目进度压力,沟通问题,缺少文档、培训,等等。另一类是时间的因素:比如人员的变动,需求的长期迭加和变更,等等。人的因素是由于人本身的素质或疏忽导致,时间因素是由于时间的长期推进导致,即使人的素质很高也必然会出现时间因素的问题。

  4、代码变乱的微观原因

  在上述两大类因素的长期作用下,最终会导致代码越来越乱。如果从微观的角度来剖析,这跟依赖有着很大的关系。代码的变乱,根本原因就是由于太多不良依赖或者模块失去单一性所致。我们来看一下依赖是如何产生的。

  • 依赖的方式

  如下图所示,如果组件A依赖于B,B依赖于C,A也是隐含的依赖于C的。组件A不能单独使用,必须同B和C一起使用。在现实的代码中,可能存在着非常长的依赖链。


转载于:https://my.oschina.net/u/1759600/blog/265168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值