代码重构

 

程序开发做什么

1.开发新功能

2.重构

什么是重构

> 重构(名词):对软件内部结构的一种调整, 目的是在不改变”软件之可察行为”前提下,提高其可理解性,降低其修改成本.
>
> 重构(动词):使用一系列重构准则(手法),在不改变”软件之可察行为”前提下,调整其结构.

  1. 不改变原有功能
  2. 调整程序结构,提高程序维护性

重构目的

  • 让代码易读易理解。(代码是写给人看的, 顺便能在计算机上运行)
  • 改进程序设计,程序模块化,把代码放在合适的位置
  • 找出隐藏BUG及缺陷
  • 提高开发速度
  • 提高程序性能

重构结果

  • 可以更快更好的开发程序
  • 良好的设计
  • 代码清晰易读易理解
  • 稳定健壮的程序
  • 清晰高效的算法
  • 提高对代码的控制能力
  • 代码清晰易读,良好的代码风格
  • 对常见BUG敏感,少出BUG
  • 提高程序的设计能力,学会抽象和模块化

常用基本重构方法

  • 重命名:对类,接口,方法,属性,参数等重命名,使代码更易理解( 统一编码统规范,PSR规范)
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)
  • 图3(图片来自博客园)

  • 抽取代码:
  1. 将复杂的处理过程分解成独立功能的小函数,函数名称解释函数功能(不要复制代码
  2. 将多处出现的代码段抽取封装为一个特定功能的方法,其他方法调用该方法(不要复制代码
  3. 将类的某些属性,方法抽取,组成新的类。原类继承或者使用(不要复制代码
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)

  • 抽取参数:提升方法内的局部变量为方法的参数
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)

  • 删除参数:将方法的一个或多个参数删掉(对象作为参数传递)
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)

  • 方法迁移:将函数放在它应该在的地方,降低耦合性
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)

  • 对象替代数组:值域名称和函数名称清晰表达元素意义。
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)

  • 合并条件语句:考虑合并理由
  • 图1(图片来自博客园)
  • 图2(图片来自博客园)
  • 图3(图片来自博客园)

其他方法

  1. 隐藏属性、方法,控制权限。
  2. 使用多态,替换switch
  3. 避免硬编码

总结

  1. 开发过程中注意抽象、模块化编程。
  2. 不要只为实现功能而写代码,要保证代码质量。代码结构和维护性比实现功能更复杂更重要。

windows下配置vagrant

vagrant作为开发神器,这里就不细说。

准备工作:

下载安装 VirtualBox :https://www.virtualbox.org/

下载安装 Vagrant :http://www.vagrantup.com/

下载需要使用的 box : http://www.vagrantbox.es/

找到自己需要的相应版本。

我这里选择如下;

virtualbox-4.3.24:http://dlc-cdn.sun.com/virtualbox/4.3.24/VirtualBox-4.3.24-98716-Win.exe

vagrant-1.7.2:https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2.msi

box使用centos6.4:https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

安装。

vagrant box add ‘name’ CentOS-6.4-x86_64-v20131103.box

vagrant init ‘name’

vagrant up

使用Xshell连接127.0.0.1端口2222,配置环境。

配置好后使用vagrant package –output package.box导出包,分享给团队。