成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

代碼重構(gòu)方向原則指導(dǎo)

開發(fā) 前端
重構(gòu)是一種對(duì)軟件進(jìn)行修改的行為,但它并不改變軟件的功能特征,而是通過(guò)讓軟件程序更清晰,更簡(jiǎn)潔和更條理來(lái)改進(jìn)軟件的質(zhì)量。代碼重構(gòu)之于軟件,相當(dāng)于結(jié)構(gòu)修改 之于散文。每次人們對(duì)如何對(duì)代碼進(jìn)行重構(gòu)的討論就像是討論如果對(duì)一篇文學(xué)作品進(jìn)行修訂一樣無(wú)休無(wú)止。所有人都知道應(yīng)該根據(jù)項(xiàng)目的自身情況來(lái)對(duì)代碼進(jìn)行重構(gòu),而重構(gòu)是無(wú)止境的。

[[87680]]

重構(gòu)是一種對(duì)軟件進(jìn)行修改的行為,但它并不改變軟件的功能特征,而是通過(guò)讓軟件程序更清晰,更簡(jiǎn)潔和更條理來(lái)改進(jìn)軟件的質(zhì)量。代碼重構(gòu)之于軟件,相當(dāng)于結(jié)構(gòu)修改 之于散文。每次人們對(duì)如何對(duì)代碼進(jìn)行重構(gòu)的討論就像是討論如果對(duì)一篇文學(xué)作品進(jìn)行修訂一樣無(wú)休無(wú)止。所有人都知道應(yīng)該根據(jù)項(xiàng)目的自身情況來(lái)對(duì)代碼進(jìn)行重 構(gòu),而重構(gòu)是無(wú)止境的。莫扎特從來(lái)不不對(duì)他的作品進(jìn)行修訂,特羅洛普對(duì)自己作品修訂的恰到好處,大多數(shù)作家認(rèn)為他們倆這樣做都是合適的,但他們的合適對(duì)于 你我來(lái)說(shuō)未必是合適的。

最常見的基本重構(gòu)方法 可以歸納為兩個(gè)方向。通過(guò)歸納方法將一個(gè)長(zhǎng)的過(guò)程分解為小的可以重用的組件,和通過(guò)內(nèi)聯(lián)(inline)方法來(lái)消除那些不夠份量的小方法。我們可以提煉方法來(lái)讓大量的子類共享相同的功能特征,我們可以下放方法來(lái)讓只有用到這些功能的子類才知道它們的存在。重構(gòu)就是爬山,通過(guò)一步一步的小的提高來(lái)逐漸的改進(jìn)整體的質(zhì)量,但在重構(gòu)時(shí),我們?nèi)绾沃滥姆N方法是上山的正確道路?

關(guān)于代碼地形學(xué)的這個(gè)問(wèn)題公認(rèn)的方法有兩種。去除有異味的代碼和重構(gòu)成模式。 如果能做到這樣,當(dāng)然是很好的。就像是糾正作文里的一個(gè)語(yǔ)法錯(cuò)誤或不恰當(dāng)?shù)谋扔?。如果我們可以找到這些四處隱藏的有異味的代碼,將它們重寫成整潔的,條理 的,結(jié)構(gòu)化的形式,何樂(lè)而不為。但這些都是特殊情況。如果沒有明顯的模式來(lái)重構(gòu),或沒有很直接的方法來(lái)去除代碼異味,那該怎么辦呢?

這才是 我們?nèi)缃窬幊趟囆g(shù)的中心問(wèn)題,而很少人討論這些。通常我們討論這些問(wèn)題時(shí)都是羅列出更多更長(zhǎng)的有異味的代碼模式的清單,但這并不是解決問(wèn)題的方法。代碼異 味應(yīng)該是我們公認(rèn)的不好的東西,而不是那些置之不理也無(wú)妨的事情。我們經(jīng)常會(huì)說(shuō)到老板不給我們重構(gòu)的機(jī)會(huì),甚至代碼有明顯的異味,老板們認(rèn)為這是浪費(fèi)時(shí) 間。并不是每個(gè)人都有懂軟件的老板。我很吃驚為什么只有很少的討論談到點(diǎn)子上。。也許我這篇文章才說(shuō)到問(wèn)題關(guān)鍵處。

我的觀點(diǎn),當(dāng)重構(gòu)沒有現(xiàn)成的明顯的方向時(shí),我們可以遵循下面的原則:

  1. 當(dāng)屬性、方法或類存在任何的需要復(fù)用的意向時(shí),歸納提煉它們。
  2. 不要低估小方法對(duì)代碼整潔的作用。使用小方法能讓你節(jié)省很多筆墨。
  3. 能讓代碼長(zhǎng)度變短的提煉都應(yīng)該去提煉,包括注釋。
  4. 用switch()代替多形——即使這樣做會(huì)使代碼變長(zhǎng)。
  5. 用封裝控制可見度。
  6. 消除依賴。
  7. 簡(jiǎn)化構(gòu)造方法——即使這樣做會(huì)使代碼變復(fù)雜。
  8. 封裝或避免條件表達(dá)式。使用guard語(yǔ)句,避免使用else語(yǔ)句。
  9. 使用常量代替魔幻數(shù)字。
  10. 不確定時(shí),偏向使用組合而不是繼承。
  11. 不確定時(shí),將計(jì)算操作移入到這些數(shù)據(jù)的所有者對(duì)象里,或?qū)?shù)據(jù)移動(dòng)到執(zhí)行計(jì)算操作的對(duì)象里(也就是迪米特法則(Law of Demeter))。
  12. 使用小對(duì)象,松耦合,避免大對(duì)象,高聚合。
  13. 不確定時(shí),偏向使用遞歸而不是循環(huán)。
  14. 使用代理對(duì)象,模擬對(duì)象和輔助對(duì)象來(lái)隔離網(wǎng)絡(luò),數(shù)據(jù)庫(kù),文件和用戶接口。
  15. 不確定時(shí),盡量在model里添加代碼,必要時(shí)才往controler添加代碼。view里添加的都應(yīng)該是便捷功能和簡(jiǎn)寫方法,但不要局限于此。
  16. 偏向使用apply, each, mapcar,而不是loop.
  17. 盡量使用新技術(shù)。

原文鏈接:http://www.markbernstein.org/Oct13/HillClimbingWonkish.html

譯文鏈接:http://www.aqee.net/hill-climbing-wonkish/

責(zé)任編輯:陳四芳 來(lái)源: 外刊IT評(píng)論
相關(guān)推薦

2013-02-27 10:11:06

代碼審查ThoughtBot

2024-05-10 08:47:22

標(biāo)準(zhǔn)庫(kù)v2Go

2023-10-16 09:30:06

Java代碼

2022-09-07 14:44:55

物聯(lián)網(wǎng)網(wǎng)絡(luò)安全

2009-09-16 10:00:14

可伸縮性Web服務(wù)

2021-08-03 08:13:48

重構(gòu)API代碼

2012-07-27 10:30:12

重構(gòu)

2013-08-20 16:45:22

重構(gòu)Web App模塊化

2017-07-24 09:52:11

2010-08-26 14:00:33

云ROI計(jì)算器產(chǎn)品

2022-01-18 10:55:36

云計(jì)算CIODevSecOps

2022-12-26 00:02:24

重構(gòu)代碼軟件

2019-04-03 08:10:17

代碼架構(gòu)信息

2024-09-05 10:17:34

2011-09-05 10:30:51

重構(gòu)代碼庫(kù)業(yè)務(wù)模型

2022-07-04 07:37:51

模板模式重構(gòu)

2022-08-02 08:07:24

單元測(cè)試代碼重構(gòu)

2011-12-02 10:19:24

CSS

2019-01-21 10:50:07

微服務(wù)架構(gòu)開發(fā)

2015-08-11 09:39:25

重構(gòu)提高代碼質(zhì)量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩在线欧美 | 国产二区在线播放 | 中文一区 | 九九热国产精品视频 | 欧美成人在线影院 | 亚洲精品日韩在线观看 | 亚洲欧洲成人在线 | 国产精品久久久久久久7电影 | 7777精品伊人久久精品影视 | m豆传媒在线链接观看 | 91精品国产乱码久久久久久 | 精品国产乱码久久久久久果冻传媒 | 国产综合久久 | 欧美精品在线免费 | 亚洲综合在线网 | 一区二区国产精品 | 亚洲精品福利视频 | 久久久久亚洲 | 国产欧美日韩 | 久久精品久久久久久 | 亚洲国产网址 | 欧美日韩一区二区三区视频 | 国产亚洲网站 | www视频在线观看 | 久久国产免费看 | 青青草社区 | 亚洲精品乱码久久久久久按摩观 | 美女爽到呻吟久久久久 | 最新中文字幕在线 | 亚洲福利一区二区 | 精品日韩一区二区 | 久久久女女女女999久久 | 久久99网站 | 涩爱av一区二区三区 | 一级在线毛片 | 黄色片在线看 | 蜜臀av日日欢夜夜爽一区 | 综合亚洲视频 | 日韩视频区| 亚洲女人天堂成人av在线 | 国产一区二区三区视频 |