自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

代碼復用的幾點思考

開發(fā) 開發(fā)工具
復用可能對軟件的開發(fā)效能產(chǎn)生絕大影響,而開發(fā)效能直接影響利潤,甚至生存。從結論上來說,只有滿足下面兩條原則的程序,才可能真正的被復用,否則的話只能采用代碼級別的復用。

  復用可以說是任何一個軟件企業(yè)都不能漠視的課題,因為復用可能對軟件的開發(fā)效能產(chǎn)生絕大影響,而開發(fā)效能直接影響利潤,甚至生存。

  但復用本身將增加當前項目的成本,是一種以當前投入來換取遠期收益的行為。與此同時遠非所有代碼都可以復用,復用本身也有自己內在的一些規(guī)律,讓我們來試做一些分析。

  從結論上來說,只有滿足下面兩條原則的程序,才可能真正的被復用,否則的話只能采用代碼級別的復用。

  ***條原則是,程序本身的職能非常獨立與業(yè)務層面基本無關聯(lián),是功能型的模塊(包)。

  代碼中的邏輯表述的是一種關聯(lián)性,當這種關聯(lián)只在確定的方面存在的時候,通常我們可以切割出比較獨立的模塊,而這種模塊可以成為復用的基礎之一。這也就是常說的【閉包】。

  這種復用有許多表現(xiàn)形式,但其本質相同。

  比如JPEG的庫,XML的庫,比如我們常提到的組件或控件。

  在這類復用中扮演關鍵角色的是一組接口,以及這組接口的基本使用規(guī)則。

  REP(重用發(fā)布等價原則),CRP(共同重用原則)中提到的重用都是這類重用。

  第二條原則是,程序本身所描述的過程足夠抽象,同具體實現(xiàn)細節(jié)可以切的很開。

  概念在衍化的過程中其內含的細節(jié)會逐漸豐富,但又會共享某些共同的基本特征。很多時候邏輯要處理的是這種根本特征,而非細節(jié)。在這個時候,就需要抽象。

  好比人可以分為男人和女人,也可以分為老人,青年人和小孩。但因為同屬于人這一范疇,所以不管如何分類,必有共通之處。也正因此,某些針對【人】的規(guī)則或者價值標準是可以通用于所有人的,即是可以復用的。比如說法律。大多時候,我們不需要指定分別針對于男人,女人的法律

  這種類型的復用不是很好理解,我們用迭代器的例子來進行進一步的說明。

  當我們想遍歷一個容器的時候,從【頭到尾的循環(huán)】和【逐個遍歷】是屬于任何容器的,而同具體的容器無關。但如何從***個元素,遍歷到第二個元素則和容器的具體實現(xiàn)有關。把這種和具體實現(xiàn)細節(jié)無關的邏輯提取出來的過程,也即抽象的過程。只有能做到這種程度抽象,非獨立的功能性的代碼才可能真正的做到被重用。

  《設計模式》這本書有個副標題,叫《可復用面向對象軟件的基礎》。基礎這個詞的意指與上述說明相同。

  由第二條原則而產(chǎn)生的復用的形式可以是,設計模式與框架。歷史上的MFC的文檔視圖結構就是一個典型代表。

  一個比較典型的是近來很受關注的Map-Reduce的函數(shù)式編程方法,據(jù)說這種方法在Google被用來支持并行計算。--參見《軟件隨想錄》

  假設說某一功能的主要部分已經(jīng)實現(xiàn),比如排序。這時候已經(jīng)實現(xiàn)的部分是既定算法,可能是選擇排序,也可能是插入排序。但對于排序而言,對兩個數(shù)值進行比較的部分則依賴于被比較的對象,需要被靈活指定。這也就意味著重用排序的實現(xiàn),等于實現(xiàn)兩段代碼的對接,實現(xiàn)一部分代碼,但另一部分則由用的人在使用的時候指定。

  這種方法可以更好的支持并行計算的原因在于,他可以把實現(xiàn)中的可優(yōu)化部分分割開來。對于查詢而言,如何遍歷所有數(shù)據(jù)是可以并行優(yōu)化的。

  如果上述兩條原則都無法滿足,那么為了達到提升效能的目的,就需要做以實現(xiàn)為基礎的代碼級別的復用,即完全不做抽象,直接復用代碼片段---也許這反倒是應用的最為廣泛的復用方法。

  很多人恐怕已經(jīng)習慣了解決某個具體問題前,先到codeproject.com或者codeguru.com上確認一下有沒有參考代碼。如果不論這種方法的諸多缺點,比如:版權問題,引起代碼風格混亂等等,這種方法的現(xiàn)實意義仍是比較巨大。其正面意義可以體現(xiàn)為下面幾個方面:

  可執(zhí)行的代碼片段可以清楚的告訴我們類庫API等等的具體用法,進而縮短我們掌握領域知識的時間。在具體項目中使用某種語言,完全從零開始來完成某項工作的機會非常***,我們更多的時候要依賴于某些通用的領域知識。而通過幫助文檔來學習類庫等的使用方法效率相對低下,而這種可執(zhí)行的片段代碼則精準,且具體的描述了類庫等的某一使用方法,使程序員可以更快上手。

  可執(zhí)行的代碼片段可以是高質量的。如果我們承認代碼的質量是要持續(xù)提高,那么這類代碼片段,無疑的可以擁有比剛剛寫成的代碼更高的質量。因此這類代碼對生產(chǎn)率的貢獻還不僅只與提高編碼速度。

  如果真的想在組織中使用這種復用方法的話,一個關鍵點是要控制可執(zhí)行代碼片段的規(guī)模。

原文鏈接:http://www.cnblogs.com/daoshi/archive/2012/03/07/2382932.html

【編輯推薦】

  1. 代碼復用的規(guī)則
  2. 項目管理其實可以簡單一點之項目繼續(xù)
  3. 軟件項目管理的十大定律
  4. 推薦5個免費項目管理工具
  5. 項目管理中重大意外事件的處置
責任編輯:彭凡 來源: 博客園
相關推薦

2025-03-27 03:22:00

2013-01-25 10:22:05

網(wǎng)絡信息保護信息安全網(wǎng)絡泄密

2012-04-02 15:52:11

2013-08-01 14:09:49

移動互聯(lián)網(wǎng)思考

2021-03-05 11:36:13

安全數(shù)據(jù)

2021-06-25 14:41:42

網(wǎng)絡安全

2014-01-23 10:38:16

2021-06-07 15:01:18

銀行數(shù)字化轉型數(shù)據(jù)安全

2022-07-08 10:50:52

人工智能思考

2018-06-05 11:28:30

同有科技

2016-06-02 10:17:58

大數(shù)據(jù)架構業(yè)務監(jiān)控

2015-06-25 16:08:56

數(shù)據(jù)中心技術人才

2015-11-11 08:53:49

互聯(lián)網(wǎng)+用戶

2013-08-20 13:55:19

測試代碼審查

2020-02-20 16:51:39

遠程辦公

2022-08-01 07:38:29

代碼開發(fā)

2023-01-30 07:58:30

繼承代碼復用

2012-12-12 09:37:45

代碼編程思想代碼變質

2009-10-13 14:49:10

2019-07-19 13:54:26

點贊
收藏

51CTO技術棧公眾號