Dal punto di vista etico, un "idea" di codice come un pattern di piccole dimensioni o persino un controllo dell'interfaccia utente personalizzata in genere va conservato per uso futuro altrove. Molti di noi conservano librerie di sorgenti "CommonLib" contenenti questo tipo di cose in un modo facilmente riutilizzabile. Anche se no, ti ricordi come l'hai fatto, e se è un buon modo per farlo fallo in altre situazioni dove si applica. È ridicolo provare ad affermare che non dovresti essere un buon programmatore su un progetto per un cliente / datore di lavoro (incluso te stesso) perché sei stato un buon programmatore su un altro progetto e non dovresti plagiare le idee che avevi mentre lavoravi per l'altro tipo. Si chiama esperienza di lavoro.
Legalmente, dipende da ciò che hai firmato quando sei stato assunto / contratto. Alcune aziende obbligano i lavoratori a firmare le NDA a vita con una formulazione che potrebbe essere interpretata come "non si può scrivere una riga di codice per nessun altro in base alla conoscenza della propria base di codice". Un buon avvocato può far sballare la causa anche se l'hai firmata (seriamente, ti aspetti di colpire la testa con una mazza da baseball fino a quando non ti ricordi di aver lavorato lì?) Per quanto mi piacerebbe farlo per alcuni dei miei precedenti lavori è un'aspettativa completamente irragionevole), ma sarà comunque un dolore.
I grandi no-no, sia dal punto di vista legale che etico, includono i binari di copiatura o la fonte che hai specificamente sviluppato per un datore di lavoro e incollandoli in una soluzione per un altro. Mentre i pattern e gli algoritmi sono ben noti, così come le architetture best-practice, le convenzioni di codifica, ecc. Che possono far sembrare simili frammenti di basi di due concorrenti, un file sorgente copiato verbatim è plagio, semplice e semplice, e un violazione totale del diritto d'autore implicito o esplicito nonché di qualsiasi NDA che qualsiasi avvocato competente aziendale redigerebbe. Dovresti aver stipulato, in tutto ciò che hai firmato che limiterebbe questo, ad ogni datore di lavoro per il quale hai mai lavorato, che hai il diritto di conservare un "portafoglio" di codice generale che rimane di tua proprietà indipendentemente dal tuo impiego. Dovresti essere dannatamente buono per un datore di lavoro che ti voglia ancora, se hai insistito su questo, e la linea dovrebbe essere disegnata in modo molto chiaro su ciò che potresti e non potresti rivendicare come tuo .
Un'altra area sfocata in cui potresti essere OK, forse no, è "look and feel" dell'interfaccia utente. La linea di fondo è simile; mentre la GUI di base controlla come pulsanti, caselle di testo, caselle di controllo, pulsanti di opzione, ecc. sono tutti progettati per il minimo "fattore sorpresa" e sono di dominio pubblico come concetti dell'interfaccia utente e ci sono combinazioni ben note di uguali che riducono la curva di apprendimento attraverso la familiarità, è probabilmente una cattiva idea prendere un nuovo concetto di interfaccia utente che una società abbia sviluppato (sotto il tuo controllo) per svolgere un particolare compito, e riportarlo letteralmente al tuo prossimo lavoro in cui un nuovo progetto ha un'esigenza simile. I controlli Telerik e DevExpress e le altre librerie UI di proprietà di terze parti non Microsoft sono venduti a pagamento, e quindi sono pesantemente copiati; creare una copia carbone, anche se hai digitato tu stesso tutti i caratteri del file sorgente, puoi metterti nei guai legalmente; devi dimostrare che ogni singolo personaggio è stato scritto senza più di una conoscenza superficiale (a livello di utente) di come funziona il controllo di terze parti.