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

程序員應知 也說重構

開發 后端
重構能改進軟件設計使軟件更容易被理解,能幫你找到bug,提高軟件的開發速度,所以重構可是個好東西。所以對程序員來說,知道重構是必須的。本文作者對于重構這一概念,有了更深的體會,一起來看。

重構(Refactoring)就是在不改變軟件現有功能的基礎上,通過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提高軟件的擴展性和維護性。

從Martin Fowler最早提出重構的概念開始,到現在已經有很長時間了,重構已經是深入忍心了。與其說它是一種方法,不如說是一種思想、一種習慣。我自己在工作的過程中也一直在使用它來改進自己的程序,所以在此想說說自己的兩點認識。

重構不“挑食”

上面已經提到,重構不僅僅是固定的那些方法,而更是一種思想和編碼時候的習慣,所以,不管你是用那種語言編程,都可以應用重構。《重構》那本書上的例子都是Java的,可能很多人會覺得,只有在Java、C#等面向對象的語言中,才能夠使用重構的方法,而在面向過程和函數式的語言中,就很難應用重構了。

我認為并非如此,的確,在面向對象的語言中,有很多特定的重構方法,比方說抽取接口、變量上移、變量下移等等,但還是有一些通用的重構方法,可以在各種語言中使用。

舉兩個最常見的例子:重命名和抽取方法。這兩個方法不論在什么語言的編程下面都是非常常用的,我們也經常會做這樣的重構。比方說我在使用pl/sql編寫procedure和function的時候,就經常會做這樣的操作。特別是當pl/sql developer的新版本中增加了重構的選項,能夠幫我們更好地自動完成重構的操作。在這里,pl/sql這門語言可是過程化的,而非面向對象的。

所以說,我們可以在編寫任何代碼的過程中都可以使用重構,甚至在HTML代碼中、JavaScript代碼中等等,都可以使用,因為重構不僅僅是具體的方法,而是一種改善代碼,改善系統的一種思想,它的目的就在于讓我們的系統的可讀性、可維護性更高,從而具有更好的質量。

重構可以隨時進行

Martin Fowler的《重構》一書還有個副標題,叫做“改善既有代碼的設計”,這讓我在當初產生了一點兒誤會,還以為重構只能是在把代碼寫完了之后才能夠進行的。其實不然,我們可以隨時對程序進行重構,(我曾經在內部的交流中把它叫做行進中的重構,呵呵)那樣會更有利于之后的編碼。

比方說,在編寫程序的過程中,忽然發現有一個變量的命名有些不合理,我們可以立即對其進行重構,修改名稱;或者更實用的,發現自己接下來要寫的代碼完全是之前代碼的重復,或者說可以從別處copy,然后稍作修改就可以,那么我們就可以回頭把之前的方法抽取出來,而在新的位置直接調用;或者發現想要使用某個方法,但它位于其它類中,就可以想是否可以提取父類或者接口,然后把通用的方法提取到其中,然后再對其進行繼承或者實現,那樣就可以方便地調用方法了。

還有很多很多的方法,都是可以在編碼的過程之中就可以做的,而不需要等所有的編碼完成了之后才做。那樣的好處是顯而易見的,在之后如果再需要實現類似的功能,就可以直接調用已有的方法,而不需要等***再做調整了。

總之,越是使用,越是覺得在編程的過程中應該始終把“重構”的思想放在頭腦中,隨時拿出來使用。

你對于重構是否也有想說的話呢?

 

原文地址:http://blog.csdn.net/lingyun2005/archive/2010/12/08/6062149.aspx

【編輯推薦】

  1. 在PHP語言中使用JSON
  2. 快速排序(Quicksort)的Javascript實現
  3. Web移動應用 HTML5 CSS和JavaScript
  4. 高效PHP程序必知的53個技巧
  5. CSS高手也容易犯的10個錯誤提示
責任編輯:于鐵 來源: CSDN博客
相關推薦

2011-05-31 09:22:39

程序員

2011-05-26 10:04:30

程序員

2011-05-24 13:47:25

程序員

2011-05-31 09:37:53

程序員

2010-07-27 16:21:25

程序員

2011-06-02 09:56:21

程序員團隊精神

2011-05-31 10:50:36

程序員

2023-05-06 07:24:22

程序員視頻算法

2022-11-04 07:12:24

JavaScript基準測試

2014-06-09 16:43:11

程序員

2022-09-04 19:43:05

程序員數據庫

2013-04-18 09:55:05

程序員

2017-03-06 09:06:13

2022-10-25 08:23:09

Reactor模式I/O

2024-03-14 12:17:00

數據庫數據模型

2022-12-02 07:16:29

MySQL函數日期

2019-01-30 14:14:16

LinuxUNIX操作系統

2023-09-12 11:25:15

2011-07-25 09:14:40

程序員

2015-11-30 11:01:34

前端程序員歷史
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产一区二区三区 | 中文字幕国产精品 | 免费一区二区三区在线视频 | 国产精品久久久久久久免费大片 | 久久亚洲精品久久国产一区二区 | 亚洲国产福利视频 | 日韩欧美在| 成人国产精品一级毛片视频毛片 | 亚洲精品福利视频 | 久久99精品久久久久久秒播九色 | 欧美一级观看 | 亭亭五月激情 | 亚洲精品乱码久久久久久按摩 | 日韩电影一区 | 欧美日韩a | 天天干天天色 | 久久久观看 | 午夜天堂精品久久久久 | 亚洲iv一区二区三区 | 久久最新精品视频 | 在线成人免费观看 | 午夜视频在线免费观看 | 亚洲成人精品影院 | 一区在线免费视频 | 国产一级片精品 | 中文字幕国产精品 | 麻豆精品一区二区三区在线观看 | 成人高清在线视频 | 黑人精品欧美一区二区蜜桃 | 在线观看国产视频 | 国产精品毛片一区二区三区 | 日韩中文字幕第一页 | 欧美久久影院 | 午夜午夜精品一区二区三区文 | 久久久99国产精品免费 | 欧美天堂 | 亚洲精品成人av久久 | 亚洲夜射 | 日韩欧美在线不卡 | 久精品久久 | 一区二区三区在线免费观看 |