重用其他程式庫
重用其他程式庫也會帶來一些不足:需要使用者得到可重用的程式碼,需要充分考慮重用後的效率,還要關注由重用其他程式所帶來的潛在名字空間衝突,以及要考慮與可重用程式庫保持版本同步問題。
C++撰寫可用的程式庫已屬不易,撰寫可重用的程式庫更是專家級任務。效率並不是最終目標,而擴充套件性、靈活性等其他特性將會比效率更加重要
為何要重用其他程式庫
一般我們自己在編寫一個程式庫的時候,會盡量找到高效率優秀的程式庫,然後重用其中高效的程式碼。不會一個庫都全部是自己編碼,一來開發效率低下,二來質量也不高。主要還涉及領域知識問題,有些程式庫是某個領域專用的,裡面的介面都是這個領域專業的人的知識。因此這也是重用程式碼庫關鍵點。高質量的程式碼除了經驗之外,還需要專業領域知識!
重用其他程式庫缺點
可能損害效率,或者引入潛在的名字空間衝突,並且還不得不和可重用程式庫的版本更新保持同步!
解決方法
一種避免的方法是讓程式庫是自含式的,自含式程式庫定義和實現它所需要的所有功能,而沒有使用其他程式庫,除非其他程式庫的介面非常好用。
自含式程式庫會帶來兩個問題:
1、實現困難,一旦選擇自含式,那麼就必須實現所有功能
2、使用困難,
3、效率:自含式程式庫可能太低效,程式碼比較龐大,造成過度膨脹。
4、隔離:將自己和其他程式庫的依賴性中隔離開來,自含式程式庫也使自己沒辦法實現某些對程式庫有益的修改。
相關文章
- 其他感興趣的程式碼庫
- 程式碼質量第 2 層 - 可重用的程式碼
- C#中透過ObjectPool重用物件提高程式效能C#Object物件
- 從重複到重用
- [20180702]物件名重用.txt物件
- golang slice 和 string 重用Golang
- WPF中的命令模式:打造清晰、可重用的程式碼利器模式
- Java 抽象類與方法:實現安全性與程式碼重用Java抽象
- 為什麼程式碼重用仍然是一個安全噩夢
- Git學習——遷移單一倉庫至其他程式碼託管平臺Git
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- 在其他程式集訪問internal類
- MySQL-12.資料庫其他調優策略MySql資料庫
- Git專案匯入其他的git倉庫Git
- iOS開發-UITableView的重用機制iOSUIView
- 微信小程式如何使用其他應用進行支付,其他商戶號支付微信小程式
- sqlserver使用者資料庫遷移至其他盤SQLServer資料庫
- Java程式設計(2021春)——第三章類的重用筆記與思考Java程式設計筆記
- jQuery.noConflict() 方法—— jquery庫與其他庫衝突的問題解決jQuery
- 《MySQL 進階篇》十七:資料庫其他調優策略MySql資料庫
- WebAssembly 基礎以及結合其他程式語言Web
- sv新增工作負荷(新增其他程式語言)
- 可重用性是一個謬論 - UWE FRIEDRICHSEN
- 如何重用瀏覽器tab開啟頁面瀏覽器
- 其他混雜檢視 | 全方位認識 sys 系統庫
- Java程式設計基礎23——IO(其他流)&PropertiesJava程式設計
- 幽默:遊戲程式設計與其他程式設計完全不同? - hillelogram遊戲程式設計
- 詳解 Node.Js 中實現埠重用原理Node.js
- Android MVP架構改造~如何重用頂層業務AndroidMVP架構
- OpenHarmony定義元件重用樣式:@Styles裝飾器元件
- ThreadLocal執行緒重用時帶來的問題thread執行緒
- SAP ABAP Gateway Client 的 ABAP 實現,重用 HTTP ConnectionGatewayclientHTTP
- 最好的程式是程式設計師在處理其他事情時編寫的程式!程式設計師
- 【NX/UG】解決:使用重用庫的零件,下次開啟發現零件丟失問題
- 小程式播放當前視訊關閉其他視訊
- 增強 React 列表渲染:乾淨且可重用的模式React模式
- 使用 Spring Boot 構建可重用的模擬模組Spring Boot
- 其他混雜儲存過程 | 全方位認識 sys 系統庫儲存過程