...

代碼重用是(shì)什麽,怎樣更能使程序員受益?

2022-02-08
圖片

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

現代應用程序要(yào / yāo)成功,準确和(hé / huò)速度是(shì)兩個(gè)必要(yào / yāo)優勢。全球消費者想要(yào / yāo)的(de)産品要(yào / yāo)體現它的(de)價值,企業爲(wéi / wèi)了(le/liǎo)保持競争力,創新勢在(zài)必行。

對于(yú)軟件開發人(rén)員而(ér)言,代碼重用有助于(yú)簡化和(hé / huò)加快軟件生産,并解決與業務相關的(de)技術挑戰。要(yào / yāo)有效地(dì / de)重用代碼,就(jiù)必須對它非常了(le/liǎo)解。

在(zài)這(zhè)篇文章中,我将向你展示有關代碼重用的(de)全部。從它的(de)定義、好處,到(dào)什麽時(shí)候最好不(bù)用以(yǐ)及不(bù)用的(de)原因,爲(wéi / wèi)你提供優化工作流程所需的(de)所有信息。

什麽是(shì)代碼重用,何時(shí)重用?

代碼重用也(yě)稱爲(wéi / wèi)軟件重用。顧名思義,它是(shì)對現有(已經寫好的(de))代碼進行重用,這(zhè)些代碼來(lái)自外部資源或過往項目,并用之(zhī)開發新軟件。

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

開發快速、可靠和(hé / huò)安全的(de)軟件始終需要(yào / yāo)大(dà)量編程技能和(hé / huò)知識。因此,開發人(rén)員需要(yào / yāo)先分析應用程序的(de)條件和(hé / huò)要(yào / yāo)求,然後再進行代碼重用。總的(de)來(lái)看,代碼重用的(de)有利條件包括:

  • 代碼轉移到(dào)不(bù)同的(de)硬件。

  • 代碼沒有影響應用程序長期安全性的(de)缺陷。

  • 代碼可以(yǐ)輕松在(zài)新應用程序中擴展和(hé / huò)接受。

鑒于(yú)以(yǐ)上(shàng)條件,現在(zài)讓我們看看代碼重用的(de)好處。

代碼重用的(de)好處

重用代碼優點很多,并和(hé / huò)速度以(yǐ)及質量有關。具體來(lái)看:

1、大(dà)幅縮短整體開發時(shí)間

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

通過代碼重用,程序員在(zài)開發新應用程序時(shí)不(bù)必從頭開始。由于(yú)他(tā)們可以(yǐ)在(zài)不(bù)同應用程序中使用相同代碼來(lái)實現類似功能,這(zhè)大(dà)大(dà)減少了(le/liǎo)整體應用程序的(de)開發時(shí)間。

此外,Python Package Index 和(hé / huò) GitHub 等工具可幫助開發人(rén)員查找新軟件可用的(de)現有代碼。由于(yú)基礎編碼額外節省了(le/liǎo)時(shí)間,開發人(rén)員可以(yǐ)有時(shí)間編寫新的(de)、特有的(de)代碼,爲(wéi / wèi)産品增加更多的(de)價值。

2、降低成本,改進産品

除了(le/liǎo)減少整體應用開發時(shí)間外,代碼重用還有助于(yú)保障應用開發預算。由于(yú)開發人(rén)員可以(yǐ)使用已有代碼,企業不(bù)再需要(yào / yāo)使用額外資源,從而(ér)控制應用程序開發成本。

此外,如果需要(yào / yāo),人(rén)們可以(yǐ)将重複編寫相同代碼節省的(de)時(shí)間投入到(dào)編寫特有代碼中,以(yǐ)提高産品質量。對高質量可重用的(de)代碼的(de)唯一(yī / yì /yí)要(yào / yāo)求就(jiù)是(shì)安全可靠。

3、增強用戶體驗

在(zài)提升用戶體驗和(hé / huò)提高用戶保留率方面,代碼重用可以(yǐ)發揮重要(yào / yāo)作用。由于(yú)重用的(de)代碼安全可靠,因此将爲(wéi / wèi)應用程序的(de)功能增加更多價值。此外,由于(yú)代碼少了(le/liǎo),出(chū)錯的(de)幾率也(yě)會降低。

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

4、避免代碼臃腫

高效、系統化的(de)代碼重用有助于(yú)避免代碼臃腫問題,即計算機指令和(hé / huò)源代碼過多的(de)情況。任何代碼過長且浪費大(dà)量資源的(de)情況都被視爲(wéi / wèi)臃腫。

應用程序開發過程中,有效利用資源是(shì)重中之(zhī)重。因此,其關鍵是(shì)将代碼作爲(wéi / wèi)單個(gè)組件在(zài)所有系統之(zhī)間系統地(dì / de)共享,以(yǐ)避免代碼中出(chū)現不(bù)需要(yào / yāo)的(de)功能。

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

代碼重用并不(bù)适合所有項目。因此開發人(rén)員有必要(yào / yāo)先評估重用條件,然後再進行代碼重用。

一(yī / yì /yí)般來(lái)說(shuō),如果開發人(rén)員使用的(de)代碼隻是(shì)部分,那麽最好完全避免代碼重用,因爲(wéi / wèi)在(zài)這(zhè)種情況下,它可能會導緻質量問題,從而(ér)帶來(lái)反效果:浪費時(shí)間并造成産品缺陷。

在(zài)這(zhè)種情況下,最好先确認應用的(de)基本功能,即了(le/liǎo)解代碼的(de)功能,然後再創建新代碼來(lái)執行所需行爲(wéi / wèi)。

代碼重用的(de)缺點

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

以(yǐ)下是(shì)代碼重用的(de)一(yī / yì /yí)些缺點:

1、性能較差

框架或庫的(de)性能取決于(yú)兩個(gè)重要(yào / yāo)因素:

  • 編程語言

  • 平台

因此,在(zài)某些情況下,框架的(de)工作速度可能比預期要(yào / yāo)慢,這(zhè)可能會妨礙應用的(de)整體性能。所以(yǐ)在(zài)這(zhè)種情況下,建議構建一(yī / yì /yí)個(gè)專門的(de)解決方案,而(ér)并非一(yī / yì /yí)個(gè)公共庫。

此外,如果你在(zài)本地(dì / de)系統中工作,在(zài)整個(gè)系統上(shàng)訪問 API 有時(shí)可能慢于(yú)解決問題。除了(le/liǎo) API 會減慢系統速度之(zhī)外,模塊化系統也(yě)容易産生瓶頸。

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

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

除了(le/liǎo)技術問題外,還可能存在(zài)責任和(hé / huò)許可問題。重用代碼在(zài)安全上(shàng)不(bù)如新編寫的(de)符合安全标準的(de)代碼。

代碼重用的(de)挑戰

代碼重用所涉及的(de)挑戰既是(shì)操作性的(de),也(yě)是(shì)技術性的(de)。我們将在(zài)下面詳細介紹這(zhè)兩種挑戰。

1、操作性挑戰

在(zài)開發可重用代碼時(shí),項目經理需要(yào / yāo)在(zài)項目本身開始時(shí)添加額外資源。因此項目經理必須同時(shí)考慮長期和(hé / huò)短期計劃。

爲(wéi / wèi)了(le/liǎo)獲得短期利益,項目經理必須快速設計出(chū)滿足客戶期望的(de)軟件;爲(wéi / wèi)了(le/liǎo)長期利益,他(tā)們必須檢閱适當的(de)文檔、設計和(hé / huò)代碼質量。

此外,對于(yú)有計劃的(de)代碼重用,開發人(rén)員需要(yào / yāo)額外時(shí)間來(lái)編寫代碼文檔。爲(wéi / wèi)此,他(tā)們需要(yào / yāo)對代碼徹底測試。由于(yú)需要(yào / yāo)額外的(de)時(shí)間,因此如果開發人(rén)員的(de)時(shí)間要(yào / yāo)求緊張,他(tā)們可能很難在(zài)最後期限前完成。

2、技術性挑戰

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

代碼重用最佳實踐

代碼重用有很多好處。但是(shì),如果開發人(rén)員不(bù)實施最佳實踐,他(tā)們就(jiù)無法最大(dà)化收益。爲(wéi / wèi)此,我列出(chū)了(le/liǎo)一(yī / yì /yí)些代碼重用的(de)最佳實踐。

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

對于(yú)程序員來(lái)說(shuō),管理代碼重用中的(de)補丁總是(shì)很重要(yào / yāo)的(de)。監控外部組件意味着隻要(yào / yāo)檢測到(dào)漏洞,開發人(rén)員就(jiù)會收到(dào)通知。此外,監控還允許開發人(rén)員在(zài)任何惡意軟件襲擊之(zhī)前修複問題。

因此,請确保你有一(yī / yì /yí)個(gè)文檔化的(de)程序來(lái)說(shuō)明如何及時(shí)實施補丁。

2、僅從可信來(lái)源重用代碼

可重用代碼必須始終來(lái)自具有大(dà)量活動用戶的(de)真實庫。如果使用該庫,開發人(rén)員就(jiù)可以(yǐ)更好地(dì / de)處理暴露出(chū)來(lái)的(de)漏洞。

另一(yī / yì /yí)方面,如果你使用不(bù)可靠的(de)源代碼,它可能會損害産品和(hé / huò)企業聲譽。

3、培訓開發人(rén)員

開發過程中的(de)重大(dà)變化可能來(lái)自思維方式的(de)轉變。有必要(yào / yāo)培訓開發人(rén)員有關安全的(de)重要(yào / yāo)性。因此,憑借适當的(de)知識和(hé / huò)理解,他(tā)們在(zài)選擇可重用代碼時(shí)将做出(chū)更好的(de)決策。

此外,代碼安全方面的(de)基礎培訓将使開發人(rén)員能夠創建更安全的(de)代碼。

4、适當的(de)文檔

軟件供應鏈文檔是(shì)一(yī / yì /yí)項非常重要(yào / yāo)的(de)實踐,這(zhè)有助于(yú)最大(dà)限度地(dì / de)發揮代碼重用的(de)好處。此外,因爲(wéi / wèi)涉及許多第三方組件,适當的(de)文檔對于(yú)大(dà)型企業來(lái)說(shuō)至關重要(yào / yāo),否則,很有可能會忘記代碼在(zài)哪裏被重用了(le/liǎo)。

5、重用代碼協助優化

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

當然,并非所有情況都支持代碼重用。正如我們所看到(dào)的(de),有時(shí)你就(jiù)是(shì)需要(yào / yāo)簡單創建些代碼段用于(yú)抓取。此外,代碼重用也(yě)有一(yī / yì /yí)些缺點,對你可能适用,也(yě)可能不(bù)适用。

雖然最終決定取決于(yú)你和(hé / huò)你的(de)個(gè)人(rén)需求,但依照我分享的(de)最佳實踐可以(yǐ)幫助你了(le/liǎo)解何時(shí)重用代碼以(yǐ)及如何重用代碼,從而(ér)提高工作效率。


來(lái)源: 51CTO