Codifica remota con Visual Studio Live Share e GitHub

Se non lavori già da casa, molto probabilmente lo sarai presto. La domanda quindi è: come possiamo utilizzare gli strumenti che abbiamo già per essere ancora in grado di creare e fornire codice?

Le VPN e altre tecnologie di accesso remoto possono collegare le nostre reti domestiche a repository di codice sorgente locali e altri strumenti chiave di devops, offrendo connessioni sicure. Una workstation di sviluppo remota non ha bisogno di essere completamente isolata dalle risorse chiave, sebbene possa richiedere criteri di sicurezza aggiuntivi per garantire la separazione tra le informazioni personali e le risorse di lavoro.

La connettività è importante, ma è probabile che sia l'ultimo dei tuoi problemi. Siamo animali sociali e gran parte del lavoro di sviluppo richiede più di un paio di occhi. Le politiche di allontanamento sociale significano che molte delle tecniche necessarie per lo sviluppo agile moderno sono difficili da implementare. Sebbene abbiamo la possibilità di utilizzare strumenti di conferenza come Teams o Zoom per video standup giornalieri, dobbiamo ancora trovare modi per replicare le normali interazioni uno-a-uno di revisioni del codice, programmazione di coppia o debug collaborativo.

Codifica social sicura con GitHub Enterprise

Un'opzione è passare a una piattaforma come GitHub per il tuo codice. Rendere GitHub parte del ciclo di vita dello sviluppo del software è molto più semplice con il rilascio di GitHub Actions, che offre punti di integrazione con il resto della pipeline CI / CD (integrazione continua / distribuzione continua) e consegna il codice finale nei repository di artefatti. Con l'acquisizione pianificata di NPM da parte di GitHub, sarai presto in grado di creare un'unica pipeline di sviluppo JavaScript.

GitHub (e altri strumenti git) forniscono una piattaforma per la codifica sociale, rendendo le modifiche più visibili e integrando i test negli invii di codice. Lavorando da casa, puoi replicare i repository di codice per ottenere l'accesso al lavoro dei colleghi, apportare modifiche, testare il codice ed eseguire build locali, prima di condividere nuovamente il codice in un ramo principale tramite una richiesta pull. È un modo di lavorare familiare, dimostrato in migliaia di progetti open source. Le modifiche al codice sono visibili e i membri del team possono inserire commenti su qualsiasi commit, con strumenti aggiuntivi per supportare la ricerca di bug di sicurezza comuni o problemi di dipendenza.

Se la conservazione del codice in locale è un problema, per motivi normativi o di protezione della proprietà intellettuale, puoi eseguire GitHub sulla tua rete utilizzando GitHub Enterprise. Se utilizzi una singola directory aziendale per Single Sign-On, il supporto per il protocollo di autenticazione SAML aperto dovrebbe semplificare l'integrazione, consentendo agli utenti remoti di accedere alla propria VPN e iniziare a lavorare. GitHub Enterprise Cloud può essere utilizzato con repository privati ​​come servizio gestito sull'infrastruttura di GitHub, con gli stessi strumenti di sicurezza.

Collaborazione al codice in Visual Studio Live Share

Il codice condiviso è un'opzione, ma spesso è necessaria una collaborazione diretta. La programmazione in coppia e altre tecniche simili mettono due sviluppatori sulla stessa tastiera, lavorando insieme per risolvere problemi ed eseguire il debug del codice. Non è possibile quando le persone lavorano da casa. Tuttavia possiamo condividere le nostre basi di codice tra loro, collegando i nostri IDE per offrire un'esperienza di sviluppo condivisa senza dover essere nello stesso posto.

Se utilizzi Visual Studio, hai già accesso a una serie di potenti strumenti di collaborazione, integrati nella piattaforma Visual Studio. Un aspetto è il supporto per il protocollo git e GitHub; un altro sono i suoi strumenti di condivisione del codice, Visual Studio Live Share. Disponibile nell'IDE di Visual Studio completo su Windows e Macintosh, come estensione per Visual Studio Code e in un nuovo editor di codice ospitato sul Web, è un modo semplice e veloce per condividere e collaborare nel codice.

Lavorare con Live Share

Iniziare con Live Share è relativamente facile. Tutto quello che devi fare è aggiungere il supporto per uno dei carichi di lavoro abilitati per Live Share a Visual Studio 2019. Se utilizzi Visual Studio 2017, devi prima installare un'estensione dal marketplace di Visual Studio. Dopo aver installato le funzionalità appropriate, riavviare Visual Studio prima di connettersi al servizio Live Share. Puoi usare il tuo account Visual Studio esistente con Live Share oppure puoi accedere con un nuovo account se vuoi mantenere separati Visual Studio e Live Share. Lavorare con Visual Studio Code è molto simile.

Una volta effettuato l'accesso, apri un progetto o una soluzione normalmente. Vale la pena usare i .gitignorefile per nascondere le cartelle che non vuoi condividere; l'impostazione predefinita è dare accesso a tutti i file nel tuo progetto ai collaboratori. Puoi nascondere i file (non vengono mostrati agli ospiti) o escluderli (non sono accessibili quando li accedi dal debugger).

Per condividere, fai clic su Live Share nel tuo IDE per ottenere un link di invito, che puoi quindi inviare a un collega. Le sessioni non devono essere lette / scritte; possono essere di sola lettura. Questa è un'opzione utile per fare un tour guidato della tua base di codice o per accompagnare qualcuno nuovo a un progetto attraverso il codice e dire loro cosa fa ogni modulo e perché. In qualità di proprietario di una condivisione, puoi aprire terminali condivisi o impostare lo stato attivo, in modo che i tuoi collaboratori vedano solo il codice che stai mostrando loro.

Eseguire il debug nella scelta dello strumento di sviluppo

Il co-debug è una funzionalità utile, poiché il codice di sicurezza viene eseguito solo sul computer host, utilizzando gli strumenti di debug standard di Visual Studio. I collaboratori vengono uniti alla sessione di debug utilizzando i propri visualizzatori per visualizzare le informazioni di debug in modo che possano effettuare le proprie indagini sullo stato dell'applicazione. Solo l'host può eseguire il debugger, sebbene gli ospiti siano in grado di aggiungere e rimuovere punti di interruzione per concentrarsi sulle aree che li interessano. Allo stesso modo, le app Web possono essere avviate in un ambiente protetto sui computer guest in modo che ognuno possa avere la propria vista. Se il tuo codice necessita di un server locale, anche questo può essere condiviso con i collaboratori, utilizzando un tunnel SSL tra macchine.

Una delle caratteristiche principali di Live Share è l'indipendenza dall'IDE. Potrei usare Visual Studio su un PC Windows, potresti usare Visual Studio per Mac o anche la visualizzazione Web; tutti hanno accesso alla mia base di codice e le modifiche verranno salvate sul mio PC. Puoi persino compilare codice, eseguirlo e ottenere l'accesso al debugger. Se un problema ha bisogno di più occhi, fino a 30 persone possono partecipare a una singola sessione di Live Share, portando uno sciame ad hoc per cercare di risolvere un problema. La stessa tecnica può essere utilizzata per lo sviluppo di piccoli team o gruppi, dove, una volta connessi a Live Share, gli individui possono lavorare su attività specifiche e quindi coinvolgere collaboratori quando necessario.

L'unica cosa che manca in Visual Studio Live Share è uno strumento di chat. Non c'è motivo per cui non puoi impostare una chiamata Skype o una riunione di Teams attorno a una sessione per acquisire discussioni e azioni. Se stai usando solo Visual Studio Code, la sua implementazione Live Share può essere usata per condividere la voce. Tuttavia, è meglio per collaborazioni veloci; le interazioni più complesse vengono gestite al meglio con altri strumenti.

L'utilizzo di strumenti di codifica sociale dovrebbe aiutare a rendere il lavoro da casa in un periodo di isolamento sociale non così isolante. Possiamo condividere il codice, anche condividere i nostri ambienti di sviluppo, avvolgendolo in ambienti familiari di chat e collaborazione. Non è come al solito, ma almeno è un modo per rimanere aggiornati sul nostro codice ovunque ci troviamo.