Should we be thinking about a style of writing code that is better suited to the contemporary software design and architecture of being agile and user-centric (hence evolving faster compared to business requirements) that incorporates both elements of re-usability and also erasability?
Il problema di fondo con il codice cancellabile o estensibile è la comprensione. Meglio lo sviluppatore (i) capisce il problema che si sta risolvendo e il modo migliore per risolverlo, migliore è la soluzione.
Comprendere non è tanto uno stile di codifica o persino uno stile di progettazione: tutti gli elementi e le tecniche discussi nell'articolo (ad esempio stratificazione, isolamento, composizione, interfacce comuni) sono tecniche comuni. Si tratta di un processo mentale.
Il processo descritto nell'articolo collegato descrive la crescente comprensione dell'autore. L'autore avvia il codice di copia-incolla (passaggio 1), quindi fa un passo indietro e lo consolida in librerie (passaggio 2). Successivamente l'autore condivide il codice comune tra i progetti (passaggio 3), quindi realizza che condividere troppo è un onere di manutenzione e crea livelli di astrazione isolati (passaggio 4), quindi si ripete con parti sempre più grandi (passaggi 5, 6 e 7).
Sebbene i passaggi siano familiari agli sviluppatori, le specifiche non sono così importanti. Sono inclusi per il contesto e per "raccontare una storia". Ciò che è importante è:
- Alcuni pensieri e progetti in primo piano sono fondamentali ma non smettere di pensare una volta che inizi a programmare. A meno che tu non abbia familiarità con il problema, il tuo design cambierà man mano che ne impari di più.
- Pertanto, non aver paura di refactoring (e l'eliminazione del codice è solo una sottocategoria di refactoring).
- Pertanto, crea un codice che ti permetta di effettuare il refactoring. Se non riesci a modificare il codice (ad esempio non lo capisci o è troppo fragile (ad esempio manca di test automatici)), rimarrai bloccato con disegni scadenti.
L'autore fa alcuni buoni spunti lungo il percorso, come cercare errori e risolverli invece di creare soluzioni alternative ingombranti.