Con l'esperienza arriva il giudizio di sapere quando il codice è veramente cattivo, e quando è appena scritto in uno stile diverso. Se è perfettamente funzionante e mantenibile e c'è una buona copertura di test automatizzata , allora non è male e hai solo bisogno di aprire la tua mente. Probabilmente imparerai qualcosa. Il codice errato non è funzionale e mantenibile.
Ecco alcuni indicatori di codice veramente scadente:
- Grandi blocchi di logica sono stati duplicati anziché refactored.
- Dipendenze circolari tra classi o pacchetti
- Alto accoppiamento; bassa coesione
- Variabili non utilizzate, scrittura su variabili che non vengono mai lette, codice non raggiungibile.
- Reimplementazione delle funzioni di libreria standard, ad es. formattazione della data.
- Logica inutilmente complessa; 50 linee di codice dove 10 farebbe bene.
- Nessun commento che descriva lo scopo delle classi o dei metodi.
- Commenti fuorvianti.
Una mancanza di test automatici non significa che il codice sia cattivo, ma significa che il progetto è cattivo.
Queste non sono una questione di gusti; queste pratiche rendono la manutenzione del programma molto più costosa.
How do you prepare yourself?
Accetta il fatto che ci vuole un po 'per essere in grado di lavorare con successo su un nuovo codice base. Se è "perfettamente mantenibile" e la copertura del test è elevata, ci vuole meno tempo ma non accadrà immediatamente. Se il codice è cattivo, la prima cosa che faccio è avvertire gli stakeholder che è in cattive condizioni e il progresso iniziale sarà lento. Se sono scettici, accendo il mio reclamo mostrando loro un esempio di problemi nel codice reale e spiegando come varia dalle migliori pratiche del settore.