博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构的步骤
阅读量:4697 次
发布时间:2019-06-09

本文共 858 字,大约阅读时间需要 2 分钟。

1. 找到壞味道:

透過靜態程式碼分析等工具,找到需要重構的部份。
2. 確認人不是我殺的:
確定現行程式碼可以正常運作,我們目標只是在重構,不是在 bug fix 或需求異動。
3. 錄影存證:
針對可正常運作的網頁,建立 selenium test ,並且針對希望驗證的部分,加上 Assert 。
4. 說人話:
打開程式碼,靜下心來了解這段程式碼的目的與意義,抽象地來思考每一段程式碼代表的每一件事,並進行排版、重新命名以及增加註解,提昇可讀性,讓自己下次可以快速了解這段程式碼的意義。
5. 垃圾分類:
針對程式碼所代表的每一件事,透過重構技巧:擷取方法,依據人話來定義 function 名稱。讓 context 端僅剩下一堆會說話的 function ,讓程式碼抽象的意義浮現出來,而不需要看到太多細節。
6. 職責分離:
找出誰,做什麼事。以當下物件的角度為出發點,確認哪一些職責是屬於當下物件,哪一些職責屬於其他物件。並透過分離 function 中的主詞與動詞,來建立對應的物件與行為。
7. 找出需求:
把不屬於當下物件的職責都委託給其他物件,接著就是針對當下物件的需求,定義出物件應該需要提供哪些行為。當下物件定義好需求的行為後,不需了解其他物件背後的實作行為,便可著手完成當下物件所提供的功能。
8. 驗貨:
確定其他物件給的,是滿足當下物件的需求。先建立其他物件的測試程式,單元測試案例則可以從 selenium 的測試案例找出端倪。這時執行測試會得到紅燈。
9. 食神歸位:
將原本放在頁面上,屬於物流商職責的程式碼,搬到物流商物件中,目的是為了通過單元測試,因為通過測試即代表滿足頁面需求,滿足頁面需求,即可通過 selenium test ,即代表滿足使用者需求。

摘自:http://msdn.microsoft.com/zh-tw/library/dn155891.aspx

转载于:https://www.cnblogs.com/sirkevin/p/3480372.html

你可能感兴趣的文章
SDK,API,DLL名词解释
查看>>
试探算法
查看>>
jquery.validation.js 使用
查看>>
数据库高级查询
查看>>
C语言实现封装、继承和多态
查看>>
创建文件
查看>>
Nginx 相关介绍
查看>>
leetcode[33]Search in Rotated Sorted Array
查看>>
OpenCV Shi-Tomasi角点检测子
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>
C#/IOS/Android通用加密解密方法
查看>>
Web API 简单示例
查看>>
返璞归真 asp.net mvc (4) - View/ViewEngine
查看>>
ADO.Net对Oracle数据库的操作【转载】
查看>>
Contoso 大学 - 6 – 更新关联数据
查看>>
RESTful API 设计指南
查看>>
Windows 10正式版的历史版本
查看>>