Gran parte dei dipendenti Google si occupa di sviluppare nuovo codice per i vari servizi dell'azienda. Con gli anni la codebase dei progetti di Big G è aumentata in modo esponenziale, cosi come è aumentata notevolmente la complessità del codice presente dentro i repository. Per questo gli ingegneri Google hanno sviluppato diversi set di tool che vanno in aiuto ai developer dell'azienda cosi da rendere il lavoro più semplice e meno stressante. Uno di questi tool si occupa della code search e, vista la sua grande popolarità tra i developer, Google ha deciso di implementarlo nella nuova beta di Cloud Source Repositories.
Tale beta include infatti, oltre ad una nuova interfaccia utente, anche un potente motore di ricerca semantica del codice. Questa tipologia di motori di ricerca sono capaci di comprendere l'obbiettivo di un'interrogazione oltre al significato contestuale dei termini adoperati, cosi da generare risultati più rilevanti e utili per l'utente. Cloud Source Repositories sarà quindi equipaggiato con il medesimo tool di semantic code search sfruttato dagli ingeneri di Mountain View per la propria rete aziendale.
Con Cloud Source Repositories sarà quindi possibile ricercare porzioni di codice in modo molto più rapido rispetto ai tradizionali tool di ricerca. La nuova beta supporta senza problemi l'integrazione con i principali portali di code sharing ovvero GitHub e Bitbucket, dunque non sarà necessario abbandonare i repository su tali piattaforme.
Essendo sviluppato da developer per i developer, Cloud Source Repositories si adatta perfettamente alle esigenze dei vari team di sviluppatori. Gli ingegneri Google hanno inoltre analizzato il comportamento dei loro colleghi e hanno notato che i programmatori ricercano quasi sempre codice con elementi a loro familiari e le tipiche domande poste al tool sono:
- Che cosa fa quel codice?
- Dove si trova il codice istanziato?
- Perché il codice si comporta in un determinato modo?
- Chi è l'autore o il responsabili delle modifiche di quel codice?
- In che modo quel codice esegue il lavoro per cui è stato scritto?
Inoltre il team di sviluppatori Google ha scoperto ed affrontato una serie di problemi molto comuni nella ricerca di codice:
- spesso in un'azienda il codice è sparso in vari repository, sia locali che sul Cloud, e non è detto che siano sempre tutti aggiornati. Con Cloud Source Repositories, invece, i default branches dei repository saranno sempre indicizzati e aggiornati cosi che sia molto più semplice cercare una particolare classe/funzione/file;
- se si è alla ricerca di codice che esegua funzioni già implementate da altre persone nella stessa azienda Cloud Source Repositories ve le mostrerà, evitando di reinventare la medesima soluzione ad un problema comune.
- se non si ricorda il modo giusto per implementare del codice o come gestire un evento con Cloud Source Repositories, sarà possibile ottenere degli esempi presenti all'interno del codice dei repository aziendali.
- In caso di errori è possibile eseguire una ricerca in base all'ID utente ed al tipo di errore cosi da individuare l'esatta stringa di codice dove si è verificato il problema.
Si può configurare Cloud Source Repositories in modo tale che rispetti anche i vari tipi di privilegi dell'utente, come ad esempio nel caso dei sistemi gestiti da un software IAM (Identity and access management). Dunque gli utenti che non hanno il permesso di modificare o di visualizzare determinate porzioni di codice avranno i medesimi privilegi anche all'interno di Cloud Source Repositories.
Via Google Cloud