Strategie di produttività per uno sviluppatore che utilizza molti PC [chiuso]

4

In un parla della gestione del tempo , un famoso informatico ha detto:

"One machine in your life is the right number."

Ha consigliato un laptop con una docking station.

Dopo aver provato questo approccio per circa un mese, mi manca il mio desktop più potente (i7 quad core hyperthread), ma non è nella mia road map tecnologica (o budget) per l'aggiornamento dal mio vecchio Intel Core 2 Duo (2006) notebook quest'anno.

Quali strategie possono aiutarmi a utilizzare il desktop mentre sono alla mia scrivania e senza molto sforzo manuale il notebook quando sono in viaggio?

    
posta DeveloperDon 03.09.2012 - 00:49
fonte

5 risposte

2

In realtà, penso che lavorare su molti PC possa aumentare la produttività (anche se non senza un investimento iniziale).

Il motivo è complesso, ma puoi riassumerlo in questo modo:

Sei costretto a pensare a creare un buon ambiente di sviluppo, indipendentemente dal tuo PC.
Direi che in società meglio organizzate è questo il caso e ci sono istruzioni documentate su come configurare un nuovo computer in modo veloce con gli strumenti necessari per lo sviluppo del progetto.

Per ottenere ciò che desideri, devi separare il più possibile il tuo processo dalla macchina.
Quindi, un paio di suggerimenti:

1. Utilizza sempre il controllo della versione.
Questo vale per codice e dati . Gli strumenti per il codice e i dati differiscono, ovviamente. Potresti preferire gli strumenti distribuiti, poiché questo ti dà una maggiore flessibilità.

2. Documenta il processo di impostazione dell'ambiente di sviluppo
Questo è abbastanza diretto, anche se, ammettiamolo, richiede anche molto tempo. Tuttavia l'importanza è massima: se improvvisamente devi configurare una nuova macchina, questo è estremamente utile.

3. Crea una VM contenente una macchina di sviluppo pronta
Questo è piuttosto un passaggio di emergenza, ma è anche molto bello farlo. In questo modo, puoi iniziare a programmare quando ti viene presentato un nuovo PC, che può farti risparmiare molto tempo se hai fretta.

4. Avere un server dedicato per l'implementazione / l'integrazione continua.
In questo modo puoi affermare che il codice funziona sia sulla macchina di distribuzione che sulla tua. Ci sono molti fornitori di servizi per questo, più i server virtuali dedicati non sono molto costosi.

5. Utilizzare un IDE multipiattaforma (se possibile) e imparare come compilare e cross-debug (se applicabile).

Ancora una volta, ti permette di lavorare in un ambiente ancora più ostile, in più questo è l'unico modo per catturare alcuni dei bug più persistenti. Ti permette di fare cose come lasciare il tuo computer di lavoro quando si esce dall'ufficio e fare il debug su di esso da casa, anche se non è possibile eseguire il progetto localmente.

6. Mettiti comodo con SSH, VNC, SCP e RDP.
Avrai bisogno di almeno uno di questi, dato che c'è sempre un po 'di confusione quando si avvicina una scadenza: un file che hai dimenticato di caricare sul server e che si trova su un PC in un'altra città, o devi aggiustare qualcosa su una macchina remota, ecc.

Pensa al n. 6 come ultima risorsa; non devi dipendere da tutto ciò a cui non hai facile accesso per il tuo lavoro, tranne che in casi imprevisti e SSH non è di facile accesso.

Per inciso, potresti notare che alcuni di questi suggerimenti sono considerati buone prassi in generale; Credo che siano tali. È tutta una questione di organizzazione e di miglioramento ti farà risparmiare tempo, alla fine.

    
risposta data 03.09.2012 - 05:22
fonte
8

Ecco alcune cose che ho fatto o che ho visto fare:

Salva il più possibile nei repository remoti. Git / Mercurial / Subversion è tuo amico in questo aspetto. È possibile creare qualsiasi repository e, con servizi come Github, è possibile memorizzare qualsiasi cosa, inclusi i file di configurazione, negli archivi remoti. In questo modo avrai una posizione centrale da cui sincronizzare e da cui partire (assicurati di spingere le tue ultime cose prima di cambiare computer). Se usi Linux, puoi probabilmente ripristinare la tua intera directory home /.

Se non desideri utilizzare i servizi di archiviazione pronti contro termine, archivia tutto su un dispositivo di archiviazione USB. Le unità di grandi dimensioni e i dischi rigidi USB sono piuttosto economici in questi giorni, quindi se non lo fai vuoi / non puoi usare un sistema di archiviazione di terze parti, quindi sceglierne uno, non dimenticare di portarlo con te!

Usa il software con i file di configurazione e trova quei file in modo che tu possa copiarli (e non dimenticare le configurazioni del tuo sistema operativo). Questo potrebbe essere o meno fattibile, a seconda di quello che fai, ma è una buona idea controllare se il tuo software funziona. Copiare i file di configurazione è più facile che provare a configurare manualmente la configurazione tra le due macchine. Questo è ottimo anche per utilità e configurazioni del sistema operativo, come .bashrc per terminale, se non stai usando le impostazioni predefinite.

Utilizza software che ha una licenza per utente, invece che per installazione. Se non stai usando software gratuito / open source (Eclipse, Netbeans, ecc.), prova ad andare per roba che utilizza un modello di licenza per utente (come ad esempio Testo sublime). Ciò eviterà il mal di testa di occuparsi del software su più macchine e di rimanere kasher per quanto riguarda le licenze.

Utilizza strumenti basati sul Web quando fattibile. Cose come Freshbooks, Harvest, Basecamp e Google Apps aiutano a rimuovere il mal di testa causato da più macchine rimuovendo la macchina locale per cominciare (salvo per avere un browser per accedervi).

Sfrutta gli strumenti di sincronizzazione del tuo browser. La maggior parte, se non tutti, i principali browser hanno strumenti di sincronizzazione che ti permettono di sincronizzare i tuoi segnalibri, la cronologia, le password, ecc. tra i tuoi computer (e quelli che molto probabilmente non hanno addon che possono). Questo è un grande vantaggio, quindi non aver paura di usarlo.

Script quello che puoi. L'esecuzione di script come il download e l'installazione del tuo software può velocizzare le impostazioni e aiutarti a non dimenticare nulla. Aiuta anche come tipo "avviarlo e dimenticarlo", quindi puoi fare altre cose mentre lo script gestisce il problema del download e dell'installazione del software. (Nota: molto probabilmente è un po 'più facile su macchine Linux, dato che la maggior parte del tuo software sarà in repos molto probabilmente, ma è fattibile su qualsiasi sistema operativo, a patto che tu possa ottenere gli installatori tramite un downloader a riga di comando come arricciatura o wget.)

    
risposta data 03.09.2012 - 01:58
fonte
2

Non hai davvero specificato quale sia il tuo problema reale, quindi posso solo speculare sull'esperienza personale:

La tua azienda offre una VPN per poter lavorare da casa? Se è così, forse puoi desktop remoto nel tuo computer desktop. Altrimenti, forse chiedere un dispositivo di raffreddamento portatile in modo che il sistema operativo non underclock la CPU come spesso quando diventa caldo. Oppure chiedi più RAM, è economico in questi giorni.

Se il tuo problema riguarda la condivisione dei dati, ottieni un HD esterno con una partizione crittografata o ricorda di controllare gli elementi che hai inserito nel controllo del codice sorgente alla fine della giornata.

    
risposta data 03.09.2012 - 01:50
fonte
1

Il mio consiglio è esattamente lo stesso che ho per me stesso (ho 2 desktop, 1 netbook e 1 server remoto che funziona bene con questo):

  • browser web utilizza Firefox (con sincronizzazione di Firefox) o Google Chrome (con il suo account Google) per mantenere coerenti la cronologia, i preferiti e le preferenze.

  • unison questo è gratuito (come in libertà ) strumento per mantenere sincronizzati molti sistemi. Trovo funziona come un fascino. La configurazione perfetta sarebbe quella di avere un server in esecuzione ma funziona anche se si dispone di un HD esterno che si sposta (l'ho usato prima). E tu non devi tenerli sempre sincronizzati. Ho trovato abbastanza interessante fare un'ipotesi sull'aggiornamento dei file. Ed è anche molto flessibile. Ad esempio, puoi avere i tuoi desktop che sincronizzano alcune directory (come Foto e Video) che non si sincronizzano con un netbook (forse non hai molto spazio lì).

  • non utilizzare SVN se hai molti sistemi di controllo della versione che usi mercurial o git. SVN funziona con blocchi di file e altre magie all'interno delle directory .svn e non funzionerà quando si utilizza unison (o altri strumenti di sincronizzazione) per mantenere sincronizzati i file tra i sistemi. Ovviamente se fai sempre un commit sugli altri sistemi devi solo aggiornare il repository e non ci sono problemi. Ma non sono sempre pronto a fare un commit quando devo passare da un sistema all'altro.

risposta data 03.09.2012 - 04:06
fonte
0

Ho appena risolto questo per me stesso.

Ho un laptop per lo sviluppo e un paio di settimane fa si è schiantato. Bene. Ho imparato che anche io ho dei backup, svn, ecc. Il dolore era enorme solo perché ero dipendente dall'hardware. Per ripristinare l'ambiente di sviluppo su una macchina diversa è necessario tempo. Anche con il piano di manutenzione in loco sono rimasto fermo per 4 giorni.

Per farla breve, ho comprato un desktop piuttosto robusto e ho eseguito VMWare su di esso. Le prestazioni sono migliori di quelle del laptop e tutto il mio sistema si trova in una cartella di cui faccio il backup ogni giorno. È su SSD separato e quando ho bisogno di andare da qualche parte lo metto in un dvd bay sul mio laptop. Lenta ma ok per il viaggio.

In questo modo ho il backup, l'indipendenza dall'hardware e l'hardware di backup nel caso in cui laptop o desktop non funzionino mai

    
risposta data 03.09.2012 - 08:02
fonte

Leggi altre domande sui tag