So che ci sono alcuni altro domande sul refactoring di C ++ , ma nessuno soddisfa i miei bisogni.
Ho uno sfondo in programmazione Java e Python, ma ora mi sto avvicinando al C ++. Ho letto (e assolutamente amo) libri sulla codifica agile, sviluppo basato sui test (TDD), refactoring, ecc. Il primo che mi viene in mente è "Clean Code". Da questo ho imparato un sacco di cose: mantieni le mie funzioni corte, mantieni le mie lezioni brevi, mantieni nomi di variabili / classi coerenti, ecc.
Mi piace molto questo modo di lavorare: prima risolvi il problema, poi rifatta in piccole funzioni (e una funzione fa solo una cosa), aggiungendo sottoclassi, ecc.
Credo fermamente che questo modo di lavorare sia facilitato dai moderni IDE: aggiungi file, rinomina la funzione, rinomina le classi, ecc.
Ora sto codificando in C ++ con CMake all'interno di Qt Creator . Tutte queste cose sono più difficili. Anche aggiungere un file è "più difficile" (devo generare un file di intestazione, un file sorgente, aggiungerli a cmakelist.txt, eseguire di nuovo cmake, ecc.). Stai pensando di rinominare i file (devo modificare manualmente tutti gli include) o alcuni metodi di refactoring efficaci in Java con Eclipse non ha alcun costo ora mi dà un mal di testa.
Voglio dire ... non è "difficile" nel senso che sono "compiti difficili", ma la mente umana è piuttosto pigra: se posso fare un altro modo più semplice ..
In Java con alcuni IDE moderni come Eclipse .. refactor è la parte divertente; alcuni clic e voilà, è fatto. Lo faccio ogni volta che passo un test. È facile, divertente e mi piace leggere il mio codice pulito con piccole funzioni e nomi carini.
Ora tutto è più difficile soprattutto perché non ci sono strumenti che possono farlo senza costi. Mi spoglio in atteggiamenti cattivi guidati dalla pigrizia: scrivere diverse classi in un unico file .hong super-lungo perché non voglio creare nuovi file, passare ore a modificare classi / funzioni / variabili con nomi più appropriati e cambiare manualmente tutto include, scrive funzioni lunghe perché quando cambio automaticamente gli attributi di una funzione che riguarda la std lib Qt Creator sta cancellando i template così evito di farlo, e molti altri ..
Questo è abbastanza frustrante .. Cosa mi puoi consigliare? Devo essere più rilassato nelle "regole" della scrittura di codice pulito? Devo non pensare a questa roba e pensare solo a far funzionare le cose? Oppure (forse questa è la domanda più importata) devo pensare a qualche altro modo di lavorare? Non più modo incrementale / iterativo / agile, ma più cascata e dedicare più tempo alla progettazione di roba prima della codifica nella speranza di ridurre al minimo il refactoring quando i test sono passati?
Comunque, qualsiasi commento è benvenuto perché sono molto lontano dall'essere un buon programmatore:)