提高代码质量之提高代码拓展性
本人程序员一枚,刚毕业未满一年。希望能与大家多多交流技术。
为什么在软件开发中会经常提到迭代开发?因为需求变化的很快。为什么说提高代码质量需要提高代码的拓展性?就是为了适应需求的改变,能进行敏捷开发;同时,还能减少维护的成本,我们需要有这个概念 “每写一行代码,都会有一个代价:维护!” 所以我们在进行软件开发时就要考虑到以后需求改变时,软件系统能够拥抱变化。
言归正传,如何提高代码的拓展性呢?
一、动手前
在我看来,我们在开发的前期可以做一些可预见的、简单的扩展设计,愈简单愈好,避免前期大量的设计。当然,我的意思并不是去揣度以后的需求的变化(因为那是预测家干的活,^_^),写代码的时候先实现基本功能,将基本功能做完善,将拓展性做好就足够了,东西越多出现bug的可能就越大,而且维护成本也越高(是不是要感觉慢慢的被我带到坑里去了)。
二、拓展性的分类
简单的分类可以分为一下三类:
1. 白箱可扩展性----原始源代码可以查看和修改。
2. 玻璃箱可扩展性----可以查看源代码,但不能修改。
3. 黑箱可扩展性----扩展现有系统而不直接扩展其原始代码。当然,会有相应的文档说明,黑盒可拓展性才是正真常用的一种比较合理的方式,它符合了软件开发中开闭原则
三、开闭原则
开闭原则的含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有代码来实现变化。自己挺喜欢这点的,它有三个显而易见好处:
开闭原则对测试的影响----减少重复测试。
开闭原则可以提高复用性----减少重复代码的编写。
开闭原则可以提高可维护性----减少维护成本。
当然,要让你的代码符合开闭原则(OCP)你可能需要使用面向对象的方式进行编程0.0,以C语言为例的面向对象的开发方式可以查看我的上一篇文章: