Best practice per gli script temporanei (Python)

0

Sto eseguendo due programmi separati che sono abbastanza simili da condividere un sacco di codice. Eseguo spesso questi programmi e dopo aver valutato l'output. Questo è un processo molto fluido e ogni volta è diverso dall'ultima volta.

Attualmente scrivo uno script chiamato qualcosa come "temp_evaluate_program_A" e poi lo copierò in "temp_evaluate_program_B" e cambierò alcune righe, insieme a scrivere molto codice al volo. Spesso il codice non è molto leggibile e solo parti di esso saranno mai riutilizzate. Questo sembra non ottimale poiché ho un sacco di duplicazioni.

Che cosa fanno gli altri in queste situazioni fluide in cui vi è spazio per condividere il codice tra questi programmi correlati e riutilizzare il codice nel tempo, ma l'ambito è limitato.

    
posta Will Beauchamp 15.08.2014 - 13:07
fonte

1 risposta

1

Ho questo problema durante la scrittura degli script di manipolazione dei dati. Ognuno fa la sua cosa - ma vorrei che ci fosse più comunanza possibile, e mi piacerebbe che ogni script fosse il più semplice possibile.

Alcuni suggerimenti:

  1. Moduli. Impara a impacchettare il codice riusabile in moduli. Anche tra una raccolta di programmi temporanei a uso singolo, ci sarà la tendenza ad esserlo compiti comuni. Avrai spesso bisogno di leggere e scrivere dati da fonti simili, ad esempio, e spesso in formati comuni. Grande! Abbiamo già alcune funzioni può essere codificato in moduli condivisi. Nel caso più semplice, questo può essere solo un file shared.py (o qualsiasi altra cosa si voglia chiamare) nel stessa directory degli script. Quindi usa from shared import * in ciascuno dei tuoi script. Man mano che i tuoi moduli diventano più sofisticati, puoi imparare a comprarli in modo che possano essere installati come moduli standard sul sistema, o anche condivisi con altri. Questa è una piccola curva di apprendimento; Consiglio di iniziare in piccolo.

  2. Moduli esterni. Impara gradualmente a utilizzare il codice di altri moduli. Se non lo sei familiarità con l' indice dei pacchetti Python , è un grande fonte di funzionalità pre-confezionate per fare molte cose. Installare la maggior parte del codice lì è un semplice comando pip o easy_install di distanza. Nel tempo ne troverai una manciata di moduli dalla libreria standard Python o PyPI che semplificano notevolmente la tua lavoro. Impara e affidati spesso a loro. Se stai lavorando con pagine Web, per Ad esempio, richieste è uno strumento meraviglioso. Per date e orari, trovo molto utile la freccia . E vorrei aggiungere (non così) umilmente il mio dire , mostra e textdata moduli come altri esempi di moduli che cercano non solo di fornire funzioni, ma di creare attività altrimenti disordinate semplici, pulite e autonome.

  3. Idiomi comuni. Anche se non è possibile riutilizzare il codice direttamente, utilizzando modelli comuni di codifica ridurrà il tuo carico cognitivo mentre lavori. Vedrai gli stessi schemi di utilizzo più e più volte, diventando un maestro di quegli idiomi, e rapidamente comprendendo l'intento e l'effetto di ciascuno idioma. Python è un linguaggio particolarmente buono per l'idiomatico sviluppo, come ha una strong comunità l'ethos dell'uso di principi di progettazione condivisi (es. "lo Zen di Python" ) e stili di programmazione comuni (es. PEP-8 ).

  4. Controllo codice sorgente. Se utilizzi molti script individuali e, in particolare, se stai costruendo molti di essi ad hoc , trarrai vantaggio dal controllo del codice sorgente. Potresti pensare a una codifica unica, i repository di origine non avrebbero molto valore, ma ho trovato il contrario. Più è fluida la tua situazione di programmazione, più avere alcuni elementi che forniscono disciplina e struttura diventa. Ti lascia fare errori, rovinare il codice, quindi scoprire "cosa ho cambiato?" E se ti va, torna a cosa hai avuto in precedenza. Mi piace Mercurial . È facile andare avanti e sono disponibili tutorial eccellenti . Git è anche popolare ed efficace. Impegnarsi presto; commit spesso.

Se i tuoi script individuali sono idiosincratici e fanno cose molto diverse, allora le tue opportunità di puro riutilizzo sono, se non minime, certamente limitate. Ciò non significa che non ci siano opportunità di leva . Si scopre che la leva - la capacità di ottenere una ricompensa sproporzionata per lo sforzo speso - è il vero obiettivo. Riutilizzare il proprio codice è un modo per ottenerlo. Usando il codice e le competenze degli altri (moduli esterni), usando idiomi ad alta produttività e fornendo disciplina e ordine in quella che altrimenti sarebbe una situazione disordinata, questi sono altri meccanismi utili per ottenere di più da ogni ora lavorativa.

    
risposta data 15.08.2014 - 15:52
fonte

Leggi altre domande sui tag