重用其他程式庫
重用其他程式庫也會帶來一些不足:需要使用者得到可重用的程式碼,需要充分考慮重用後的效率,還要關注由重用其他程式所帶來的潛在名字空間衝突,以及要考慮與可重用程式庫保持版本同步問題。
C++撰寫可用的程式庫已屬不易,撰寫可重用的程式庫更是專家級任務。效率並不是最終目標,而擴充套件性、靈活性等其他特性將會比效率更加重要
為何要重用其他程式庫
一般我們自己在編寫一個程式庫的時候,會盡量找到高效率優秀的程式庫,然後重用其中高效的程式碼。不會一個庫都全部是自己編碼,一來開發效率低下,二來質量也不高。主要還涉及領域知識問題,有些程式庫是某個領域專用的,裡面的介面都是這個領域專業的人的知識。因此這也是重用程式碼庫關鍵點。高質量的程式碼除了經驗之外,還需要專業領域知識!
重用其他程式庫缺點
可能損害效率,或者引入潛在的名字空間衝突,並且還不得不和可重用程式庫的版本更新保持同步!
解決方法
一種避免的方法是讓程式庫是自含式的,自含式程式庫定義和實現它所需要的所有功能,而沒有使用其他程式庫,除非其他程式庫的介面非常好用。
自含式程式庫會帶來兩個問題:
1、實現困難,一旦選擇自含式,那麼就必須實現所有功能
2、使用困難,
3、效率:自含式程式庫可能太低效,程式碼比較龐大,造成過度膨脹。
4、隔離:將自己和其他程式庫的依賴性中隔離開來,自含式程式庫也使自己沒辦法實現某些對程式庫有益的修改。
相關文章
- 其他感興趣的程式碼庫
- java優化程式設計-物件重用Java優化程式設計物件
- oracle資料庫中索引空間的重用Oracle資料庫索引
- 這些資料庫塊可以被重用嗎?資料庫
- Javascript中的Trait與程式碼重用JavaScriptAI
- 程式碼質量第 2 層 - 可重用的程式碼
- 程式控制--程式的其他操作
- 含有SilverLight專案的程式碼重用
- BCB中用Sender引數實現程式碼重用 (轉)
- 提高Java程式碼可重用性的三個措施Java
- UITableViewCell重用機制UIView
- Google Inbox 是如何跨平臺重用程式碼的?Go
- 過去兩年中我對程式碼重用的體驗
- 提高Java程式碼可重用性的三個措施 (轉)Java
- BCB中用Sender實現程式碼重用(糾正篇) (轉)
- Oracle with重用子查詢Oracle
- OBJECT_ID的重用Object
- C++各大有名庫的介紹——其他庫C++
- WPF中的命令模式:打造清晰、可重用的程式碼利器模式
- 從SEED種子資料庫還原出其他庫資料庫
- golang slice 和 string 重用Golang
- OBJECT_ID的重用(二)Object
- 解決jquery和其他庫的衝突jQuery
- 如何實現jQuery與其他javascript庫相容jQueryJavaScript
- 為什麼程式碼重用仍然是一個安全噩夢
- 52. 模版和設計元素——Lotus Notes的程式碼重用
- Java 抽象類與方法:實現安全性與程式碼重用Java抽象
- VC中文FAQ寶庫之5:怎樣載入其他的應用程式 (轉)
- Git學習——遷移單一倉庫至其他程式碼託管平臺Git
- 在其他程式集訪問internal類
- visio 物件複製到其他程式物件
- MyBatis資料持久化 SQL複用(可重用的 SQL 程式碼段)MyBatis持久化SQL
- BCB高手進階 (十)用Sender引數實現程式碼重用 (轉)
- Git專案匯入其他的git倉庫Git
- 監視映象資料庫的其他資訊源資料庫
- MySQL-12.資料庫其他調優策略MySql資料庫
- 多路徑重用歸檔日誌
- Yarn的JVM重用功能—uberYarnJVM