Il nostro team ha recentemente ereditato un progetto relativamente grande da un'altra società (~ 250k linee). È stato sviluppato utilizzando C ++ Builder e intendiamo trasferire il lato Ui a Qt. La maggior parte del codice Ui è separato dalla logica di business (yay!), Ma il lato logico è piuttosto confuso.
C'è molta eredità di diamanti in corso (eredità virtuale per fortuna), ma rende la comprensione del codice piuttosto difficile da fare.
Abbiamo pochissima documentazione per andare avanti, cosa c'è non è aggiornato (commenti inclusi).
Ho generato diagrammi di classi usando Doxygen, ecco quello più complesso (ho dovuto rimuovere la maggior parte dei nomi di classe ma ho mantenuto alcuni dei più importanti e mantenuto i tipi di dati standard C ++ e le classi std, sì, ereditano da std )
FinorasiamostatiingradodiconvertireilprogrammabaseinQtesiamoaunpuntoincuipossiamoiniziareaconvertirelafunzionalitàdelprogrammabitperbit.Ilproblemaè,nevalelapenaalungotermine?Vorremmomantenerequestosoftwarecomenostroproprioalungotermine.
Esisteunapprocciogeneraledaadottareperdistricarequestotipodipasticciodiereditarietàodovremmosemplicementeriprogettarcidazeroemanteneresolobiteframmentidelcodiceesistentementreprocediamo?
MODIFICA:altreinformazioni
Zaviorhapubblicatounlinkaunarticolosulperchénondovremmoiniziaredazero,maanchePtolemyhasollevatoalcunebuonedomandeevorreiaggiungerealcuneinformazionisullanostrasituazione.
Ilprogrammacheabbiamononè"privo di bug". Esistono problemi noti che gli utenti hanno soluzioni alternative per la maggior parte. Non esiste una "lista" di questi problemi, che viene attualmente compilata parlando a tutti gli utenti esistenti uno per uno in quanto tendono a tenere per sé le cose.
Siamo tutti nuovi sviluppatori di questo progetto. La nostra unica risorsa è uno sviluppatore che ha iniziato a lavorare sul progetto a circa metà della sua durata. È disponibile principalmente via e-mail / chat. Ha anche messo insieme una documentazione su come funzionano alcune parti del codice.
Il programma è stato usato finora come strumento interno. Vorremmo renderlo commercialmente fattibile.
EDIT 2:
Una delle cose più importanti che vogliamo fare è avere il programma in Qt. Attualmente sta utilizzando il framework VCL di C ++ Builder che nessuno nel nostro team ha familiarità con e abbiamo solo 1 licenza per. Durante il mio lavoro di porting da VCL a Qt ho trovato la struttura del codice disordinata e ho messo in discussione la decisione di "convertire" e ripristinare.