Nel dinamico panorama dello sviluppo di script, mantenere efficienza e coerenza nonostante aggiornamenti frequenti e input collaborativi può essere frustrante. Questa presentazione mostra la potenza del software Git per il lavoro collaborativo sugli script, offrendo soluzioni a problemi comuni come eliminazioni accidentali, controllo delle versioni e la seccatura dei backup manuali.
Git è uno strumento essenziale per il lavoro di squadra, che consente a più collaboratori di lavorare contemporaneamente a un progetto. Con Git, ogni modifica viene automaticamente sottoposta a versioning, fornendo una cronologia completa che consente ai team di monitorare, annullare e rivedere le modifiche senza sforzo. Inoltre, la creazione automatica di backup di Git garantisce la salvaguardia del lavoro in tempo reale, eliminando il rischio di perdita di dati e migliorando la produttività complessiva.
Dopo aver spiegato la struttura di Git, nonché come viene configurato e utilizzato, questa presentazione mostra come sviluppare uno script.
JMP su Git è un invito all'azione che vogliamo promuovere. Mi chiamo Britta Silbersack. Lavoro in Roche Diagnostics e il mio compito è supportare i nostri scienziati con soluzioni di scripting in JMP. Quando ho iniziato questa attività, ho incontrato Bernd, che lavorava come consulente per Roche. Ora ci siamo incontrati di nuovo per fare questa presentazione.
Mi chiamo Bernd Heinen. Alcuni potrebbero conoscermi come ex Senior Systems Engineer di JMP. Ora lavoro come consulente. Aiuto i miei clienti a comprendere e applicare la statistica, oppure li alleno con JSL. Così ho incontrato Britta. Qualche tempo fa abbiamo parlato di programmazione e abbiamo pensato che fosse una buona idea promuovere l'uso del repository Git per lo sviluppo JSL.
Cos'è Git? Git è un sistema di controllo di versione distribuito. Salvando gli script JSL in una cartella di amministrazione di Git, sono disponibili numerose funzioni che aiutano a gestire gli script e semplificano la vita. Git cattura semplicemente snapshot degli script in diversi momenti. Aiuta a organizzare i backup, eseguire il controllo di versione, supportare la collaborazione e documentare il lavoro.
Puoi sfruttare tutti i vantaggi di Git lavorando da solo come programmatore. In questo caso, non avrai bisogno di grandi infrastrutture. Per il backup, è consigliabile avere una copia su un server remoto. La vera potenza di Git si manifesta in un ambiente collaborativo. I membri del team possono lavorare sullo stesso programma, caricare le proprie versioni nel repository e quindi consolidare il lavoro. È una macchina dietro a tutto e la sua comunicazione nativa avviene tramite un'interfaccia a riga di comando. Ma ci sono molti componenti aggiuntivi che forniscono interfacce grafiche per Git e ne estendono persino le funzionalità.
Vogliamo mostrare un breve video di un flusso di lavoro caratteristico. Non è inteso come un video di formazione su Git, ma piuttosto come una motivazione per l'utente. Cerchiamo di essere breve ma sufficientemente informativo da dimostrare la collaborazione con Git. Faremo luce su aspetti come la programmazione in JSL, la registrazione dello script in Git, cos'è uno snapshot, il ruolo del repository e come è possibile unire diverse versioni dello stesso script.
Iniziamo con una vista sul portatile di Britta. Va su GitLab Cloud, che è una delle possibili opzioni di hosting per Git. Crea un nuovo gruppo, se la prende comoda e invita le persone, in questo caso me, a unirsi al gruppo. Bastano pochi clic. In questo gruppo, crea un nuovo progetto vuoto, TryGit. Compila il progetto predefinito, crea il progetto, quindi copia il link qui e torna sul suo portatile o lavora in locale sul suo portatile. Con Git Extensions, l'interfaccia grafica che stiamo usando per questo esempio (ce ne sono molte), incolla il link e clona o copia il repository. Questo crea un'area di lavoro vuota sul suo portatile.
Ora, ovviamente, inizia a scrivere il suo script JSL in JMP. Una volta terminato, lo salva nella cartella amministrata da Git. Ora crea un commit, ovvero uno snapshot, e invia o carica lo stato corrente sul repository web di GitLab.
Ora diamo un'occhiata al portatile di Bernd, che lavora da remoto su GitLab. Quando ho creato il gruppo di lavoro, Bernd ha ricevuto un'email da Git. Incuriosito, ha seguito il link al repository remoto. Ha cercato il progetto. All'epoca non c'era ancora alcun contenuto. Ha copiato anche il link. Ha seguito la stessa procedura. Clona il repository dall'URL crittografato SSH e ha determinato dove dovrebbe risiedere il clone sul suo portatile. Ha usato il nome del repository per la sua cartella e l'ha aperta.
Come previsto, mostra solo un'area di lavoro vuota. Purtroppo, ho ricevuto un'altra chiamata urgente e ho chiesto a Bernd di continuare il lavoro. Dopo aver caricato il mio codice JSL, lui estrae o scarica lo stato attuale di questo progetto. Lo apre in JMP ed estende il programma. Ha salvato le modifiche nello stesso file. Poi è passato a Git Extension e ha creato un nuovo branch. Questo permette a Git di tenere traccia delle modifiche. Si esegue il commit o si salva lo stato attuale e Bernd può vedere dove è stato aggiunto il programma. Inserisce anche lo stato nel repository. Si fa clic su Check, quindi si passa a GitLab. Sul web, c'è un nuovo branch. Imposta il focus su questo branch e crea una nuova richiesta di merge.
Nella richiesta di merge, ho nominato Britta come revisore e le ho inviato un messaggio; questo messaggio, o le informazioni, le è stato inviato automaticamente via email. Ora stiamo guardando sul suo portatile. Ha ricevuto l'email, ha seguito il link, è andata al repository e ha visto la richiesta di merge. L'ha letta, l'ha controllata e infine ha confermato le mie modifiche. Git mostra dove sono state apportate le modifiche e la merge è completata.
Ora, i due diversi branch sono di nuovo uniti al branch principale. Bene, ora Britta è di nuovo al progetto e decidiamo di lavorare su attività diverse in parallelo. Il pull imposta la stessa base per il nostro sviluppo su entrambi i computer. Ora, nell'esempio del lavoro di Britta, vedete come crea un nuovo branch. Questo permette a Git di seguire le sue modifiche. Faccio lo stesso sul mio computer – non è mostrato qui – e poi continuiamo con il nostro lavoro di programmazione, ognuno sulla sua versione del programma.
Entrambi eseguiamo il commit o lo snapshot per i nostri programmi. Nota che le differenze rispetto allo snapshot precedente sono evidenziate. Eseguiamo il push dei nostri branch nel repository.
Britta, sul suo portatile, guarda il repository sul web e vede che entrambi i branch sono presenti. Lascia un commento sul suo branch, quindi crea una richiesta di merge e mi nomina revisore.
Il portatile di Bernd, ora lavora da remoto. Bernd naviga sul web, apre la richiesta di merge e la approva. È passato al branch principale. Poi ha caricato il nuovo stato del programma sul suo portatile, ha impostato il focus sul suo branch e ha avviato un merge da lì. Vuole adattare il branch principale al suo branch "Fit a Model". Oddio, ci sono conflitti.
Esistono anche strumenti che aiutano a mitigare la situazione. Bernd usa lo strumento "meld" per consolidare le diverse versioni del programma. Qui si possono vedere molte differenze. È possibile identificare facilmente le modifiche, rimuovere i duplicati, inserire alcune parti e copiare e incollare altro. Salva le diverse modifiche, esegue un nuovo commit e carica i dati. Ora possiamo sia estrarre la versione corrente del programma che eseguire il programma completo con entrambe le parti al suo interno.
Una cosa che dovrebbe interessare agli utenti di JMP è la visualizzazione dell'intero processo di sviluppo e del suo stato attuale. Non si tratta delle funzionalità Git di base, ma di uno dei tanti strumenti che forniscono interfacce utente interattive a Git.
In conclusione, Git è facile da configurare e intuitivo. Consente backup senza sforzo, offre un solido controllo delle versioni e semplifica la collaborazione con i colleghi sugli script. Spero che siamo riusciti almeno a fornire qualche spunto sull'uso, i vantaggi e l'accessibilità di Git. Ora tocca a voi iniziare a usarlo, o al più tardi quando sarete tornati alla vostra scrivania.