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

代碼重構方向原則指導

開發 前端
重構是一種對軟件進行修改的行為,但它并不改變軟件的功能特征,而是通過讓軟件程序更清晰,更簡潔和更條理來改進軟件的質量。代碼重構之于軟件,相當于結構修改 之于散文。每次人們對如何對代碼進行重構的討論就像是討論如果對一篇文學作品進行修訂一樣無休無止。所有人都知道應該根據項目的自身情況來對代碼進行重構,而重構是無止境的。

[[87680]]

重構是一種對軟件進行修改的行為,但它并不改變軟件的功能特征,而是通過讓軟件程序更清晰,更簡潔和更條理來改進軟件的質量。代碼重構之于軟件,相當于結構修改 之于散文。每次人們對如何對代碼進行重構的討論就像是討論如果對一篇文學作品進行修訂一樣無休無止。所有人都知道應該根據項目的自身情況來對代碼進行重 構,而重構是無止境的。莫扎特從來不不對他的作品進行修訂,特羅洛普對自己作品修訂的恰到好處,大多數作家認為他們倆這樣做都是合適的,但他們的合適對于 你我來說未必是合適的。

最常見的基本重構方法 可以歸納為兩個方向。通過歸納方法將一個長的過程分解為小的可以重用的組件,和通過內聯(inline)方法來消除那些不夠份量的小方法。我們可以提煉方法來讓大量的子類共享相同的功能特征,我們可以下放方法來讓只有用到這些功能的子類才知道它們的存在。重構就是爬山,通過一步一步的小的提高來逐漸的改進整體的質量,但在重構時,我們如何知道哪種方法是上山的正確道路?

關于代碼地形學的這個問題公認的方法有兩種。去除有異味的代碼和重構成模式。 如果能做到這樣,當然是很好的。就像是糾正作文里的一個語法錯誤或不恰當的比喻。如果我們可以找到這些四處隱藏的有異味的代碼,將它們重寫成整潔的,條理 的,結構化的形式,何樂而不為。但這些都是特殊情況。如果沒有明顯的模式來重構,或沒有很直接的方法來去除代碼異味,那該怎么辦呢?

這才是 我們如今編程藝術的中心問題,而很少人討論這些。通常我們討論這些問題時都是羅列出更多更長的有異味的代碼模式的清單,但這并不是解決問題的方法。代碼異 味應該是我們公認的不好的東西,而不是那些置之不理也無妨的事情。我們經常會說到老板不給我們重構的機會,甚至代碼有明顯的異味,老板們認為這是浪費時 間。并不是每個人都有懂軟件的老板。我很吃驚為什么只有很少的討論談到點子上。。也許我這篇文章才說到問題關鍵處。

我的觀點,當重構沒有現成的明顯的方向時,我們可以遵循下面的原則:

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

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

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

責任編輯:陳四芳 來源: 外刊IT評論
相關推薦

2013-02-27 10:11:06

代碼審查ThoughtBot

2024-05-10 08:47:22

標準庫v2Go

2023-10-16 09:30:06

Java代碼

2022-09-07 14:44:55

物聯網網絡安全

2009-09-16 10:00:14

可伸縮性Web服務

2021-08-03 08:13:48

重構API代碼

2013-08-20 16:45:22

重構Web App模塊化

2012-07-27 10:30:12

重構

2017-07-24 09:52:11

2022-01-18 10:55:36

云計算CIODevSecOps

2010-08-26 14:00:33

云ROI計算器產品

2022-12-26 00:02:24

重構代碼軟件

2019-04-03 08:10:17

代碼架構信息

2024-09-05 10:17:34

2011-09-05 10:30:51

重構代碼庫業務模型

2022-07-04 07:37:51

模板模式重構

2022-08-02 08:07:24

單元測試代碼重構

2011-12-02 10:19:24

CSS

2019-01-21 10:50:07

微服務架構開發

2015-08-11 09:39:25

重構提高代碼質量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 热久久性 | 久久精品网 | 波波电影院一区二区三区 | 欧美精品导航 | 国产视频福利 | 欧美日韩在线一区二区三区 | 欧美精品黄 | 久久国产婷婷国产香蕉 | 91精品国产综合久久久久久丝袜 | 精品在线一区二区三区 | 亚洲狠狠爱 | 久久国产精品免费 | 精品欧美一区免费观看α√ | 日韩在线不卡视频 | 日韩一区二区三区视频 | 99热在线免费 | 国产精品久久久久久久免费大片 | 免费黄色大片 | 亚洲永久免费 | 国产精品久久精品 | 国产成人在线视频播放 | 一级毛片免费看 | 国产一区二区三区四区五区3d | 天天操一操 | 黄色毛片在线看 | 色综合天天综合网国产成人网 | 成年网站在线观看 | 久青草影院 | 自拍偷拍亚洲视频 | 男女羞羞免费视频 | 国产成人av一区二区三区 | 中文字幕人成人 | 国产精品a一区二区三区网址 | 国产日韩欧美二区 | 一区二区三区视频在线观看 | 91精品国产91久久综合桃花 | 日韩二区 | 亚洲36d大奶网 | 国产成人精品一区二 | 麻豆91av| 亚洲一区二区在线 |