CINXE.COM
Riuso di codice - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="it" dir="ltr"> <head> <meta charset="UTF-8"> <title>Riuso di codice - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )itwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"wgRequestId":"5aeec976-fd59-47e8-8739-3c872bdde8a8","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Riuso_di_codice","wgTitle":"Riuso di codice","wgCurRevisionId":140043545,"wgRevisionId":140043545,"wgArticleId":3485596,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Controllare - informatica","Controllare - settembre 2023","Codice sorgente","Concetti di programmazione"],"wgPageViewLanguage":"it","wgPageContentLanguage":"it","wgPageContentModel":"wikitext","wgRelevantPageName":"Riuso_di_codice","wgRelevantArticleId":3485596,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false, "wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"it","pageLanguageDir":"ltr","pageVariantFallbacks":"it"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q771245","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.coloriDarkMode-default":"ready", "ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.MainPageWikiList","ext.gadget.stru-commonsupload","ext.gadget.HiddenCat","ext.gadget.ReferenceTooltips","ext.gadget.TitoloErrato","ext.gadget.NewSection","ext.gadget.RichiediRevisioneBozza","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups", "ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=it&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=it&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=it&modules=ext.gadget.coloriDarkMode-default&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=it&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Riuso di codice - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//it.m.wikipedia.org/wiki/Riuso_di_codice"> <link rel="alternate" type="application/x-wiki" title="Modifica" href="/w/index.php?title=Riuso_di_codice&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (it)"> <link rel="EditURI" type="application/rsd+xml" href="//it.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://it.wikipedia.org/wiki/Riuso_di_codice"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.it"> <link rel="alternate" type="application/atom+xml" title="Feed Atom di Wikipedia" href="/w/index.php?title=Speciale:UltimeModifiche&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Riuso_di_codice rootpage-Riuso_di_codice skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Vai al contenuto</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Sito"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principale" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principale</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principale</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">sposta nella barra laterale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">nascondi</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigazione </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Pagina_principale" title="Visita la pagina principale [z]" accesskey="z"><span>Pagina principale</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Speciale:UltimeModifiche" title="Elenco delle ultime modifiche del sito [r]" accesskey="r"><span>Ultime modifiche</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Speciale:PaginaCasuale" title="Mostra una pagina a caso [x]" accesskey="x"><span>Una voce a caso</span></a></li><li id="n-nearby-pages-title" class="mw-list-item"><a href="/wiki/Speciale:NelleVicinanze"><span>Nelle vicinanze</span></a></li><li id="n-vetrina" class="mw-list-item"><a href="/wiki/Wikipedia:Vetrina"><span>Vetrina</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Aiuto:Aiuto" title="Pagine di aiuto"><span>Aiuto</span></a></li><li id="n-Sportello-informazioni" class="mw-list-item"><a href="/wiki/Aiuto:Sportello_informazioni"><span>Sportello informazioni</span></a></li> </ul> </div> </div> <div id="p-Comunità" class="vector-menu mw-portlet mw-portlet-Comunità" > <div class="vector-menu-heading"> Comunità </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/Portale:Comunit%C3%A0" title="Descrizione del progetto, cosa puoi fare, dove trovare le cose"><span>Portale Comunità</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikipedia:Bar"><span>Bar</span></a></li><li id="n-wikipediano" class="mw-list-item"><a href="/wiki/Wikipedia:Wikipediano"><span>Il Wikipediano</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="/wiki/Wikipedia:Contatti"><span>Contatti</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Pagina_principale" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="L'enciclopedia libera" src="/static/images/mobile/copyright/wikipedia-tagline-it.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Speciale:Ricerca" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Cerca in Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Ricerca</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Cerca in Wikipedia" aria-label="Cerca in Wikipedia" autocapitalize="sentences" title="Cerca in Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Speciale:Ricerca"> </div> <button class="cdx-button cdx-search-input__end-button">Ricerca</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Strumenti personali"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Aspetto"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Modifica la dimensione, la larghezza e il colore del testo" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Aspetto" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Aspetto</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_it.wikipedia.org&uselang=it" class=""><span>Fai una donazione</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speciale:CreaUtenza&returnto=Riuso+di+codice" title="Si consiglia di registrarsi e di effettuare l'accesso, anche se non è obbligatorio" class=""><span>registrati</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speciale:Entra&returnto=Riuso+di+codice" title="Si consiglia di effettuare l'accesso, anche se non è obbligatorio [o]" accesskey="o" class=""><span>entra</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Altre opzioni" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Strumenti personali" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Strumenti personali</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu utente" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_it.wikipedia.org&uselang=it"><span>Fai una donazione</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speciale:CreaUtenza&returnto=Riuso+di+codice" title="Si consiglia di registrarsi e di effettuare l'accesso, anche se non è obbligatorio"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>registrati</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speciale:Entra&returnto=Riuso+di+codice" title="Si consiglia di effettuare l'accesso, anche se non è obbligatorio [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>entra</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pagine per utenti anonimi <a href="/wiki/Aiuto:Benvenuto" aria-label="Ulteriori informazioni sulla contribuzione"><span>ulteriori informazioni</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Speciale:MieiContributi" title="Un elenco delle modifiche fatte da questo indirizzo IP [y]" accesskey="y"><span>contributi</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Speciale:MieDiscussioni" title="Discussioni sulle modifiche fatte da questo indirizzo IP [n]" accesskey="n"><span>discussioni</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Sito"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Indice" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Indice</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">sposta nella barra laterale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">nascondi</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Inizio</div> </a> </li> <li id="toc-Descrizione" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Descrizione"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Descrizione</span> </div> </a> <ul id="toc-Descrizione-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tipi_di_riuso" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Tipi_di_riuso"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Tipi di riuso</span> </div> </a> <ul id="toc-Tipi_di_riuso-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Riuso_sistematico" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Riuso_sistematico"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Riuso sistematico</span> </div> </a> <ul id="toc-Riuso_sistematico-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Campi_di_impiego" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Campi_di_impiego"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Campi di impiego</span> </div> </a> <button aria-controls="toc-Campi_di_impiego-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Attiva/disattiva la sottosezione Campi di impiego</span> </button> <ul id="toc-Campi_di_impiego-sublist" class="vector-toc-list"> <li id="toc-Librerie_software" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Librerie_software"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Librerie software</span> </div> </a> <ul id="toc-Librerie_software-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Modelli_di_progettazione" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Modelli_di_progettazione"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Modelli di progettazione</span> </div> </a> <ul id="toc-Modelli_di_progettazione-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Funzione_di_ordine_superiore" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Funzione_di_ordine_superiore"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Funzione di ordine superiore</span> </div> </a> <ul id="toc-Funzione_di_ordine_superiore-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Retrocomputing" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Retrocomputing"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Retrocomputing</span> </div> </a> <ul id="toc-Retrocomputing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sicurezza_informatica" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Sicurezza_informatica"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5</span> <span>Sicurezza informatica</span> </div> </a> <ul id="toc-Sicurezza_informatica-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Componenti" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Componenti"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6</span> <span>Componenti</span> </div> </a> <ul id="toc-Componenti-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Computer_esterni" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Computer_esterni"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.7</span> <span>Computer esterni</span> </div> </a> <ul id="toc-Computer_esterni-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Esempi_di_riuso_di_codice" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Esempi_di_riuso_di_codice"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Esempi di riuso di codice</span> </div> </a> <ul id="toc-Esempi_di_riuso_di_codice-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Note" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Note"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Note</span> </div> </a> <ul id="toc-Note-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Bibliografia" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Bibliografia"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Bibliografia</span> </div> </a> <ul id="toc-Bibliografia-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Voci_correlate" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Voci_correlate"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Voci correlate</span> </div> </a> <ul id="toc-Voci_correlate-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Indice" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Mostra/Nascondi l'indice" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Mostra/Nascondi l'indice</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Riuso di codice</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Vai a una voce in un'altra lingua. Disponibile in 15 lingue" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-15" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">15 lingue</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9_%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85_%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D8%A7%D8%AA_%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9" title="إعادة استخدام التعليمات البرمجية - arabo" lang="ar" hreflang="ar" data-title="إعادة استخدام التعليمات البرمجية" data-language-autonym="العربية" data-language-local-name="arabo" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Code_reuse" title="Code reuse - inglese" lang="en" hreflang="en" data-title="Code reuse" data-language-autonym="English" data-language-local-name="inglese" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Reutilizaci%C3%B3n_de_c%C3%B3digo" title="Reutilización de código - spagnolo" lang="es" hreflang="es" data-title="Reutilización de código" data-language-autonym="Español" data-language-local-name="spagnolo" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%85%D8%AC%D8%AF%D8%AF_%D8%A7%D8%B2_%DA%A9%D8%AF" title="استفاده مجدد از کد - persiano" lang="fa" hreflang="fa" data-title="استفاده مجدد از کد" data-language-autonym="فارسی" data-language-local-name="persiano" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/R%C3%A9utilisation_de_code" title="Réutilisation de code - francese" lang="fr" hreflang="fr" data-title="Réutilisation de code" data-language-autonym="Français" data-language-local-name="francese" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/K%C3%B3d-%C3%BAjrafelhaszn%C3%A1l%C3%A1s" title="Kód-újrafelhasználás - ungherese" lang="hu" hreflang="hu" data-title="Kód-újrafelhasználás" data-language-autonym="Magyar" data-language-local-name="ungherese" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%86%8D%E5%88%A9%E7%94%A8" title="コードの再利用 - giapponese" lang="ja" hreflang="ja" data-title="コードの再利用" data-language-autonym="日本語" data-language-local-name="giapponese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%EC%9E%AC%EC%82%AC%EC%9A%A9" title="코드 재사용 - coreano" lang="ko" hreflang="ko" data-title="코드 재사용" data-language-autonym="한국어" data-language-local-name="coreano" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Code-reuse" title="Code-reuse - olandese" lang="nl" hreflang="nl" data-title="Code-reuse" data-language-autonym="Nederlands" data-language-local-name="olandese" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Reutiliza%C3%A7%C3%A3o_de_c%C3%B3digo" title="Reutilização de código - portoghese" lang="pt" hreflang="pt" data-title="Reutilização de código" data-language-autonym="Português" data-language-local-name="portoghese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B0" title="Повторное использование кода - russo" lang="ru" hreflang="ru" data-title="Повторное использование кода" data-language-autonym="Русский" data-language-local-name="russo" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Kodun_yeniden_kullan%C4%B1m%C4%B1" title="Kodun yeniden kullanımı - turco" lang="tr" hreflang="tr" data-title="Kodun yeniden kullanımı" data-language-autonym="Türkçe" data-language-local-name="turco" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%BD%D0%B5_%D0%B2%D0%B8%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BD%D0%BD%D1%8F_%D0%BA%D0%BE%D0%B4%D1%83" title="Повторне використання коду - ucraino" lang="uk" hreflang="uk" data-title="Повторне використання коду" data-language-autonym="Українська" data-language-local-name="ucraino" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E4%BB%A3%E7%A0%81%E5%A4%8D%E7%94%A8" title="代码复用 - cinese" lang="zh" hreflang="zh" data-title="代码复用" data-language-autonym="中文" data-language-local-name="cinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E4%BB%A3%E7%A2%BC%E8%BF%94%E7%94%A8" title="代碼返用 - cantonese" lang="yue" hreflang="yue" data-title="代碼返用" data-language-autonym="粵語" data-language-local-name="cantonese" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q771245#sitelinks-wikipedia" title="Modifica collegamenti interlinguistici" class="wbc-editpage">Modifica collegamenti</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespace"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Riuso_di_codice" title="Vedi la voce [c]" accesskey="c"><span>Voce</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Discussione:Riuso_di_codice&action=edit&redlink=1" rel="discussion" class="new" title="Vedi le discussioni relative a questa pagina (la pagina non esiste) [t]" accesskey="t"><span>Discussione</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Cambia versione linguistica" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">italiano</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Visite"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Riuso_di_codice"><span>Leggi</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&veaction=edit" title="Modifica questa pagina [v]" accesskey="v"><span>Modifica</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&action=edit" title="Modifica il wikitesto di questa pagina [e]" accesskey="e"><span>Modifica wikitesto</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&action=history" title="Versioni precedenti di questa pagina [h]" accesskey="h"><span>Cronologia</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Strumenti pagine"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Strumenti" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Strumenti</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Strumenti</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">sposta nella barra laterale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">nascondi</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Altre opzioni" > <div class="vector-menu-heading"> Azioni </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Riuso_di_codice"><span>Leggi</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&veaction=edit" title="Modifica questa pagina [v]" accesskey="v"><span>Modifica</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&action=edit" title="Modifica il wikitesto di questa pagina [e]" accesskey="e"><span>Modifica wikitesto</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&action=history"><span>Cronologia</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Generale </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Speciale:PuntanoQui/Riuso_di_codice" title="Elenco di tutte le pagine che sono collegate a questa [j]" accesskey="j"><span>Puntano qui</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Speciale:ModificheCorrelate/Riuso_di_codice" rel="nofollow" title="Elenco delle ultime modifiche alle pagine collegate a questa [k]" accesskey="k"><span>Modifiche correlate</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Speciale:PagineSpeciali" title="Elenco di tutte le pagine speciali [q]" accesskey="q"><span>Pagine speciali</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&oldid=140043545" title="Collegamento permanente a questa versione di questa pagina"><span>Link permanente</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&action=info" title="Ulteriori informazioni su questa pagina"><span>Informazioni pagina</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Speciale:Cita&page=Riuso_di_codice&id=140043545&wpFormIdentifier=titleform" title="Informazioni su come citare questa pagina"><span>Cita questa voce</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Speciale:UrlShortener&url=https%3A%2F%2Fit.wikipedia.org%2Fwiki%2FRiuso_di_codice"><span>Ottieni URL breve</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Speciale:QrCode&url=https%3A%2F%2Fit.wikipedia.org%2Fwiki%2FRiuso_di_codice"><span>Scarica codice QR</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Stampa/esporta </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Speciale:Libro&bookcmd=book_creator&referer=Riuso+di+codice"><span>Crea un libro</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Speciale:DownloadAsPdf&page=Riuso_di_codice&action=show-download-screen"><span>Scarica come PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Riuso_di_codice&printable=yes" title="Versione stampabile di questa pagina [p]" accesskey="p"><span>Versione stampabile</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In altri progetti </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q771245" title="Collegamento all'elemento connesso dell'archivio dati [g]" accesskey="g"><span>Elemento Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Strumenti pagine"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Aspetto"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Aspetto</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">sposta nella barra laterale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">nascondi</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Da Wikipedia, l'enciclopedia libera.</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="it" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r133964453">.mw-parser-output .avviso .mbox-text-div>div,.mw-parser-output .avviso .mbox-text-full-div>div{font-size:90%}.mw-parser-output .avviso .mbox-image{flex-basis:52px;flex-grow:0;flex-shrink:0}.mw-parser-output .avviso .mbox-text-full-div .hide-when-compact{display:block}</style><div style="" class="ambox metadata plainlinks avviso avviso-contenuto"> <div class="avviso-immagine mbox-image noprint"><span typeof="mw:File"><a href="/wiki/File:Emblem-important.svg" class="mw-file-description" title="Voce da controllare"><img alt="Voce da controllare" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Emblem-important.svg/40px-Emblem-important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Emblem-important.svg/60px-Emblem-important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Emblem-important.svg/80px-Emblem-important.svg.png 2x" data-file-width="48" data-file-height="48" /></a></span></div> <div class="avviso-testo mbox-text"> <div class="mbox-text-div"><b>Questa voce o sezione  sull'argomento informatica è ritenuta <a href="/wiki/Aiuto:Voci_da_controllare" title="Aiuto:Voci da controllare">da controllare</a></b>. <div class="hide-when-compact"><b>Motivo</b>: <i>La voce contiene diversi paragrafi di dubbio senso o di cui non si capisce il punto, probabilmente perché si tratta di traduzioni quasi letterali dall'inglese. Bisognerebbe revisionare la voce verificando la coerenza interna di quanto scritto, oltre che espandere un minimo alcune sezioni sicuramente meritevoli di essere presenti ma striminzite.</i> <div class="noprint"><hr />Partecipa alla <a href="/w/index.php?title=Discussione:Riuso_di_codice&action=edit&redlink=1" class="new" title="Discussione:Riuso di codice (la pagina non esiste)">discussione</a> e/o <a class="external text" href="https://it.wikipedia.org/w/index.php?title=Riuso_di_codice&action=edit">correggi</a> la voce. Segui i suggerimenti del <a href="/wiki/Progetto:Informatica" title="Progetto:Informatica">progetto di riferimento</a>.</div> </div> </div> </div> </div> <p>In <a href="/wiki/Informatica" title="Informatica">informatica</a> con il termine <b>riuso di codice</b> si intende la pratica, estremamente comune nella <a href="/wiki/Programmazione_(informatica)" title="Programmazione (informatica)">programmazione</a>, di richiamare o invocare parti di <a href="/wiki/Codice_sorgente" title="Codice sorgente">codice</a> precedentemente già scritte ogni qualvolta risulta necessario, senza doverle riscrivere daccapo. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Descrizione">Descrizione</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=1" title="Modifica la sezione Descrizione" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=1" title="Edit section's source code: Descrizione"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Questo essenzialmente si concretizza nella scrittura di <a href="/wiki/Funzione_(informatica)" title="Funzione (informatica)">funzioni</a> che possono essere richiamate o invocate all'interno di uno stesso <a href="/wiki/Programma_(informatica)" title="Programma (informatica)">programma</a>, o raggruppate all'interno di <a href="/wiki/Libreria_(software)" title="Libreria (software)">librerie</a> che possono essere a loro volta "collegate" su necessità all'interno dei vari programmi oppure nelle <a href="/wiki/Application_Programming_Interface" class="mw-redirect" title="Application Programming Interface">API</a>. Nella pratica della <a href="/wiki/Programmazione_ad_oggetti" class="mw-redirect" title="Programmazione ad oggetti">programmazione ad oggetti</a>, ad essere in qualche modo "richiamate", "importate" o "<a href="/wiki/Ereditariet%C3%A0_(informatica)" title="Ereditarietà (informatica)">ereditate</a>" sono le <a href="/wiki/Classe_(informatica)" title="Classe (informatica)">classi</a>, sempre su necessità, ed eventualmente "estese" con nuove funzioni o metodi all'interno del programma stesso. </p><p>Il riuso di codice permette dunque un risparmio notevole nei tempi di scrittura di un programma da parte del <a href="/wiki/Programmatore" title="Programmatore">programmatore</a>, facilitando il lavoro di programmazione e migliorando la leggibilità del codice divenuto più corto e sintetico, ed è per questo presente in quasi tutti i <a href="/wiki/Linguaggio_di_programmazione" title="Linguaggio di programmazione">linguaggi di programmazione</a>, di cui rappresenta un'evoluzione già nelle primissime tecniche di programmazione, anche se obbliga in qualche modo il programmatore alla conoscenza delle varie librerie e funzioni disponibili o delle API. </p> <div class="mw-heading mw-heading2"><h2 id="Tipi_di_riuso">Tipi di riuso</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=2" title="Modifica la sezione Tipi di riuso" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=2" title="Edit section's source code: Tipi di riuso"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Il riuso può essere<sup id="cite_ref-:0_1-0" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>: </p> <ul><li>Opportunistico: mentre si prepara per iniziare un progetto, il team si rende conto che esistono componenti esistenti che possono essere riutilizzati.</li> <li>Pianificato: un team progetta strategicamente i componenti in modo che siano riutilizzabili in progetti futuri.</li></ul> <p>Il riuso può essere ulteriormente classificato<sup id="cite_ref-:0_1-1" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>: </p> <ul><li>Interno: un team riutilizza i propri componenti. Questa potrebbe essere una decisione aziendale, poiché il team potrebbe voler controllare un componente critico per il progetto.</li> <li>Esterno: un team può scegliere di concedere in licenza un componente di terze parti. La concessione in licenza di un componente di terze parti in genere costa al team dall'1 al 20 percento di quanto costerebbe sviluppare internamente. Il team deve anche considerare il tempo necessario per trovare, apprendere e integrare il componente.</li></ul> <p>Per quanto riguarda la forma o la struttura del riuso, il codice può essere: </p> <ul><li>Riferimento: il codice client contiene un riferimento al codice riutilizzato, pertanto hanno cicli di vita distinti e possono avere versioni distinte.</li> <li>Forked: il codice client contiene una copia locale o privata del codice riutilizzato e quindi condivide un singolo ciclo di vita e un'unica versione.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Riuso_sistematico">Riuso sistematico</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=3" title="Modifica la sezione Riuso sistematico" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=3" title="Edit section's source code: Riuso sistematico"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Il riuso sistematico del software è una strategia per aumentare la produttività e migliorare la qualità dell'industria del software. Sebbene sia semplice nel concetto, l'implementazione di successo del riutilizzo del software è difficile nella pratica. Una ragione addotta per questo è la dipendenza del riutilizzo del software dal contesto in cui è implementato. Alcuni problemi che devono essere affrontati in relazione al riuso sistematico del software sono<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:0_1-2" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>: </p> <ul><li>una visione del prodotto chiara e ben definita è una base essenziale per una linea di prodotti software (SPL).</li> <li>una strategia di implementazione evolutiva sarebbe una strategia più pragmatica per l'azienda.</li> <li>esiste la necessità di un supporto di gestione e leadership continui per garantire il successo.</li> <li>è necessaria una struttura organizzativa adeguata per supportare l'ingegneria SPL.</li> <li>il cambiamento di mentalità da un'azienda incentrata sul progetto a un'azienda orientata al prodotto è essenziale.</li> <li>Leadership manageriale a lungo termine</li> <li>Organizzazione sistematica e incrementale e cambiamento di processo</li> <li>Progettazione per il riutilizzo architettato e specifico del dominio</li> <li>Separazione: creare/supportare/utilizzare</li> <li>Capire che gli oggetti da soli non sono sufficienti</li> <li>Avviare piccole sperimentazioni e successivamente ampliarle</li> <li>Affrontare la cultura, l'esperienza e la stabilità dell'organizzazione</li> <li>Investire in infrastrutture, supporto e formazione</li> <li>Trovare campioni di riuso dedicati</li></ul> <div class="mw-heading mw-heading2"><h2 id="Campi_di_impiego">Campi di impiego</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=4" title="Modifica la sezione Campi di impiego" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=4" title="Edit section's source code: Campi di impiego"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Librerie_software">Librerie software</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=5" title="Modifica la sezione Librerie software" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=5" title="Edit section's source code: Librerie software"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r130657691">body:not(.skin-minerva) .mw-parser-output .vedi-anche{font-size:95%}</style><style data-mw-deduplicate="TemplateStyles:r139142988">.mw-parser-output .hatnote-content{align-items:center;display:flex}.mw-parser-output .hatnote-icon{flex-shrink:0}.mw-parser-output .hatnote-icon img{display:flex}.mw-parser-output .hatnote-text{font-style:italic}body:not(.skin-minerva) .mw-parser-output .hatnote{border:1px solid #CCC;display:flex;margin:.5em 0;padding:.2em .5em}body:not(.skin-minerva) .mw-parser-output .hatnote-text{padding-left:.5em}body.skin-minerva .mw-parser-output .hatnote-icon{padding-right:8px}body.skin-minerva .mw-parser-output .hatnote-icon img{height:auto;width:16px}body.skin--responsive .mw-parser-output .hatnote a.new{color:#d73333}body.skin--responsive .mw-parser-output .hatnote a.new:visited{color:#a55858}</style> <div class="hatnote noprint vedi-anche"> <div class="hatnote-content"><span class="noviewer hatnote-icon" typeof="mw:File"><span><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/18px-Magnifying_glass_icon_mgx2.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/27px-Magnifying_glass_icon_mgx2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/36px-Magnifying_glass_icon_mgx2.svg.png 2x" data-file-width="286" data-file-height="280" /></span></span> <span class="hatnote-text">Lo stesso argomento in dettaglio: <b><a href="/wiki/Libreria_(software)" title="Libreria (software)">Libreria (software)</a></b>.</span></div> </div><p> Un esempio molto comune di riutilizzo del codice è la tecnica di utilizzo di una libreria software. Di seguito un esempio di codice riusabile della libreria <a href="/wiki/JQuery" title="JQuery">JQuery</a>:</p><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">$</span><span class="p">(</span><span class="s2">"a"</span><span class="p">).</span><span class="nx">css</span><span class="p">(</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">color</span><span class="o">:</span><span class="w"> </span><span class="s1">'red'</span><span class="p">,</span><span class="w"> </span><span class="nx">width</span><span class="o">:</span><span class="w"> </span><span class="s1">'150px'</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">)</span> <span class="w"> </span><span class="p">.</span><span class="nx">show</span><span class="p">(</span><span class="w"> </span><span class="s1">'1000'</span><span class="w"> </span><span class="p">)</span> <span class="w"> </span><span class="p">.</span><span class="nx">click</span><span class="p">(</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">alert</span><span class="p">(</span><span class="w"> </span><span class="s1">'clicked!'</span><span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">);</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Modelli_di_progettazione">Modelli di progettazione</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=6" title="Modifica la sezione Modelli di progettazione" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=6" title="Edit section's source code: Modelli di progettazione"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r130657691"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r139142988"> <div class="hatnote noprint vedi-anche"> <div class="hatnote-content"><span class="noviewer hatnote-icon" typeof="mw:File"><span><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/18px-Magnifying_glass_icon_mgx2.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/27px-Magnifying_glass_icon_mgx2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/36px-Magnifying_glass_icon_mgx2.svg.png 2x" data-file-width="286" data-file-height="280" /></span></span> <span class="hatnote-text">Lo stesso argomento in dettaglio: <b><a href="/wiki/Design_pattern" title="Design pattern">Design pattern</a></b>.</span></div> </div><p> Un "design pattern" o "modello di progettazione" è una soluzione generale a un problema ricorrente. I modelli di progettazione sono più concettuali che tangibili e possono essere modificati per soddisfare l'esatta esigenza. Tuttavia, classi e interfacce astratte possono essere riutilizzate per implementare determinati modelli. Di seguito un esempio di design pattern riusabile:</p><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">public</span> <span class="k">class</span> <span class="nc">EagerSingleton</span> <span class="p">{</span> <span class="c1">// create an instance of the class.</span> <span class="k">private</span> <span class="k">static</span> <span class="nx">EagerSingleton</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">EagerSingleton</span><span class="p">();</span> <span class="c1">// private constructor, so it cannot be instantiated outside this class.</span> <span class="k">private</span> <span class="nx">EagerSingleton</span><span class="p">()</span> <span class="p">{</span> <span class="p">}</span> <span class="c1">// get the only instance of the object created.</span> <span class="k">public</span> <span class="k">static</span> <span class="nx">EagerSingleton</span> <span class="nx">getInstance</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Funzione_di_ordine_superiore">Funzione di ordine superiore</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=7" title="Modifica la sezione Funzione di ordine superiore" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=7" title="Edit section's source code: Funzione di ordine superiore"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r130657691"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r139142988"> <div class="hatnote noprint vedi-anche"> <div class="hatnote-content"><span class="noviewer hatnote-icon" typeof="mw:File"><span><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/18px-Magnifying_glass_icon_mgx2.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/27px-Magnifying_glass_icon_mgx2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/36px-Magnifying_glass_icon_mgx2.svg.png 2x" data-file-width="286" data-file-height="280" /></span></span> <span class="hatnote-text">Lo stesso argomento in dettaglio: <b><a href="/wiki/Funzione_di_ordine_superiore" title="Funzione di ordine superiore">Funzione di ordine superiore</a></b>.</span></div> </div><p> Nella programmazione funzionale le funzioni di ordine superiore possono essere utilizzate in molti casi in cui in precedenza venivano utilizzati <a href="/wiki/Design_pattern" title="Design pattern">design pattern</a> o framework. Di seguito un esempio con <a href="/wiki/Julia_(linguaggio_di_programmazione)" title="Julia (linguaggio di programmazione)">Julia</a>:</p><div class="mw-highlight mw-highlight-lang-julia mw-content-ltr" dir="ltr"><pre><span></span><span class="n">julia</span><span class="o">></span><span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="n">twice</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="n">result</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">f</span><span class="p">(</span><span class="n">a</span><span class="p">))</span> <span class="w"> </span><span class="k">end</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span> <span class="w"> </span><span class="k">end</span> <span class="n">twice</span><span class="w"> </span><span class="p">(</span><span class="n">generic</span><span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">method</span><span class="p">)</span> <span class="n">julia</span><span class="o">></span><span class="w"> </span><span class="n">plusthree</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">3</span> <span class="n">plusthree</span><span class="w"> </span><span class="p">(</span><span class="n">generic</span><span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">method</span><span class="p">)</span> <span class="n">julia</span><span class="o">></span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">twice</span><span class="p">(</span><span class="n">plusthree</span><span class="p">)</span> <span class="p">(</span><span class="o">::</span><span class="kt">var</span><span class="s">"#result#3"</span><span class="p">{</span><span class="kt">typeof</span><span class="p">(</span><span class="kt">plusthree</span><span class="p">)})</span><span class="w"> </span><span class="p">(</span><span class="n">generic</span><span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">method</span><span class="p">)</span> <span class="n">julia</span><span class="o">></span><span class="w"> </span><span class="n">g</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span> <span class="mi">13</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Retrocomputing">Retrocomputing</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=8" title="Modifica la sezione Retrocomputing" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=8" title="Edit section's source code: Retrocomputing"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r130657691"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r139142988"> <div class="hatnote noprint vedi-anche"> <div class="hatnote-content"><span class="noviewer hatnote-icon" typeof="mw:File"><span><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/18px-Magnifying_glass_icon_mgx2.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/27px-Magnifying_glass_icon_mgx2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/36px-Magnifying_glass_icon_mgx2.svg.png 2x" data-file-width="286" data-file-height="280" /></span></span> <span class="hatnote-text">Lo stesso argomento in dettaglio: <b><a href="/wiki/Retrocomputing" title="Retrocomputing">Retrocomputing</a></b>.</span></div> </div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Apple_IIc_presentazione.jpg" class="mw-file-description"><img alt="Un computer Apple retrò" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Apple_IIc_presentazione.jpg/220px-Apple_IIc_presentazione.jpg" decoding="async" width="220" height="243" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Apple_IIc_presentazione.jpg/330px-Apple_IIc_presentazione.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Apple_IIc_presentazione.jpg/440px-Apple_IIc_presentazione.jpg 2x" data-file-width="800" data-file-height="884" /></a><figcaption>Un computer Apple retrò</figcaption></figure> <p>Il retrocomputing comprende il riutilizzo del codice, semplicemente perché i programmi <a href="/wiki/Stile_r%C3%A9tro" title="Stile rétro">retrò</a> vengono eseguiti su computer più vecchi o emulatori per essi. </p> <div class="mw-heading mw-heading3"><h3 id="Sicurezza_informatica">Sicurezza informatica</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=9" title="Modifica la sezione Sicurezza informatica" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=9" title="Edit section's source code: Sicurezza informatica"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Nella sicurezza informatica il riutilizzo del codice è impiegato come metodo di exploit del software<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>. Quando un utente malintenzionato non è in grado di inserire direttamente il codice per modificare il flusso di controllo di un programma, ad esempio in presenza di difese da iniezione di codice come W ^ X, può reindirizzare il flusso di controllo a sequenze di codice esistenti in memoria. </p> <div class="mw-heading mw-heading3"><h3 id="Componenti">Componenti</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=10" title="Modifica la sezione Componenti" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=10" title="Edit section's source code: Componenti"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div><p> Un componente, in una misura orientata agli oggetti, rappresenta un insieme di classi collaborative (o solo una classe) e le sue interfacce<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>. Le interfacce sono responsabili dell'abilitazione alla sostituzione dei componenti. I componenti riutilizzabili possono anche essere isolati e sincronizzati tra i repository SCM utilizzando le tecnologie di gestione del codice sorgente dei componenti (CSCM)<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>. Di seguito un esempio di componente riusabile:</p><div class="mw-highlight mw-highlight-lang-react mw-content-ltr" dir="ltr"><pre><span></span><span class="k">import</span><span class="w"> </span><span class="nx">React</span><span class="w"> </span><span class="nx">da</span><span class="w"> </span><span class="s1">'React'</span><span class="p">;</span><span class="w"> </span> <span class="k">import</span><span class="w"> </span><span class="p">{</span><span class="nx">Logo</span><span class="p">,</span><span class="w"> </span><span class="nx">ProfileImage</span><span class="p">,</span><span class="w"> </span><span class="nx">BurgerMenu</span><span class="p">,</span><span class="w"> </span><span class="nx">HeaderWrapper</span><span class="p">}</span><span class="w"> </span><span class="nx">da</span><span class="w"> </span><span class="s2">"component"</span><span class="p">;</span><span class="w"> </span> <span class="kd">const</span><span class="w"> </span><span class="nx">Header</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="p">(</span><span class="w"> </span> <span class="w"> </span><span class="p"><</span><span class="nt">HeaderWrapper</span><span class="p">></span><span class="w"> </span> <span class="w"> </span><span class="p"><</span><span class="nt">Logo</span><span class="p">></span><span class="w"> </span><span class="p"></</span><span class="nt">Logo</span><span class="p">></span><span class="w"> </span> <span class="w"> </span><span class="p"><</span><span class="nt">ProfileImage</span><span class="p">></span><span class="w"> </span><span class="p"></</span><span class="nt">ProfileImage</span><span class="p">></span><span class="w"> </span> <span class="w"> </span><span class="p"><</span><span class="nt">BurgerMenu</span><span class="p">></span><span class="w"> </span><span class="p"></</span><span class="nt">BurgerMenu</span><span class="p">></span><span class="w"> </span> <span class="w"> </span><span class="p"></</span><span class="nt">HeaderWrapper</span><span class="p">></span><span class="w"> </span> <span class="p">)</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Computer_esterni">Computer esterni</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=11" title="Modifica la sezione Computer esterni" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=11" title="Edit section's source code: Computer esterni"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>L'intero concetto di "riutilizzo del codice" può comprendere anche applicazioni di ingegneria al di fuori del software. Ad esempio, la modellazione parametrica nella progettazione assistita da computer consente di creare progetti riutilizzabili. </p> <div class="mw-heading mw-heading2"><h2 id="Esempi_di_riuso_di_codice">Esempi di riuso di codice</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=12" title="Modifica la sezione Esempi di riuso di codice" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=12" title="Edit section's source code: Esempi di riuso di codice"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Modello-riusabile.png" class="mw-file-description"><img alt="La maggior parte del codice HTML, CSS e (se presente) JS di questa pagina può essere riusato per creare più siti web con contenuti diversi ma aventi lo stesso layout o un layout molto simile." src="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Modello-riusabile.png/220px-Modello-riusabile.png" decoding="async" width="220" height="205" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Modello-riusabile.png/330px-Modello-riusabile.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/72/Modello-riusabile.png/440px-Modello-riusabile.png 2x" data-file-width="1089" data-file-height="1014" /></a><figcaption>Risultato</figcaption></figure> <p>La maggior parte del codice HTML, CSS e (se presente) JS di una pagina web può essere riusato per creare più pagine web con contenuti diversi ma aventi lo stesso layout o un layout molto simile. </p><p>Di seguito una porzione di codice riusabile HTML 5 della pagina mostrata nell'immagine. </p> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:External-css.png" class="mw-file-description"><img alt="I CSS esterni possono essere richiamati da un numero infinito di pagine HTML. Viene quindi riusato lo stesso codice di un solo file CSS." src="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/External-css.png/220px-External-css.png" decoding="async" width="220" height="188" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/External-css.png/330px-External-css.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/65/External-css.png/440px-External-css.png 2x" data-file-width="726" data-file-height="622" /></a><figcaption>I CSS esterni possono essere richiamati da un numero infinito di pagine HTML. Viene quindi riusato lo stesso codice di un solo file CSS.</figcaption></figure> <div class="mw-highlight mw-highlight-lang-html mw-content-ltr" dir="ltr"><pre><span></span><span class="cp"><!DOCTYPE HTML></span> <span class="p"><</span><span class="nt">html</span><span class="p">></span> <span class="p"><</span><span class="nt">head</span><span class="p">></span> <span class="p"><</span><span class="nt">meta</span> <span class="na">http-equiv</span><span class="o">=</span><span class="s">"Content-Type"</span> <span class="na">content</span><span class="o">=</span><span class="s">"text/html; charset=UTF-8"</span> <span class="p">/></span> <span class="p"><</span><span class="nt">title</span><span class="p">></span>My Website<span class="p"></</span><span class="nt">title</span><span class="p">></span> <span class="p"></</span><span class="nt">head</span><span class="p">></span> <span class="p"><</span><span class="nt">body</span><span class="p">></span> <span class="p"><</span><span class="nt">header</span><span class="p">></span> <span class="p"><</span><span class="nt">nav</span><span class="p">></span> <span class="p"><</span><span class="nt">ul</span><span class="p">></span> <span class="p"><</span><span class="nt">li</span><span class="p">></span>Menu<span class="p"></</span><span class="nt">li</span><span class="p">></span> <span class="p"></</span><span class="nt">ul</span><span class="p">></span> <span class="p"></</span><span class="nt">nav</span><span class="p">></span> <span class="p"></</span><span class="nt">header</span><span class="p">></span> <span class="p"><</span><span class="nt">section</span><span class="p">></span> <span class="p"><</span><span class="nt">article</span><span class="p">></span> <span class="p"><</span><span class="nt">header</span><span class="p">></span> <span class="p"><</span><span class="nt">h2</span><span class="p">></span>Article title<span class="p"></</span><span class="nt">h2</span><span class="p">></span> <span class="p"><</span><span class="nt">p</span><span class="p">></span>Posted on <span class="p"><</span><span class="nt">time</span> <span class="na">datetime</span><span class="o">=</span><span class="s">"2020-09-04T16:31:24+02:00"</span><span class="p">></span>September 4th 2020<span class="p"></</span><span class="nt">time</span><span class="p">></span> by <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"#"</span><span class="p">></span>Writer<span class="p"></</span><span class="nt">a</span><span class="p">></span> - <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"#comments"</span><span class="p">></span>6 comments<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">p</span><span class="p">></span> <span class="p"></</span><span class="nt">header</span><span class="p">></span> <span class="p"><</span><span class="nt">p</span><span class="p">></span>Pellentesque habitant morbi tristique senectus. <span class="p"></</span><span class="nt">p</span><span class="p">></span> <span class="p"></</span><span class="nt">article</span><span class="p">></span> <span class="p"></</span><span class="nt">section</span><span class="p">></span> <span class="p"><</span><span class="nt">aside</span><span class="p">></span> <span class="p"><</span><span class="nt">h2</span><span class="p">></span>About section<span class="p"></</span><span class="nt">h2</span><span class="p">></span> <span class="p"><</span><span class="nt">p</span><span class="p">></span>Donec eu libero sit amet quam egestas semper.<span class="p"></</span><span class="nt">p</span><span class="p">></span> <span class="p"></</span><span class="nt">aside</span><span class="p">></span> <span class="p"><</span><span class="nt">footer</span><span class="p">></span> <span class="p"><</span><span class="nt">p</span><span class="p">></span>Copyright 2020 Kate Ross<span class="p"></</span><span class="nt">p</span><span class="p">></span> <span class="p"></</span><span class="nt">footer</span><span class="p">></span> <span class="p"></</span><span class="nt">body</span><span class="p">></span> <span class="p"></</span><span class="nt">html</span><span class="p">></span> </pre></div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Svg-canvas.png" class="mw-file-description"><img alt="Per creare la composizione in basso è stato riusato il codice del cerchio in alto (sia nel caso di SVG che di Canvas)" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/26/Svg-canvas.png/220px-Svg-canvas.png" decoding="async" width="220" height="308" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/26/Svg-canvas.png/330px-Svg-canvas.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/26/Svg-canvas.png/440px-Svg-canvas.png 2x" data-file-width="571" data-file-height="800" /></a><figcaption>Per creare la composizione in basso è stato riusato il codice del cerchio in alto (sia nel caso di SVG che di Canvas)</figcaption></figure> <p>Anche nel caso di <a href="/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a> e <a href="/wiki/WebGL" title="WebGL">WebGL</a>/<a href="/wiki/Canvas_(elemento_HTML)" title="Canvas (elemento HTML)">Canvas</a> può essere riusato parte dello stesso codice per creare progetti diversi: </p> <p><b>Codice SVG riusato per creare il cerchio la seconda volta</b></p><div class="mw-highlight mw-highlight-lang-html mw-content-ltr" dir="ltr"><pre><span></span> <span class="p"><</span><span class="nt">g</span> <span class="na">inkscape:label</span><span class="o">=</span><span class="s">"Layer 1"</span> <span class="na">inkscape:groupmode</span><span class="o">=</span><span class="s">"layer"</span> <span class="na">id</span><span class="o">=</span><span class="s">"layer1"</span><span class="p">></span> <span class="p"><</span><span class="nt">circle</span> <span class="na">id</span><span class="o">=</span><span class="s">"path3699"</span> <span class="na">cx</span><span class="o">=</span><span class="s">"97.517845"</span> <span class="na">cy</span><span class="o">=</span><span class="s">"131.44643"</span> <span class="na">r</span><span class="o">=</span><span class="s">"34.773811"</span> <span class="na">style</span><span class="o">=</span><span class="s">"stroke-width:0.26458332"</span> <span class="p">/></span> <span class="p"></</span><span class="nt">g</span><span class="p">></span> </pre></div><p><b>Codice Canvas riusato per creare il cerchio la seconda volta</b></p><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">var</span><span class="w"> </span><span class="nx">SVGIcons</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="s2">""</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">draw</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">ctx</span><span class="p">){</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">save</span><span class="p">();</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">strokeStyle</span><span class="o">=</span><span class="s2">"rgba(0,0,0,0)"</span><span class="p">;</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">miterLimit</span><span class="o">=</span><span class="mf">4</span><span class="p">;</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">font</span><span class="o">=</span><span class="s2">"15px / 21.4286px ''"</span><span class="p">;</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">font</span><span class="o">=</span><span class="s2">" 15px "</span><span class="p">;</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">font</span><span class="o">=</span><span class="s2">" 15px "</span><span class="p">;</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">arc</span><span class="p">(</span><span class="mf">97.517845</span><span class="p">,</span><span class="mf">131.44643</span><span class="p">,</span><span class="mf">34.773811</span><span class="p">,</span><span class="mf">0</span><span class="p">,</span><span class="mf">6.283185307179586</span><span class="p">,</span><span class="kc">false</span><span class="p">);</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">closePath</span><span class="p">();</span> <span class="p">}</span> <span class="p">}}</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Note">Note</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=13" title="Modifica la sezione Note" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=13" title="Edit section's source code: Note"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-:0-1"><span class="mw-cite-backlink"><b>^</b> <sup><i><a href="#cite_ref-:0_1-0">a</a></i></sup> <sup><i><a href="#cite_ref-:0_1-1">b</a></i></sup> <sup><i><a href="#cite_ref-:0_1-2">c</a></i></sup></span> <span class="reference-text"><cite class="citation web" style="font-style:normal"> <a rel="nofollow" class="external text" href="http://martin.griss.com/pubs/fusion1.htm"><span style="font-style:italic;">Systematic Software Reuse: Architecture, Process and Organization are Crucial</span></a>, su <span style="font-style:italic;">martin.griss.com</span>. <small>URL consultato il 16 febbraio 2021</small>.</cite></span> </li> <li id="cite_note-2"><a href="#cite_ref-2"><b>^</b></a> <span class="reference-text"><cite class="citation pubblicazione" style="font-style:normal"> Mark Chapman e Alta van der Merwe, <a rel="nofollow" class="external text" href="https://doi.org/10.1145/1456659.1456662"><span style="font-style:italic;">Contemplating systematic software reuse in a project-centric company</span></a>, in <span style="font-style:italic;">Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology</span>, Association for Computing Machinery, 6 ottobre 2008, pp. 16–26, <a href="/wiki/Digital_object_identifier" title="Digital object identifier">DOI</a>:<a rel="nofollow" class="external text" href="https://dx.doi.org/10.1145%2F1456659.1456662">10.1145/1456659.1456662</a>. <small>URL consultato il 16 febbraio 2021</small>.</cite></span> </li> <li id="cite_note-3"><a href="#cite_ref-3"><b>^</b></a> <span class="reference-text"><cite class="citation pubblicazione" style="font-style:normal"> Tyler Bletsch, <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/book/10.5555/2338075"><span style="font-style:italic;">Code-reuse attacks: new frontiers and defenses</span></a>, North Carolina State University, 2011. <small>URL consultato il 16 febbraio 2021</small>.</cite></span> </li> <li id="cite_note-4"><a href="#cite_ref-4"><b>^</b></a> <span class="reference-text"><cite class="citation web" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) Indrek Lasn, <a rel="nofollow" class="external text" href="https://medium.com/better-programming/what-is-component-oriented-programming-cop-10b32ae1fa1c"><span style="font-style:italic;">What is Component-Oriented Programming (COP)?</span></a>, su <span style="font-style:italic;">Medium</span>, 16 settembre 2019. <small>URL consultato il 16 febbraio 2021</small>.</cite></span> </li> <li id="cite_note-5"><a href="#cite_ref-5"><b>^</b></a> <span class="reference-text"><cite class="citation web" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) <a rel="nofollow" class="external text" href="https://whatis.techtarget.com/definition/component"><span style="font-style:italic;">What is component? - Definition from WhatIs.com</span></a>, su <span style="font-style:italic;">WhatIs.com</span>. <small>URL consultato il 16 febbraio 2021</small>.</cite></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Bibliografia">Bibliografia</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=14" title="Modifica la sezione Bibliografia" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=14" title="Edit section's source code: Bibliografia"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <dl><dt>Pubblicazioni</dt></dl> <ul><li><cite class="citation pubblicazione" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) Martin Griss, <span style="font-style:italic;">Systematic Software Reuse - Objects and frameworks are not enough</span>, in <span style="font-style:italic;">Object Magazine</span>, febbraio 1995.</cite></li> <li><cite class="citation pubblicazione" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) Martin Griss e K. Wentzel, <span style="font-style:italic;">Hybrid Domain Specific Kits</span>, in <span style="font-style:italic;">Journal of Systems and Software</span>, dicembre 1995.</cite></li> <li><cite class="citation pubblicazione" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) Martin Griss e R.R. Kessler, <span style="font-style:italic;">Building Object Oriented Instrument Kits</span>, in <span style="font-style:italic;">Object Magazine</span>, maggio 1996.</cite></li> <li><cite class="citation pubblicazione" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) R. Malan e T. Dicolen, <span style="font-style:italic;">Risk Management in an HP Reuse Project</span>, in <span style="font-style:italic;">Fusion Newsletter</span>, aprile 1996.</cite></li> <li><cite class="citation pubblicazione" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) W. Frakes e S. Isoda, <span style="font-style:italic;">Systematic Reuse</span>, in <span style="font-style:italic;">Special Issue IEEE Software</span>, maggio 1994.</cite></li></ul> <dl><dt>Libri</dt></dl> <ul><li><cite class="citation libro" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) Ivar Jacobson, Martin Griss e Patrik Jonsson, <span style="font-style:italic;">Software Reuse: Architecture, Process, and Organization for Business Success</span>, Addison-Wesley, 1997.</cite></li> <li><cite class="citation libro" style="font-style:normal"> J Hooper e R Chester, <span style="font-style:italic;">Linee guida e metodi per il riutilizzo del software</span>, Plenum, 1991.</cite></li> <li><cite class="citation libro" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) E.A. Karlson, <span style="font-style:italic;">Software Reuse: A holistic approach</span>, Wiley, 1995.</cite></li> <li><cite class="citation libro" style="font-style:normal">(<span style="font-weight:bolder; font-size:80%"><abbr title="inglese">EN</abbr></span>) W. Schäfer, R. Prieto-díaz e M. Matsumoto, <span style="font-style:italic;">Software Reusability</span>, Ellis Horwood, 1994.</cite></li></ul> <div class="mw-heading mw-heading2"><h2 id="Voci_correlate">Voci correlate</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Riuso_di_codice&veaction=edit&section=15" title="Modifica la sezione Voci correlate" class="mw-editsection-visualeditor"><span>modifica</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Riuso_di_codice&action=edit&section=15" title="Edit section's source code: Voci correlate"><span>modifica wikitesto</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Programmazione_(informatica)" title="Programmazione (informatica)">Programmazione (informatica)</a></li> <li><a href="/wiki/Regola_del_tre_(programmazione)" title="Regola del tre (programmazione)">Regola del tre (programmazione)</a></li> <li><a href="/wiki/Riusabilit%C3%A0" title="Riusabilità">Riusabilità</a></li></ul> <div class="noprint" style="width:100%; padding: 3px 0; display: flex; flex-wrap: wrap; row-gap: 4px; column-gap: 8px; box-sizing: border-box;"><div style="flex-grow: 1"><style data-mw-deduplicate="TemplateStyles:r140555418">.mw-parser-output .itwiki-template-occhiello{width:100%;line-height:25px;border:1px solid #CCF;background-color:#F0EEFF;box-sizing:border-box}.mw-parser-output .itwiki-template-occhiello-progetto{background-color:#FAFAFA}@media screen{html.skin-theme-clientpref-night .mw-parser-output .itwiki-template-occhiello{background-color:#202122;border-color:#54595D}html.skin-theme-clientpref-night .mw-parser-output .itwiki-template-occhiello-progetto{background-color:#282929}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .itwiki-template-occhiello{background-color:#202122;border-color:#54595D}html.skin-theme-clientpref-os .mw-parser-output .itwiki-template-occhiello-progetto{background-color:#282929}}</style><div class="itwiki-template-occhiello"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Computer_n_screen.svg" class="mw-file-description" title="Informatica"><img alt=" " src="//upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png" decoding="async" width="24" height="25" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/37px-Computer_n_screen.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/48px-Computer_n_screen.svg.png 2x" data-file-width="119" data-file-height="123" /></a></span> <b><a href="/wiki/Portale:Informatica" title="Portale:Informatica">Portale Informatica</a></b>: accedi alle voci di Wikipedia che trattano di informatica</div></div></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐7c479b968‐q5ssf Cached time: 20241117170859 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.223 seconds Real time usage: 1.235 seconds Preprocessor visited node count: 4227/1000000 Post‐expand include size: 18372/2097152 bytes Template argument size: 3989/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 11/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 25998/5000000 bytes Lua time usage: 0.083/10.000 seconds Lua memory usage: 2715186/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1156.079 1 -total 4.46% 51.511 4 Template:Vedi_anche 3.59% 41.531 1 Template:C 3.42% 39.594 1 Template:Avviso 3.17% 36.700 3 Template:Cita_web 2.65% 30.671 1 Template:Portale 2.34% 27.099 1 Template:Categorie_avviso 1.88% 21.746 3 Template:Rp 1.42% 16.418 7 Template:Cita_pubblicazione 1.28% 14.812 1 Template:Icona_argomento --> <!-- Saved in parser cache with key itwiki:pcache:idhash:3485596-0!canonical and timestamp 20241117170859 and revision id 140043545. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Estratto da "<a dir="ltr" href="https://it.wikipedia.org/w/index.php?title=Riuso_di_codice&oldid=140043545">https://it.wikipedia.org/w/index.php?title=Riuso_di_codice&oldid=140043545</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Categoria:Categorie" title="Categoria:Categorie">Categorie</a>: <ul><li><a href="/wiki/Categoria:Codice_sorgente" title="Categoria:Codice sorgente">Codice sorgente</a></li><li><a href="/wiki/Categoria:Concetti_di_programmazione" title="Categoria:Concetti di programmazione">Concetti di programmazione</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Categorie nascoste: <ul><li><a href="/wiki/Categoria:Controllare_-_informatica" title="Categoria:Controllare - informatica">Controllare - informatica</a></li><li><a href="/wiki/Categoria:Controllare_-_settembre_2023" title="Categoria:Controllare - settembre 2023">Controllare - settembre 2023</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Questa pagina è stata modificata per l'ultima volta il 5 lug 2024 alle 07:04.</li> <li id="footer-info-copyright">Il testo è disponibile secondo la <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.it">licenza Creative Commons Attribuzione-Condividi allo stesso modo</a>; possono applicarsi condizioni ulteriori. Vedi le <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/it">condizioni d'uso</a> per i dettagli.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/it">Informativa sulla privacy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:Sala_stampa/Wikipedia">Informazioni su Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:Avvertenze_generali">Avvertenze</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Codice di condotta</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Sviluppatori</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/it.wikipedia.org">Statistiche</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Dichiarazione sui cookie</a></li> <li id="footer-places-mobileview"><a href="//it.m.wikipedia.org/w/index.php?title=Riuso_di_codice&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Versione mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-dxng5","wgBackendResponseTime":164,"wgPageParseReport":{"limitreport":{"cputime":"0.223","walltime":"1.235","ppvisitednodes":{"value":4227,"limit":1000000},"postexpandincludesize":{"value":18372,"limit":2097152},"templateargumentsize":{"value":3989,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":11,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":25998,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 1156.079 1 -total"," 4.46% 51.511 4 Template:Vedi_anche"," 3.59% 41.531 1 Template:C"," 3.42% 39.594 1 Template:Avviso"," 3.17% 36.700 3 Template:Cita_web"," 2.65% 30.671 1 Template:Portale"," 2.34% 27.099 1 Template:Categorie_avviso"," 1.88% 21.746 3 Template:Rp"," 1.42% 16.418 7 Template:Cita_pubblicazione"," 1.28% 14.812 1 Template:Icona_argomento"]},"scribunto":{"limitreport-timeusage":{"value":"0.083","limit":"10.000"},"limitreport-memusage":{"value":2715186,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-7c479b968-q5ssf","timestamp":"20241117170859","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Riuso di codice","url":"https:\/\/it.wikipedia.org\/wiki\/Riuso_di_codice","sameAs":"http:\/\/www.wikidata.org\/entity\/Q771245","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q771245","author":{"@type":"Organization","name":"Contributori ai progetti Wikimedia"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2011-05-12T20:23:42Z","dateModified":"2024-07-05T06:04:39Z"}</script> </body> </html>