Sono uno studente universitario di informatica attualmente in un anno di tirocinio presso un'azienda che produce e supporta un'applicazione web aziendale di grandi dimensioni. Mi piace l'esperienza di vedere come viene prodotto il software nel mondo reale e mi sento molto fortunato a trovare un'azienda che offre la possibilità non solo di mantenere ed estendere le funzionalità esistenti, ma anche di sviluppare funzionalità completamente nuove per il prodotto.
Tutto ciò che ho detto, però, sono molto consapevole che questo è molto, molto improbabile che sia un perfetto esempio di come sviluppare correttamente. Lungi da ciò, infatti. Sento che sto imparando una grande quantità dalla mia esperienza qui, e non voglio imparare le cose sbagliate o prendere cattive abitudini dai colleghi che potrebbero essere difficili da scrollare di dosso in fondo alla strada. Per lo più è facile dire cosa è buono e cosa no - ad esempio la copertura del Test unitario qui è praticamente inesistente per vari motivi (per lo più scuse povere mescolate con uno o due punti validi). Ultimamente, però, ho notato un evento normale di cui non sono sicuro.
Ogni volta che iniziamo un nuovo progetto, naturalmente dobbiamo trovare qualsiasi codice rilevante che debba essere esteso, modificato o rimosso. Mi sembra che, nella stragrande maggioranza delle volte, tutto ciò che non rientra nelle sezioni più comunemente utilizzate dell'applicazione richiede alle persone un'età da trovare all'interno del codebase. Ci sono uno o due lead tecnologici che conoscono bene la loro sezione del codice, ma anche a volte vengono smarcati e devono trascorrere molto tempo a cercare ciò che richiedono o rivolgersi a qualcuno che ha modificato recentemente quella parte del codice ( se qualcuno) per aiuto. Quando parlo da molto tempo, non intendo ore (di solito) ma mi sembra che una buona base di codici possa essere navigabile in qualsiasi momento nel giro di pochi minuti nel peggiore dei casi, a chiunque abbia anche una vaga familiarità con il sistema.
Quindi, la mia domanda. Il problema sopra è dovuto a un codice scarsamente strutturato? In alternativa, è compito degli sviluppatori non avere abbastanza conoscenza della base di codice? O è semplicemente inevitabile nelle applicazioni di grandi dimensioni, indipendentemente da quanto lavoro vada a mantenere chiara la struttura del file?
Oppure, in effetti ... sto solo perdendo tempo su un argomento che non ha davvero importanza?