Copia e incolla programma significa due cose diverse per me. Uno è che cuci insieme altri esempi di codice per ottenere un programma. L'altra cosa è che stai tagliando / incollando un po 'di codice ripetitivo e poi modificandolo leggermente. Penso che in qualche modo stiamo tutti unendo esempi di codice, se non tagliando / incollando esplicitamente poi dalla memoria. Sulla cosa di codice ripetitivo taglia e incolla, è un costo rispetto alla ricompensa. Per una piccola quantità di taglia / incolla o anche una grande quantità se non hai il tempo di farlo bene, può valere la pena di fare il taglia e incolla .... ma in generale ad un certo punto con una grande quantità arriverà torna al morso.
Copiamo e incolliamo tutti i programmi. Un sacco di codice è la piastra della caldaia e così anche gli algoritmi. Se stai scrivendo un ordinamento veloce, non l'hai inventato. Molto probabilmente hai memorizzato un'implementazione tipica da qualche parte, una conferenza o un libro. Sei una specie di copia e incolla di programmazione. A volte è possibile leggere un documento in cui viene presentato un algoritmo e implementare l'algoritmo nel documento. Per me questa è anche la programmazione di copia incolla. Inoltre la maggior parte delle librerie è piena di esempi. Aka apre un lettore bufferizzato in java BufferedReader br = new BufferedReader (System.out); Sono abbastanza sicuro di aver visto quel codice da qualche parte, e se non del codice esattamente .... la struttura / il modello di base con i miei nomi sostituiti .... NET è molto buono per avere esempi di codice in tutta la libreria. Se voglio aprire una pagina web, cercherò la classe per fare richieste web, e quindi imitare l'esempio di codice. A volte ritorni e modifichi più tardi (ad es. Devi impostare i timeout) ma in generale stai praticamente passando all'esempio.
In generale, direi che la maggior parte dei programmi sono una sorta di programmi copia / incolla. Si inizia con esempi di base / algoritmi / ecc. preso dalla memoria, libri, ecc. e poi si modifica in base alle proprie esigenze. Finché capisci cosa stai cucendo insieme, penso che vada bene. Non hai bisogno di capire tutto ciò che stai tagliando e incollando, esattamente, solo in generale quello che fa e qualsiasi funzione. È proprio come usare una libreria eccetto che hai anche il codice sorgente sottostante. Vale sicuramente la pena di andare alle fonti giuste, e in generale se puoi ottenere una funzionalità da taglio / incolla da esempi di codice, o una libreria ... è meglio andare con la libreria in quanto può essere aggiornata in seguito.
La seconda cosa è tagliare / incollare il tuo codice. Hai un sacco di codice ripetitivo, quindi puoi tagliare / incollare e modificare. Grandi quantità di questo fanno un casino per cambiare, e inoltre è molto noioso e ansioso della mente ... A volte l'alternativa giusta è usare un altro approccio, ma altre volte taglia e incolla è il modo migliore per fare ciò che vuoi, in cui caso dovresti creare un generatore di codice per gestire il codice ripetitivo. Ma se sono solo poche righe o una cosa sola, potrebbe non valerne la pena. Tagliare / incollare un codice simile è spesso più rapido di un'astrazione complessa o la creazione di un generatore di codice. Alla fine della giornata, se taglia e incolla risparmia ore e sei sotto la pistola per ottenere un prodotto prima che il tuo avvio vada a pancia all'aria, fallo. Dopotutto se non spedisci il codice, non avrai un futuro. Ma sostanzialmente tutto questo diventa debito tecnico che dovrebbe essere ripulito più tardi. Si tratta di capire il compromesso che stai prendendo e gestire quando ti morde. Per esempio. affrettatevi a proiettarlo oggi in modo da non andare fuori mercato, per poi finire a ripararlo la prossima settimana quando la duplicazione rende troppo difficile aggiungere questa nuova funzione .....
Nel complesso, tutti tagliamo / incollano mentalmente per esempi / algoritmi. E nel secondo tipo si tratta di sapere quando è appropriato e quando non lo è ... Come qualsiasi strumento, è necessario comprendere i compromessi su ciò che si sta facendo ....