Quote Originariamente inviata da valia Visualizza il messaggio
ovviamente pure io ho dei progetti che ORA rifarei diversamente, per te è grave utilizzare chiavi o join con stringhe. Esperienza.
Un bell'esercizio che ci vece fare il mio prof di ingegneria del sw 2 è stato prendere i progetti presentati per ingegneria del sw 1 e riscriverli applicando le tecniche di programmazione viste durante il corso (o parte del corso) e ti assicuro che non è stato semplice e in questo l'esperienza e la buona volontà non ti aiutano.

Parlando del db, 99 su 100 hai un errore di progettazione che non è detto sia imputabile al developer: in aziende che hanno una certa serietà l'omino che si occupa fisicamente del db non è l'omino che sviluppa l'applicazione e soprattutto l'omino che decide come è fatto il db non è l'omino che scrive l'applicazione (la mia esperienza di developer mi ha visto arrivare dall'alto le specifiche, tipo quelle del db. Ho avuto possibilità di discuterle e di migliorarle, ma in alcuni casi ho dovuto fare come mi dicevano e basta). Se tu sei un developer e non sai scrivere altro che spaghetti code, un problema c'è, soprattutto perché se conosci il ciclo di vita del sw, sai che la maggior parte del tempo lo passi a far manutenzione e correzione degli errori, quindi l'incapacità iniziale complica ogni ulteriore attività e stavolta non c'è la possibilità di dire "la specifica mi è arrivata dall'alto".
Ehm.... avrò scritto "spaghetti code" i primi 3 mesi ( sai com'e'....ero cresciuto col basic "puro"....), ma da allora di spaghetti code non ne ho scritto più ( e non saprei neppure come scriverlo... ).
Per quanto riguarda il design di db etc.etc. purtroppo ( o per fortuna ) lavorando sempre in piccole aziende, non ho dovuto sottostare a diverse figure professionali e avevo quindi una certa libertà di movimento.

Di progetti grandi ne ho sviluppati diversi, su uno sbagliai approccio al db (capita) e mi resi conto dell'errore quando era tempo di elaborare le ricerche....ci metteva dannatamente troppo.

Feci mente locale, dedicai 2 giorni alla riscrittura del db, conversione dei dati e riscrittura del codice che riguardava le tabelle interessate e ridussi del 90% il tempo di elaborazione delle ricerche.

Non ho mai avuto la presunzione di avere "SEMPRE" ragione sui progetti....anzi....quando ho un progetto analizzo OGNI IPOTESI anche la più remota per poter valutare eventuali criticità.
Ho lavorato con persone MOLTO in gamba e persone MOLTO incompetenti. Ho imparato da entrambi, ma ti assicuro che tra ingegneri e programmatori "smanettoni" ho visto molta più competenza in questi ultimi e non nei primi.

Forse dopo 10 anni di esperienza un ingegnere surclassa uno smanettone con 10 anni di esperienza, ma l'ingegnere deve avere l'umiltà di poter commettere errori, e finora non ne ho trovato uno che ammettesse un errore ( tant'è che sto portando avanti il progetto con chiavi di tipo stringa e per ogni join -e sto cercando di ottimizzarle- il processore mi chiede pietà.... )