...

代碼重用是什麼(me),怎樣(yàng)更能(néng)使程序員受益?

2022-02-08
圖片

作者丨Code Reuse
譯者丨朱鋼
審校丨孫淑娟、梁策

現代應用程序要成(chéng)功,準确和速度是兩(liǎng)個必要優勢。全球消費者想要的産品要體現它的價值,企業爲了保持競争力,創新勢在必行。

對(duì)于軟件開(kāi)發(fā)人員而言,代碼重用有助于簡化和加快軟件生産,并解決與業務相關的技術挑戰。要有效地重用代碼,就(jiù)必須對(duì)它非常了解。

在這(zhè)篇文章中,我將(jiāng)向(xiàng)你展示有關代碼重用的全部。從它的定義、好(hǎo)處,到什麼(me)時(shí)候最好(hǎo)不用以及不用的原因,爲你提供優化工作流程所需的所有信息。

什麼(me)是代碼重用,何時(shí)重用?

代碼重用也稱爲軟件重用。顧名思義,它是對(duì)現有(已經(jīng)寫好(hǎo)的)代碼進(jìn)行重用,這(zhè)些代碼來自外部資源或過(guò)往項目,并用之開(kāi)發(fā)新軟件。

程序員這(zhè)樣(yàng)做是爲了實現相同或相似的功能(néng)。然而,隻有高質量的代碼(無錯或不複雜)才能(néng)被(bèi)重用。這(zhè)很容易理解,如果代碼有缺陷,也就(jiù)不可靠不安全。

開(kāi)發(fā)快速、可靠和安全的軟件始終需要大量編程技能(néng)和知識。因此,開(kāi)發(fā)人員需要先分析應用程序的條件和要求,然後(hòu)再進(jìn)行代碼重用。總的來看,代碼重用的有利條件包括:

  • 代碼轉移到不同的硬件。

  • 代碼沒(méi)有影響應用程序長(cháng)期安全性的缺陷。

  • 代碼可以輕松在新應用程序中擴展和接受。

鑒于以上條件,現在讓我們看看代碼重用的好(hǎo)處。

代碼重用的好(hǎo)處

重用代碼優點很多,并和速度以及質量有關。具體來看:

1、大幅縮短整體開(kāi)發(fā)時(shí)間

企業旨在快速開(kāi)發(fā)軟件,因爲這(zhè)可以縮短上市時(shí)間,讓業務受益。因此,如果希望在市場上獲得“早鳥優勢”并對(duì)同行保持領先,快速開(kāi)發(fā)應用程序對(duì)于企業來說(shuō)至關重要。

通過(guò)代碼重用,程序員在開(kāi)發(fā)新應用程序時(shí)不必從頭開(kāi)始。由于他們可以在不同應用程序中使用相同代碼來實現類似功能(néng),這(zhè)大大減少了整體應用程序的開(kāi)發(fā)時(shí)間。

此外,Python Package Index 和 GitHub 等工具可幫助開(kāi)發(fā)人員查找新軟件可用的現有代碼。由于基礎編碼額外節省了時(shí)間,開(kāi)發(fā)人員可以有時(shí)間編寫新的、特有的代碼,爲産品增加更多的價值。

2、降低成(chéng)本,改進(jìn)産品

除了減少整體應用開(kāi)發(fā)時(shí)間外,代碼重用還(hái)有助于保障應用開(kāi)發(fā)預算。由于開(kāi)發(fā)人員可以使用已有代碼,企業不再需要使用額外資源,從而控制應用程序開(kāi)發(fā)成(chéng)本。

此外,如果需要,人們可以將(jiāng)重複編寫相同代碼節省的時(shí)間投入到編寫特有代碼中,以提高産品質量。對(duì)高質量可重用的代碼的唯一要求就(jiù)是安全可靠。

3、增強用戶體驗

在提升用戶體驗和提高用戶保留率方面(miàn),代碼重用可以發(fā)揮重要作用。由于重用的代碼安全可靠,因此將(jiāng)爲應用程序的功能(néng)增加更多價值。此外,由于代碼少了,出錯的幾率也會(huì)降低。

此外,使用代碼更少,應用程序就(jiù)可能(néng)更簡單易懂。用戶體驗因此提升,會(huì)帶來更多的客戶參與和二次訪問,因此又有助于實現商業軟件目的。

4、避免代碼臃腫

高效、系統化的代碼重用有助于避免代碼臃腫問題,即計算機指令和源代碼過(guò)多的情況。任何代碼過(guò)長(cháng)且浪費大量資源的情況都(dōu)被(bèi)視爲臃腫。

應用程序開(kāi)發(fā)過(guò)程中,有效利用資源是重中之重。因此,其關鍵是將(jiāng)代碼作爲單個組件在所有系統之間系統地共享,以避免代碼中出現不需要的功能(néng)。

何時(shí)避免代碼重用?

代碼重用并不适合所有項目。因此開(kāi)發(fā)人員有必要先評估重用條件,然後(hòu)再進(jìn)行代碼重用。

一般來說(shuō),如果開(kāi)發(fā)人員使用的代碼隻是部分,那麼(me)最好(hǎo)完全避免代碼重用,因爲在這(zhè)種(zhǒng)情況下,它可能(néng)會(huì)導緻質量問題,從而帶來反效果:浪費時(shí)間并造成(chéng)産品缺陷。

在這(zhè)種(zhǒng)情況下,最好(hǎo)先确認應用的基本功能(néng),即了解代碼的功能(néng),然後(hòu)再創建新代碼來執行所需行爲。

代碼重用的缺點

除了高大上的優勢外,代碼重用也有一些缺點。企業也應該明白,代碼重用的弊端往往要看當前情況。例如,第三方庫可能(néng)較弱,但與自定義庫相比,它減少了編程時(shí)間。

以下是代碼重用的一些缺點:

1、性能(néng)較差

框架或庫的性能(néng)取決于兩(liǎng)個重要因素:

  • 編程語言

  • 平台

因此,在某些情況下,框架的工作速度可能(néng)比預期要慢,這(zhè)可能(néng)會(huì)妨礙應用的整體性能(néng)。所以在這(zhè)種(zhǒng)情況下,建議構建一個專門的解決方案,而并非一個公共庫。

此外,如果你在本地系統中工作,在整個系統上訪問 API 有時(shí)可能(néng)慢于解決問題。除了 API 會(huì)減慢系統速度之外,模塊化系統也容易産生瓶頸。

2、無法控制第三方解決方案

長(cháng)遠來看,缺乏對(duì)第三方解決方案的控制,可能(néng)會(huì)産生負面(miàn)影響。這(zhè)可能(néng)産生如下技術問題:沒(méi)有進(jìn)行足夠的安全測試。添加所需功能(néng)增強時(shí)出現問題。

除了技術問題外,還(hái)可能(néng)存在責任和許可問題。重用代碼在安全上不如新編寫的符合安全标準的代碼。

代碼重用的挑戰

代碼重用所涉及的挑戰既是操作性的,也是技術性的。我們將(jiāng)在下面(miàn)詳細介紹這(zhè)兩(liǎng)種(zhǒng)挑戰。

1、操作性挑戰

在開(kāi)發(fā)可重用代碼時(shí),項目經(jīng)理需要在項目本身開(kāi)始時(shí)添加額外資源。因此項目經(jīng)理必須同時(shí)考慮長(cháng)期和短期計劃。

爲了獲得短期利益,項目經(jīng)理必須快速設計出滿足客戶期望的軟件;爲了長(cháng)期利益,他們必須檢閱适當的文檔、設計和代碼質量。

此外,對(duì)于有計劃的代碼重用,開(kāi)發(fā)人員需要額外時(shí)間來編寫代碼文檔。爲此,他們需要對(duì)代碼徹底測試。由于需要額外的時(shí)間,因此如果開(kāi)發(fā)人員的時(shí)間要求緊張,他們可能(néng)很難在最後(hòu)期限前完成(chéng)。

2、技術性挑戰

開(kāi)發(fā)人員需要确保代碼的效率和可靠性才能(néng)重用它,可以通過(guò)提高内存、利用率和響應時(shí)間以及監控處理器來提高代碼效率。除了代碼高效之外,它還(hái)需要可維護。确保其合規性是檢查代碼是否可維護的一種(zhǒng)簡單而有效的方法。

代碼重用最佳實踐

代碼重用有很多好(hǎo)處。但是,如果開(kāi)發(fā)人員不實施最佳實踐,他們就(jiù)無法最大化收益。爲此,我列出了一些代碼重用的最佳實踐。

1、監視代碼重用中的外部組件

對(duì)于程序員來說(shuō),管理代碼重用中的補丁總是很重要的。監控外部組件意味著(zhe)隻要檢測到漏洞,開(kāi)發(fā)人員就(jiù)會(huì)收到通知。此外,監控還(hái)允許開(kāi)發(fā)人員在任何惡意軟件襲擊之前修複問題。

因此,請确保你有一個文檔化的程序來說(shuō)明如何及時(shí)實施補丁。

2、僅從可信來源重用代碼

可重用代碼必須始終來自具有大量活動用戶的真實庫。如果使用該庫,開(kāi)發(fā)人員就(jiù)可以更好(hǎo)地處理暴露出來的漏洞。

另一方面(miàn),如果你使用不可靠的源代碼,它可能(néng)會(huì)損害産品和企業聲譽。

3、培訓開(kāi)發(fā)人員

開(kāi)發(fā)過(guò)程中的重大變化可能(néng)來自思維方式的轉變。有必要培訓開(kāi)發(fā)人員有關安全的重要性。因此,憑借适當的知識和理解,他們在選擇可重用代碼時(shí)將(jiāng)做出更好(hǎo)的決策。

此外,代碼安全方面(miàn)的基礎培訓將(jiāng)使開(kāi)發(fā)人員能(néng)夠創建更安全的代碼。

4、适當的文檔

軟件供應鏈文檔是一項非常重要的實踐,這(zhè)有助于最大限度地發(fā)揮代碼重用的好(hǎo)處。此外,因爲涉及許多第三方組件,适當的文檔對(duì)于大型企業來說(shuō)至關重要,否則,很有可能(néng)會(huì)忘記代碼在哪裡(lǐ)被(bèi)重用了。

5、重用代碼協助優化

正如我于文中所示,重用代碼可以減少開(kāi)發(fā)時(shí)間,優化流程,确保你擁有強大的産品,甚至保持在預算限制範圍内。

當然,并非所有情況都(dōu)支持代碼重用。正如我們所看到的,有時(shí)你就(jiù)是需要簡單創建些代碼段用于抓取。此外,代碼重用也有一些缺點,對(duì)你可能(néng)适用,也可能(néng)不适用。

雖然最終決定取決于你和你的個人需求,但依照我分享的最佳實踐可以幫助你了解何時(shí)重用代碼以及如何重用代碼,從而提高工作效率。


來源: 51CTO