Domanda

Io lavoro per una società che supporta diversi linguaggi:. COBOL, VB6, C # e Java
Io uso le lingue per il mio lavoro primario, ma spesso mi trovo a codifica alcuni programmi minori (ad esempio script) in Python perché ho trovato ad essere lo strumento migliore per quel tipo di compito.

Ad esempio:. Un analista mi dà un file CSV complesso per popolare alcune tabelle DB, quindi vorrei usare Python per analizzare e creare uno script DB

Qual è il problema?
Il problema principale che vedo è che alcune parti di questi script veloci e sporche stanno lentamente guadagnando importanza e:

  1. La mia azienda non supporta Python
  2. Sono Non versione controllati (I farne un backup in un altro modo)
  3. I miei colleghi non sanno Python

Gli analisti hanno anche iniziato loro riferimento a e-mail ( "lanciare lo script che le esportazioni ..."), in modo che siano necessari più spesso di quanto inizialmente pensato.

Vorrei aggiungere che questi script sono solo programmi di utilità che non fanno parte del progetto principale; semplicemente aiutano a ottenere compiti banali fatto in meno tempo. Per i miei piccoli compiti aiutano molto.

In breve, se fossi un vincitore della lotteria per essere in un incidente , i miei colleghi avrebbero bisogno di mantenere in vita il progetto senza quegli script; avrebbero trascorso più tempo nel fissare gli errori CSV a mano per esempio.

Si tratta di uno scenario comune? Sto facendo qualcosa di sbagliato? Cosa dovrei fare?

È stato utile?

Soluzione

È necessario per ottenere la situazione formalizzato come non dovrebbe davvero essere arrivati ??a questo punto. Tuttavia, queste cose accadono così è necessario spiegare al tuo capo che si è creato questi script per uso personale, ma hanno "scappati" in più ampia circolazione. Ammetti (se necessario) che eri in colpa per non aver portato questo alla sua attenzione prima.

Per lo meno gli script dovrebbe essere messo sotto controllo del codice sorgente "just in case" -. Allora almeno se non sono disponibili (per quale motivo) i tuoi colleghi avranno accesso agli script

Poi si sia bisogno di convincere il vostro capo che Python è la strada da percorrere per questi o accettare che si sta andando ad avere per ri-scrivere in una lingua supportata. Se il costo di documentare gli script ed educare i vostri collaboratori in Python è inferiore a quella della ri-scrittura si potrebbe anche vincere l'argomento.

Altri suggerimenti

non posso dare una risposta completa su ciò che si dovrebbe fare. Posso solo dare un solo suggerimento che è possibile utilizzare per iniziare con:

Controlla gli script in un repository che tutti (richiesto) gli sviluppatori possono accedere. Ma assolutamente sicuri di prendere nota del fatto che hai scritto prima questi script per il proprio scopo, vale a dire per eseguire un compito che era stato dato. Poi aggiunge che si sta controllando solo in questi script per consentire ad altri il vantaggio di usarli.

Dopo che avrete solo bisogno di vedere come altre persone rispondere a questo.

Ho eseguito in problemi simili in cui lavoro. Ho sentito "Che cosa è PHP?" diversi anni fa. Non capiscono o si preoccupano di imparare nulla al di fuori dello stack MS. Se Python è lo strumento giusto per il lavoro che avevo appena detto i miei supervisori su di esso ed essere pronti per un sacco di confronto e di spiegare il motivo per cui pitone è stata la scelta giusta. Sarà frustrante, ma penso che la maggior parte sarebbero d'accordo pitone è una buona scelta per la manipolazione del testo.

La prima cosa che devi fare è parlare con la squadra e il tuo capo. In questo momento, si dispone di un enorme fattore di camion (se è stato colpito da un camion, nessun altro avrebbe facilmente essere in grado di mantenere i propri script). Sembra avere script per fare queste attività sono importanti, ma è anche importante che chiunque abbia bisogno di possono modificare e mantenere questi script. È necessario spiegare come utilizzare Python aggiunge valore - come fa risparmiare tempo, impegno, risorse, denaro, e così via

.

In secondo luogo, lo fanno in controllo di versione del progetto. Adesso. Nulla di ciò che si produce per un progetto dovrebbe essere al di fuori del controllo di versione che del progetto, mai.

Siate preparati per reazione - la gente di solito non mi piace cambiare. Scappare da soli, utilizzando non supportato e sconosciuto (al team / organizzazione) Technologies è stata una cattiva idea, senza consultare almeno gli altri sviluppatori e determinare il migliore (per il progetto, non solo voi) modo di automatizzare queste attività per tutti i gusti per l'uso.

Credo che questo è probabilmente un buon caso di

E 'più facile chiedere perdono quello che è di ottenere il permesso.

Sembra che avete ottenuto il lavoro fatto, ma che si sta per avere a che fare con le ripercussioni ora.

La mia regola del pollice è:

Tutto ciò che potenzialmente l'impatto del lavoro degli altri dovrebbe essere discusso con i vostri colleghi e superiori al più presto.

Ma, se è per voi e solo voi, a patto che non fa alcun danno alle infrastrutture o la sicurezza della vostra azienda , si è liberi di fare come si vuole ottenere il lavoro fatto .

Sono disponibili due opzioni:

  1. Lo rendono uno standard
  2. Traduci in uno strumento standard

Secondo l'organizzazione # 1 potrebbe essere difficile (dopo tutto limitando l'elenco di tecnologie standard evita l'esplosione di una combinatoria di requisiti di formazione e di sostegno di abilità).

La seconda opzione sarebbe aiutare il vostro set di abilità, e si potrebbe essere in grado di trovare di terze parti (e probabilmente open source con le licenze amichevoli in commercio) per fare un po 'di duro lavoro. Per esempio. una ricerca per "LINQ to CSV" dovrebbe ottenere alcuni colpi utili.

A proposito, gli strumenti di sviluppo di VB6 (IDE, il compilatore) non è supportato (nemmeno aggiornamenti di sicurezza), per cui è probabile le esigenze standard di aggiornamento in ogni caso. (Runtime VB6 è supportato come parte del-e inclusa nel install-di versioni attuali di Windows). Questo potrebbe forse essere usato come un aiuto per avvicinarsi 1 #:. I bisogni set strumento standard per un bersaglio mobile a causa delle dipendenze fornitore

Se si è dato un compito, e eithe l'unico modo è possibile realizzare in tempo, non si hanno davvero una scelta. Io penso che sia saggio lasciare che i responsabili sanno quello che stai facendo. Non si dovrebbe andare al di fuori del controllo del codice sorgente desiderata (a meno che non solo assolutamente non funziona affatto?) Il test e la documentazione.

A volte una società può avere per lasciare un singolo sviluppatore cominciare a cercare in una nuova area di sviluppo. Purtroppo, il codice può fare la sua strada in produzione più veloce di chiunque altro può arrivare fino a velocità.

Bene, ho avuto modo di ammettere che il lavoro con 20 diverse lingue puzza, un sacco.

Hai uno script Bash che chiama script Python che richiama Perl script che chiama Java binario che chiama C dll ...

Poi qualcosa colpisce il ventilatore in tutta la pipeline e si passa attraverso - WTH IS DAT KODEZ? Soprattutto in Perl ... e debugging semplice, ad esempio, problemi di codifica, si trasforma in un disastro da incubo. Non è possibile eseguire il debug di 5 su 7 lingue in modo efficace, e si trasforma in un vero e proprio dolore.

In alternativa, è necessario aggiungere un cambiamento semplice, ma si crea 10 errori perché Perl ha trucchi, Java ha trucchi, etc.

E che 7+ catena lingua inizia un passo alla volta.

procedere con cautela, hic sunt leones ...

Se questi sono gli strumenti che si utilizzano per voi stessi, siete liberi di fare qualsiasi cosa che ti rende più produttivi.

In realtà, è dovrebbe essere incoraggiato per fare e usare questi strumenti, che in ultima analisi è diventato un prolungamento delle braccia.

Alla fine, si riconosce l'importanza di avere questi strumenti, non importa che lingua sono scritti in , e inizieremo ad applicare nel loro ambiente di lavoro.

Quando si è detto di scrivere il codice di fare qc., La lingua è di solito specificata o implicita (la regola nelle società).

Ma quando si ha a che fare qualche compito one-shot, come importare i dati in DB, si è liberi di scegliere lo strumento che a suo parere si inserisce il meglio, perché si deve fare qualcosa di corretto e veloce, e il risultato è importante, non gli strumenti.

Quindi, vorrei usare questa regola:

1) Se vi viene detto di fare qualche operazione, come ad esempio l'importazione dei dati, vorrei utilizzare gli strumenti / lingua / etc. che sarebbe la più conveniente per me e sarebbe stato il più veloce per il compito.

2) Se vi viene detto di strumento di scrittura fare qualche operazione, come ad esempio importare alcuni dati, vorrei discutere di ciò che il linguaggio / strumento da utilizzare con il gestore (ad eccezione quando uso un linguaggio che è standard implicita, ad esempio quando l'azienda usi [quasi] solo Java).

3) Se l'operazione sembrava essere one-shot, ma è diventato ripetibile, si dovrebbe parlare con il manager di cambiare da 1) a 2) e ri-scrittura dal vostro preferito al linguaggio aziendale supportato.

suppongo che non sei in grado di decidere (altrimenti non sarebbe porre la domanda). Che cosa fa il tuo capo pensa su questo problema? Si dovrebbe parlare con lui e cercare di convincerlo che Python è la strada da percorrere ...

Naturalmente, la questione è su ciò che accadrà quando si esce. Non essendo in grado di mantenere il codice è probabilmente una ragione che è buono abbastanza per smettere di usare Python. Oppure si può iniziare a educare i vostri colleghi a questa lingua ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top