大话重构

来源:互联网 发布:starbound知乎 编辑:程序博客网 时间:2024/05/06 03:06

小步快跑:逐步进化式的程序优化过程。


演进式设计,迭代式开发


软件——满足功能需求


软件开发过程是一个由简单到复杂循序渐进的过程。


对于变化,可以通过重构来适应变化。


当软件因为需求变更而开始逐渐退化时,运用软件重构改善我们的结构,使之重新适应软件需求的变化


重构的方法:

拆分类、函数:单一职责原则。(分久必合、合久必分);

提高代码复用率:封装、抽取父类、类、函数;

发现程序可扩展点:开闭原则,过程的扩展与放置钩子——运用模板模式增加可扩展点,面向切面的可扩展设计;

降低程序依赖度:接口与工厂模式;与外部系统解耦——适配器模式,方法的解耦——策略模式,过程的解耦——命令模式;

分层:

领域驱动设计:


1、TIPS

(1)什么是重构

重构:改变软件的内部结构,但要保证系统中的每个接口其输入输出不变

贯穿整个重构过程的是不断地测试(先手工测试,等条件成熟,进行代码级的自动化测试)。修改一点点就进行一次测试。


(2)软件重构第一步就是拆分。

当重复代码被割裂成碎片时——继承结合模板模式;


继承的泛滥——桥接模式;


透明的功能扩展与设计——组合模式与装饰模式;


解耦与自动化测试;


(3)什么时候重构

重构让程序可读;

重构,才好复用;

先重构,再扩展;


需求变更是我们去重构的主要动因。

当原程序不适应新的需求时先重构系统使之首先适应新的需求,再去实现这些需求;


重构方法可分为以下几个层次:

方法的重构、对象的重构、对象间的重构、继承体系间的重构、组织数据的重构、体系架构的重构;


(4)怎样拥抱变化

领域才是软件系统的心

领域模型分析方法;

领域驱动设计——使用领域模型与客户一起设计;



(5)如何评价软件质量


(6)领域驱动设计思想:

在面向对象的世界里,我们设计的类、方法、关联,应当与现实世界中的事物、行为,及其相互的关系对应起来。现实世界有什么事物,这些事物有什么行为,相互之间是什么关系,则我们在软件世界里就应当设计什么类、什么方法和它们之间的关联关系。


2、PS

(1)QTP

使用QTP的目的是想用它来执行重复的手工测试。


(2)软件修改的四种动机

a、增加新功能;

b、原有功能有bug;

c、改善原有程序的结构;——提高软件内部的质量;

d、优化原有系统的性能;



(3)什么是高质量的软件

易读;保证维护容易;保证需求变更轻易进行,而不是大改——要做到,需要系统重构,持续不断对内部质量进行优化改进;



0 0