我所经历的代码重构
来源:互联网 发布:iphone 手机淘宝打不开 编辑:程序博客网 时间:2024/04/27 14:12
今天下午架构师带着我对我前段时间写的代码进行了重构,收获还是很多,现在与大家分享下。
PS:因为自己太菜,所以大家不要笑话。^_^
如果没有单元测试或者自动化测试,重构的首要原则就是保证不印象现有的功能:
如果对现有的类进行重构,那就重新写一个类,实现与现在类同样的功能;
如果对现有的函数进行重构,那就在原有的类中重新加一个函数,保证与要重构的函数实现同样的功能。
以上两点是我感受最深的。
另外在处理复杂问题时要抓住问题的主线。
比如:
我们修改的一个功能包括:异步访问网络,任务队列,消息中心,任务队列中的任务对象,如果实现的过程中把许多问题柔和到一起,会让我感觉脑袋很大,这时我们应该下手前将可能遇到的问题点考虑清楚比如,任务如何处理异步请求,任务队列中的对象存在依赖关系,有些任务会依赖前面的任务必须正确执行,如果将结果通过消息中心通知界面,错误的处理等等。但是在具体实现的时候我们应该简化问题,一开始只是完成一个简单的框架,完成任务队列的基本功能,但是任务队列中的任务对象为空的,然后在任务执行时,只是向消息中心发送一个简单的任务对象,测试任务队列可以正确的按顺序执行任务,任务执行过程中通过消息中心可以将任务执行的结果通知到界面。基本路径都通了后,然后再处理其它的异常情况,比如,任务队列中任务的依赖关系,异步的网络请求如何通过委托通知任务对象任务执行的结果。总之,就是不要想一下子做到十全十美,而是先搭一个框架,让基本流程可以跑通,然后再慢慢往上加东西,处理各种附件条件与异常场景。
从使用者的角度考虑接口的设计。
基于层思考问题。
简单功能可以跑通,说明这些简单功能是类的本质职责,其他功能是其他类或者派生类负责。
越简单的东西越稳定,越容易找到问题的本质、类的本质。
从上到下进行细化,从 View 开始。
回顾功能性需求。
交换的信息与代码要做到人机可读,比如:用 YES 不用 1。
程序与类的设计要达到的几个标准:简洁性、一致性、自然性。
当不清楚一个类的职责时,问他的用户。
软件需求的三个维度:功能性需求、非功能性需求、软件的架构或者分层。
- 我所经历的代码重构
- 我所经历的教育
- 我所经历的北京 我所看到的伦敦
- 我所经历的商业智能
- 关于我所经历的转入iOS
- 我所经历的京东618
- 我所经历的JS性能优化
- 我所经历的JS性能优化
- 我所经历的ERP项目的失败
- 我所经历的ERP项目的失败(转)
- 我所经历的ERP项目的失败
- 我所经历的“余额宝”的那些故事
- 我所经历的“余额宝”的那些故事
- 我所经历的“余额宝”的那些故事
- 我所经历的“余额宝”的那些故事
- 【我所经历的“余额宝”的那些故事】
- 我的考研经历(从华工应数到中大软件所)
- 我所经历的两年爱情历程~~
- OGRE 分析之消息机制
- ORACLE死锁查询即处理
- C#文件读写操作
- android后台布局
- C/C++基础知识:数组类型、函数类型到左值和右值的转换
- 我所经历的代码重构
- 关于windows计算器符号的问题
- Linux环境进程间通信(一)
- Ogre数据文件结构分析
- 100% 解决 Symbian 安装软件时出现“更新错误”或“无法安装”的问题
- 定时播放音乐程序之三:MCI设备的播放和控制
- 第一篇文章
- OGRE分析之设计模式 iterator
- 博客开张了,高兴