Refactor

为什么要重构?我不知道教科书是或是别人都会怎么讲,但是重构对我来说,基本上就是把一个糟糕的设计重新写一遍。那么,什么是我定义的两糟糕的设计?又怎么样来重写,并且期望能够达到一个怎么样的目的才算是一个好的重构呢?

糟糕的设计:

  1. 因为时间紧,任务重,没有进行设计,基本上是随心所欲的写出来的代码;
  2. 充斥着“if…else…”,打了无数的补丁,新增功能的时候,就得多增加判断条件;
  3. 代码变得越来越复杂,相同的代码出现在了不同的地方,修改一处,必须时刻记着也要修改别的地方

那怎么样来重写呢?完全抛弃以前的代码么?

  1. 完全抛弃以前的代码:之前的代码写得实在是太糟糕,没有任何可取之处。而且没有办法使用一些重构工具一进行梳理。我自己没有遇到过这种情况。每一小段代码还不至于写得面目全非,这应该算是代价相对较重的一种重构方法,与其说是重构,不如说是重新写。
  2. 使用之前的代码:之前的代码,小的部分还是可以使用的,将它们独立出来,形成单独的模块,并使用一定的模块调用机制(如使用事件机制、插件系统)等,来调合各个不同的模块之间进行谐调工作。

我希望能达到一个几样的效果呢?

  1. 简单的说,我比较追求系统的可扩展性(scalability & extensibility)、可维护性、较高的系统性能。
  2. scalability是期望在一个较大的数据集前,系统也可以有一个比较好的表现;
  3. extensibility是期望系统能够容易的增减功能;
  4. 可维护性是期望系统在需要做出修改的时候,可以更加方便;
  5. 较高的系统性能,这个就不必说了,谁都希望自己的程序跑得更快。

有些时候,做重构并不是一个简单的决定,因为你要做出更多的工作,还不一定能搞出一个可用的系统来,但是,有风险的事情,做成功了会收获很大的好处,大部分时间,我还是咬咬牙会去选择重构代码。

==eof==

这篇文章也发表在AgilePHP上,快去看看,Refactor

特别说明 -------- 新版本请访问网站www.bluefishes.net. 考虑到稳定性,新版本不支持Visual Studio.NET 2002. 产品名称 -------- SharpRefactor(C#代码重构工具) 产品简述 -------- 本工具用于代码重构和代码自动生成。现阶段主要用于C#代码重构。 所谓重构也就是“保持软件的外在功能不变,重新调整其内部结构”。 关于每种重构模式的含义,请参见http://www.refactoring.com/ 具体功能参见具体版本的特性列表。 对重构很感兴趣或是很关注使用效率的用户,希望[使用指南]一节对你有所助益。 版本 ---- 1.0.0(BETA). 发布日期 -------- 2003/6/13 作者 ---- C# Refactor Team. 制作 ---- Blue Workshop. 环境要求 -------- Visual Studio.Net 2003 Windows 2000 + SP2 + SMTP Service 特别提示 -------------- 本插件使用了异常处理和报告机制。 一般而言,环境、代码以及其他原因都会导致程序出错。因此,在您使用本插件的过程中,可能会弹出错误报告。一部分错误不会影响使用,另一部分会影响使用。 C# Refactor Team愿意随时提供技术支持,及时为你解除问题。 版本1.0.0特性 ------------- Rename Parameter Rename Local Variable Rename Field Rename Property Rename Class Rename NameSpace Safe Delete Parameter Safe Delete Local Variable Safe Delete Field Safe Delete Property Safe Delete Method Safe Delete Class Safe Delete NameSpace Extract Interface Undo/Redo Preview usage before refactor重构前预览) Auto build after refactor重构后自动生成) Options(工具选项) User feedback(用户反馈) 使用指南 -------- 所有功能暂不支持静态成员。 尽量使用鼠标右键菜单。 尽量使用快捷方式,比如:单击鼠标右键,弹出菜单后再连续按‘R’键和‘C’键就可以调用[Rename]菜单下的[Rename Class]命令。 在使用Rename系列命令时,需要先转到定义代码元素的地方。此时,可以先使用右键菜单中的[转到定义]命令。 在Option中可以设置首选项。 由于Visual Studio在生成较大的解决方案时有时会不成功,所以Auto build after refactor通常用于较小的解决方案。 Rename NameSpaceMove Class不同。Move Class的焦点在Class,即改变类所在的NameSpace。而Rename NameSpace的焦点在NameSpace,即改变指定NameSpace的名字,并更新该NameSpace的所有引用(Usages)。 错误报告以及建议功能需要网络连接和Windows自带的SMTP服务。因为发送速度很快,所以不会占用您宝贵的时间。 可以使用User feedback功能提出您睿智的建议、批评、任何意见。 技术支持 -------- Tiger.BlueWorkshop@163.net 下载 ---- www.youkuaiyun.com 版本 发布日期 ----------------------------- 1.0.0(Beta) 2003/6/13
<think> 我们被要求使用"refactor"作为commit类型来优化之前的提交。根据约定式提交规范,"refactor"用于代码重构,即在不改变外部行为的前提下改进代码结构。 之前的提交信息是“优化接口调用实现”,这属于代码重构,因此我们可以将其改为: refactor(database): 优化接口调用实现 注意:括号内的"database"是scope,表示修改的范围是数据库相关模块。如果项目有明确的模块划分,使用scope有助于分类。 因此,正确的提交命令应该是: git commit -m "refactor(database): 优化接口调用实现" 如果之前的提交已经被推送到远程仓库,可以使用amend然后强制推送(注意:强制推送在团队协作中需谨慎): git commit --amend -m "refactor(database): 优化接口调用实现" git push --force 但如果尚未推送,则直接使用amend即可。 另外,根据之前的错误提示,提交信息需要符合规范,使用"refactor"类型是符合要求的。 现在,我们按照要求回答问题,并在最后提出3-5个相关问题。 </think> ### 使用 `refactor` 类型的 Git Commit 建议 根据约定式提交规范,`refactor` 类型适用于**在不改变外部行为的前提下重构代码**的场景。以下是针对您需求的规范提交方案: #### 推荐提交格式: ```bash git commit -m "refactor(database): 优化接口调用实现" ``` #### 详细说明: 1. **类型选择**: - `refactor`:表示代码重构,不涉及功能修改和错误修复 - ⚠️ 避免使用 `chore`(适用于构建/配置变更)或 `perf`(适用于性能优化) 2. **范围指定**: - `(database)`:明确修改范围在数据库相关模块 - 其他可选范围:`(api)`, `(ui)`, `(core)` 等 3. **多模块重构示例**: ```bash git commit -m "refactor(database): 重构接口参数映射逻辑 refactor(api): 优化请求处理流程" ``` #### 典型重构场景: | 场景 | 示例提交信息 | |-------------------------------|---------------------------------------| | 函数/组件重构 | `refactor(utils): 抽象数据格式化函数` | | 代码结构优化 | `refactor(router): 重构路由分层结构` | | 接口调用逻辑优化 | `refactor(api): 简化服务调用链` | | 技术债务消除 | `refactor(core): 清理废弃代码片段` |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值