软件设计思想总结 (2013-04-16)

这篇文章是涉及到软件工程的知识面,笔者在前辈的书籍与代码中总结和思考。

其实我现在所接触到的一些项目面临着维护与升级的问题,这些项目最初可能并没有考虑
一些新的功能和需求的添加,以致加入一些新的功能模块式会面临着对原有的模块的修改,
其实原有的模块并不是有功能方面的问题,只是在设计者可能没有考虑到后续的维护的问题。
一些数据信息直接写死在代码中,这种设计所带来的维护的问题,是不可想象的。
程序员是构建软件系统的工程师,程序员的自我修养是很重要的,一个优秀的程序员对其写的功能
代码应该是:稳定的、高效的、灵活的。我见过一些程序员(也就是我的同事们)为了追求项目的
进度,其所写的代码是死板的、不稳定的、不是很高效的,这样项目在验收的时候,可能并没有的
展现出一些问题或者说并没有遇到触发异常的条件。但随着系统在生产环境中运行,各种各样的
问题都会随着出现,面对着100条数据没有什么压力,但对着1000条或者更多会出现卡死的现象(
如AJAX的JSON数据传递与接收,举一个例子)。系统加载一些大量数据,面临效率低的吓人。

 

 

根据《JAVA与模式》所写:对于面向对象的软件系统设计来说,在支持可维护性的同时,提高系统的可复用
性是一个核心的问题。
Rober C.Martin指出导致一个软件设计的可维护性较低的原因有四个:
过于僵硬(Rigidity)、过于脆弱(Fraglity)、复用率低(Immobility)、黏度过高(Viscosity).
1.过于僵硬 : 一个软件系统加入新的性能,会涉及到很多其他的模块。
2.过于脆弱 : 一个地方的修改往往导致看上去没有什么关系的另一个地方发生故障。
3.复用率低 : 指一个软件的组成部分,可以在同一个项目的不同的地方甚至另一个项目中重复的使用。
4.黏度过高 : 采取临时的解决方案去解决所面对的问题,这种方案不能妥善的解决问题。
Peter Coad对好的系统是这样概述的:
1.可扩展性 : 新的性能很容易加入到系统中去。
2.灵活性   : 可以允许代码修改平稳的发生,而不会波及到很多其他的模块。
3.可插入性 : 可以很容易将一个类抽出去,同事将另一个同样的接口的类加入进来。

 


写到这里就不在说些软件工程方面的理论了,说些具体的方面的:
1.注释  : 但编写一段代码的同时,如果这段代码并不是很简单动作,添加相关的注释是很重要的。
2.异常  : 我见过有些代码确实尝试着捕捉着异常,可并没有捕捉这些异常后释放一些资源或并没有给
用户良好的提示,也并没有自我修复,只是仅仅将异常记录下来。
3.独立性:  一个类或者方法尽可能的去独立,只完成一个特定的目的或者动作,也许这些动作很简单。
4.低依赖性: 这个方面很多文档都对其做了详细的解释。
5.简洁性: 恩,当然越简洁越好了,代码的简洁,代码编写风格的简洁。
6.良好的设计 : 这个方面很多文档都对其做了详细的解释

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值