作者丨Code Reuse
譯者丨朱鋼
審校丨孫淑娟、梁策
現(xiàn)代應(yīng)用程序要成功,準確和速度是兩個必要優(yōu)勢。全球消費者想要的產(chǎn)品要體現(xiàn)它的價值,企業(yè)為了保持競爭力,創(chuàng)新勢在必行。
對于軟件開發(fā)人員而言,代碼重用有助于簡化和加快軟件生產(chǎn),并解決與業(yè)務(wù)相關(guān)的技術(shù)挑戰(zhàn)。要有效地重用代碼,就必須對它非常了解。
在這篇文章中,我將向你展示有關(guān)代碼重用的全部。從它的定義、好處,到什么時候最好不用以及不用的原因,為你提供優(yōu)化工作流程所需的所有信息。
什么是代碼重用,何時重用??
代碼重用也稱為軟件重用。顧名思義,它是對現(xiàn)有(已經(jīng)寫好的)代碼進行重用,這些代碼來自外部資源或過往項目,并用之開發(fā)新軟件。
程序員這樣做是為了實現(xiàn)相同或相似的功能。然而,只有高質(zhì)量的代碼(無錯或不復(fù)雜)才能被重用。這很容易理解,如果代碼有缺陷,也就不可靠不安全。
開發(fā)快速、可靠和安全的軟件始終需要大量編程技能和知識。因此,開發(fā)人員需要先分析應(yīng)用程序的條件和要求,然后再進行代碼重用。總的來看,代碼重用的有利條件包括:
- 代碼轉(zhuǎn)移到不同的硬件。
- 代碼沒有影響應(yīng)用程序長期安全性的缺陷。
- 代碼可以輕松在新應(yīng)用程序中擴展和接受。
鑒于以上條件,現(xiàn)在讓我們看看代碼重用的好處。
代碼重用的好處?
重用代碼優(yōu)點很多,并和速度以及質(zhì)量有關(guān)。具體來看:
1、大幅縮短整體開發(fā)時間
企業(yè)旨在快速開發(fā)軟件,因為這可以縮短上市時間,讓業(yè)務(wù)受益。因此,如果希望在市場上獲得“早鳥優(yōu)勢”并對同行保持領(lǐng)先,快速開發(fā)應(yīng)用程序?qū)τ谄髽I(yè)來說至關(guān)重要。
通過代碼重用,程序員在開發(fā)新應(yīng)用程序時不必從頭開始。由于他們可以在不同應(yīng)用程序中使用相同代碼來實現(xiàn)類似功能,這大大減少了整體應(yīng)用程序的開發(fā)時間。
此外,Python Package Index 和 GitHub 等工具可幫助開發(fā)人員查找新軟件可用的現(xiàn)有代碼。由于基礎(chǔ)編碼額外節(jié)省了時間,開發(fā)人員可以有時間編寫新的、特有的代碼,為產(chǎn)品增加更多的價值。
2、降低成本,改進產(chǎn)品
除了減少整體應(yīng)用開發(fā)時間外,代碼重用還有助于保障應(yīng)用開發(fā)預(yù)算。由于開發(fā)人員可以使用已有代碼,企業(yè)不再需要使用額外資源,從而控制應(yīng)用程序開發(fā)成本。
此外,如果需要,人們可以將重復(fù)編寫相同代碼節(jié)省的時間投入到編寫特有代碼中,以提高產(chǎn)品質(zhì)量。對高質(zhì)量可重用的代碼的唯一要求就是安全可靠。
3、增強用戶體驗
在提升用戶體驗和提高用戶保留率方面,代碼重用可以發(fā)揮重要作用。由于重用的代碼安全可靠,因此將為應(yīng)用程序的功能增加更多價值。此外,由于代碼少了,出錯的幾率也會降低。
此外,使用代碼更少,應(yīng)用程序就可能更簡單易懂。用戶體驗因此提升,會帶來更多的客戶參與和二次訪問,因此又有助于實現(xiàn)商業(yè)軟件目的。
4、避免代碼臃腫
高效、系統(tǒng)化的代碼重用有助于避免代碼臃腫問題,即計算機指令和源代碼過多的情況。任何代碼過長且浪費大量資源的情況都被視為臃腫。
應(yīng)用程序開發(fā)過程中,有效利用資源是重中之重。因此,其關(guān)鍵是將代碼作為單個組件在所有系統(tǒng)之間系統(tǒng)地共享,以避免代碼中出現(xiàn)不需要的功能。
何時避免代碼重用??
代碼重用并不適合所有項目。因此開發(fā)人員有必要先評估重用條件,然后再進行代碼重用。
一般來說,如果開發(fā)人員使用的代碼只是部分,那么最好完全避免代碼重用,因為在這種情況下,它可能會導(dǎo)致質(zhì)量問題,從而帶來反效果:浪費時間并造成產(chǎn)品缺陷。
在這種情況下,最好先確認應(yīng)用的基本功能,即了解代碼的功能,然后再創(chuàng)建新代碼來執(zhí)行所需行為。
代碼重用的缺點?
除了高大上的優(yōu)勢外,代碼重用也有一些缺點。企業(yè)也應(yīng)該明白,代碼重用的弊端往往要看當前情況。例如,第三方庫可能較弱,但與自定義庫相比,它減少了編程時間。
以下是代碼重用的一些缺點:
1、性能較差
框架或庫的性能取決于兩個重要因素:
- 編程語言
- 平臺
因此,在某些情況下,框架的工作速度可能比預(yù)期要慢,這可能會妨礙應(yīng)用的整體性能。所以在這種情況下,建議構(gòu)建一個專門的解決方案,而并非一個公共庫。
此外,如果你在本地系統(tǒng)中工作,在整個系統(tǒng)上訪問 API 有時可能慢于解決問題。除了 API 會減慢系統(tǒng)速度之外,模塊化系統(tǒng)也容易產(chǎn)生瓶頸。
2、無法控制第三方解決方案
長遠來看,缺乏對第三方解決方案的控制,可能會產(chǎn)生負面影響。這可能產(chǎn)生如下技術(shù)問題:?沒有進行足夠的安全測試。?添加所需功能增強時出現(xiàn)問題。
除了技術(shù)問題外,還可能存在責(zé)任和許可問題。重用代碼在安全上不如新編寫的符合安全標準的代碼。
代碼重用的挑戰(zhàn)?
代碼重用所涉及的挑戰(zhàn)既是操作性的,也是技術(shù)性的。我們將在下面詳細介紹這兩種挑戰(zhàn)。
1、操作性挑戰(zhàn)
在開發(fā)可重用代碼時,項目經(jīng)理需要在項目本身開始時添加額外資源。因此項目經(jīng)理必須同時考慮長期和短期計劃。
為了獲得短期利益,項目經(jīng)理必須快速設(shè)計出滿足客戶期望的軟件;為了長期利益,他們必須檢閱適當?shù)奈臋n、設(shè)計和代碼質(zhì)量。
此外,對于有計劃的代碼重用,開發(fā)人員需要額外時間來編寫代碼文檔。為此,他們需要對代碼徹底測試。由于需要額外的時間,因此如果開發(fā)人員的時間要求緊張,他們可能很難在最后期限前完成。
2、技術(shù)性挑戰(zhàn)
開發(fā)人員需要確保代碼的效率和可靠性才能重用它,可以通過提高內(nèi)存、利用率和響應(yīng)時間以及監(jiān)控處理器來提高代碼效率。除了代碼高效之外,它還需要可維護。確保其合規(guī)性是檢查代碼是否可維護的一種簡單而有效的方法。
代碼重用最佳實踐?
代碼重用有很多好處。但是,如果開發(fā)人員不實施最佳實踐,他們就無法最大化收益。為此,我列出了一些代碼重用的最佳實踐。
1、監(jiān)視代碼重用中的外部組件
對于程序員來說,管理代碼重用中的補丁總是很重要的。監(jiān)控外部組件意味著只要檢測到漏洞,開發(fā)人員就會收到通知。此外,監(jiān)控還允許開發(fā)人員在任何惡意軟件襲擊之前修復(fù)問題。
因此,請確保你有一個文檔化的程序來說明如何及時實施補丁。
2、僅從可信來源重用代碼
可重用代碼必須始終來自具有大量活動用戶的真實庫。如果使用該庫,開發(fā)人員就可以更好地處理暴露出來的漏洞。
另一方面,如果你使用不可靠的源代碼,它可能會損害產(chǎn)品和企業(yè)聲譽。
3、培訓(xùn)開發(fā)人員
開發(fā)過程中的重大變化可能來自思維方式的轉(zhuǎn)變。有必要培訓(xùn)開發(fā)人員有關(guān)安全的重要性。因此,憑借適當?shù)闹R和理解,他們在選擇可重用代碼時將做出更好的決策。
此外,代碼安全方面的基礎(chǔ)培訓(xùn)將使開發(fā)人員能夠創(chuàng)建更安全的代碼。
4、適當?shù)奈臋n
軟件供應(yīng)鏈文檔是一項非常重要的實踐,這有助于最大限度地發(fā)揮代碼重用的好處。此外,因為涉及許多第三方組件,適當?shù)奈臋n對于大型企業(yè)來說至關(guān)重要,否則,很有可能會忘記代碼在哪里被重用了。
5、重用代碼協(xié)助優(yōu)化
正如我于文中所示,重用代碼可以減少開發(fā)時間,優(yōu)化流程,確保你擁有強大的產(chǎn)品,甚至保持在預(yù)算限制范圍內(nèi)。
當然,并非所有情況都支持代碼重用。正如我們所看到的,有時你就是需要簡單創(chuàng)建些代碼段用于抓取。此外,代碼重用也有一些缺點,對你可能適用,也可能不適用。
雖然最終決定取決于你和你的個人需求,但依照我分享的最佳實踐可以幫助你了解何時重用代碼以及如何重用代碼,從而提高工作效率。
譯者介紹?
朱鋼,51CTO 社區(qū)編輯,2019 年 CSDN 博客專家 20 強,2020 年騰訊云 + 社區(qū)優(yōu)秀作者,10 年一線開發(fā)經(jīng)驗,曾參與獵頭服務(wù)網(wǎng)站架構(gòu)設(shè)計,企業(yè)智能客服以及大型電子政務(wù)系統(tǒng)開發(fā),主導(dǎo)某大型央企內(nèi)部防泄密和電子文檔安全監(jiān)控系統(tǒng)的建設(shè),目前在 BIM 頭部企業(yè)從事招投標軟件開發(fā)。