Com'è la qualità del codice a Google?
Una risposta diretta alla tua domanda è: la qualità del codice di Google è molto molto alta. E un argomento collaterale è: l'alta qualità del codice favorisce l'azienda e non gli individui, e non sempre è il miglior amico della crescita personale della carriera.
Lavoravo per Google ed ero assegnato ad un progetto molto banale con quasi nessun utente. Ogni mio singolo "cl" (termine di Google per "changelist" di codice) è stato controllato così a fondo come se tutti quei codici dovessero vivere in eterno. Ho speso così tanto tempo per costruire quei piccoli componenti inutili in modo solido come una roccia, sentendomi solo come un COG su una grande macchina seguendo i protocolli standard. Poiché il protocollo di revisione del codice era così rigido, non c'era davvero molto tempo per me per pensare al quadro generale del prodotto.
Poi sono entrato in un'altra azienda, e ho avuto la fortuna di lavorare su un progetto che serve milioni di persone e genera milioni di dollari. È interessante notare che la parte molto centrale del codice che gestisce direttamente questa logica di business è estremamente disordinata nello standard di Google perché testiamo le idee e facciamo iterazioni molto veloci, e non c'era abbastanza tempo per prendersi cura di questi standard banali. Il codice è ancora sano e robusto, ma non si cura dei dettagli ai livelli di Google's come la denominazione delle variabili. Mi sentivo bene perché potevo concentrarmi di più sul fare iterazioni veloci e testare di più le mie idee. Essendo entrambe esperienze di apprendimento, ma penso che essere in grado di imparare di più su cose di dettaglio non banali sia più prezioso per me.
Interessante, più tardi ho collaborato con un altro team nella stessa azienda che non stava gestendo un componente business critical. Era un componente che gestisce uno scenario estremamente stupido. Il loro sviluppo era abbastanza stantio e non c'era molto movimento nella loro logica. Si scopre che il loro standard di codifica era così rigido che mi ricordava persino quello di Google. Prestavano estrema attenzione a tutti quei dettagli. Direi che ero 5 volte più lento a fare un lavoro di collaborazione con loro.
In un certo senso, mi ha dato la percezione che quando il lavoro è così importante e ha bisogno di sviluppi veloci, non c'era tanto lusso per standard di codice estremamente elevati. Una volta che lo sviluppo va ad un punto morto (il caso di Google nella maggior parte dei suoi team), alcune persone devono giustificare il loro lavoro rendendolo più difficile e più lento da fare, come ad esempio introducendo inutilmente una barra di qualità elevata.
Anche per lo sviluppo della carriera personale, penso che più rigido è lo standard di codifica, più è probabile che tu sia trattato come un COG su una grande pipeline dal cuore freddo. L'azienda fa rispettare lo standard di codifica in modo che ci sia meno variazione da parte vostra, in modo che i vostri lavori siano standardizzati e prevedibili. Ma una grande opportunità di apprendimento viene davvero dal poter fare qualcosa che non è standardizzato, e imparare dai risultati imprevedibili.
Articoli simili
- Quali sono le differenze tra codice macchina, codice byte, codice oggetto e codice sorgente?
- Qual è la differenza tra bytecode, codice nativo, codice macchina e codice assembly?
- Il mio Samsung Galaxy S4 ha un codice paese XSB. Posso aggiornare manualmente il sistema operativo con un diverso codice paese, codice prodotto e CSC?
- Come utilizzare un coupon/codice AliExpress se AliExpress non ha un coupon/codice casella al loro checkout