Ciao!<div><br></div><div>Sostengo l'anti-corruption layer suggerito da Matteo.</div><div>Definirei lato applicazione delle interfacce es. InvoiceGateway che saranno poi implementate, possibilmente in un diverso package, dalle implementazioni es. AS400InvoiceGateway.</div><div><br></div><div>È importante che il layer sia davvero anti corruption, cioè che i dettagli implementativi riguardo il db legacy (ma in generale qualsiasi db) non inquinino il tuo pacchetto "core" dove sono le logiche.</div><div>Ad esempio i gateway potrebbero tornare le tue Entity applicative o altri DTO indipendenti dal db.</div><div><br></div><div>Così facendo potrai testare le tue logiche in maniera unitaria (usando dei mock per i gateway).</div><div>Se possibile scriverei dei testi di integrazione per le implementazioni dei gateway legacy.</div><div><br></div><div>Al prossimo incontro magari ci racconterai come va!</div><div><br></div><div>Ciao!</div><div>Gab</div><div><br><br>On Tuesday, September 9, 2014, skler <<a href="mailto:skler84@gmail.com">skler84@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ciao Simone,<br>
<br>
se prevedi l’integrazione di un ORM per la nuova applicazione, Doctrine ha un buon supporto per il Reverse Engineering che ti evita la scrittura delle entity, ti tocchera’ definire a mano le associazioni: <br>
<br>
<a href="http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html#reverse-engineering" target="_blank">http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html#reverse-engineering</a><br>
<br>
Il tool e’ stato portato anche su DoctrineBundle di Symfony:<br>
<br>
<a href="http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html" target="_blank">http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html</a> <br>
<br>
Ciao,<br>
Mauro<br>
<br>
-----Original Message-----<br>
Da: Simone Fumagalli <<a href="javascript:;" onclick="_e(event, 'cvml', 'simone@iliveinperego.com')">simone@iliveinperego.com</a>><br>
Rispondi: Simone Fumagalli <<a href="javascript:;" onclick="_e(event, 'cvml', 'simone@iliveinperego.com')">simone@iliveinperego.com</a>>><br>
Data: 09 settembre 2014 at 12:53:50<br>
A: milano <<a href="javascript:;" onclick="_e(event, 'cvml', 'milano@ml.grusp.org')">milano@ml.grusp.org</a>>><br>
Oggetto:  [pugMI] [OT] Database legacy<br>
<br>
> Ciao, spero non me ne vogliate per l'OT ma penso che la cosa posso<br>
> interessare anche ad altri.<br>
><br>
> Mi trovo a dover sviluppare da zero un'applicazione collegata a un DB<br>
> legacy a cui voglio apportare nel lungo periodo delle modifiche. Nel<br>
> breve/medio periodo però non posso effettuare nessun intervento perchè<br>
> ci sono diversi script che ci scrivono e ogni modifica potrebbe avere<br>
> effetti imprevedibili.<br>
><br>
> Da una parte ho quindi la necessità di aggiornare lo schema del DB<br>
> mentre dall'altra devo garantire la continuità di funzionamento.<br>
> Situazione classica che però non ho mai affrontato.<br>
><br>
> Che strada mi consigliate ? Avete letture, blog/libri sull'argomento ?<br>
><br>
> Ciao e grazie<br>
><br>
> --<br>
> Simone<br>
> _______________________________________________<br>
> Milano mailing list<br>
> <a href="javascript:;" onclick="_e(event, 'cvml', 'Milano@ml.grusp.org')">Milano@ml.grusp.org</a><br>
> <a href="http://ml.grusp.org/listinfo.cgi/milano-grusp.org" target="_blank">http://ml.grusp.org/listinfo.cgi/milano-grusp.org</a><br>
><br>
<br>
--<br>
skler<br>
<br>
<br>
_______________________________________________<br>
Milano mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'Milano@ml.grusp.org')">Milano@ml.grusp.org</a><br>
<a href="http://ml.grusp.org/listinfo.cgi/milano-grusp.org" target="_blank">http://ml.grusp.org/listinfo.cgi/milano-grusp.org</a><br>
</blockquote></div><br><br>-- <br><div dir="ltr"><div><span style="font-family:Helvetica;font-size:small">Tondi Gabriele - web and mobile software developer</span><br></div><font><br style="font-family:Helvetica;text-align:-webkit-auto"><b style="font-family:Helvetica;text-align:-webkit-auto">mail:</b><span style="font-family:Helvetica;text-align:-webkit-auto"> <a href="mailto:info@gabrieletondi.it" style="color:rgb(17,85,204)" target="_blank">info@gabrieletondi.it</a></span><br style="font-family:Helvetica;text-align:-webkit-auto"><b style="font-family:Helvetica;text-align:-webkit-auto">web:</b><span style="font-family:Helvetica;text-align:-webkit-auto"> <a href="http://www.gabrieletondi.it/" style="color:rgb(17,85,204)" target="_blank">www.gabrieletondi.it</a></span><br style="font-family:Helvetica;text-align:-webkit-auto"><b style="font-family:Helvetica;text-align:-webkit-auto">mobile:</b><span style="font-family:Helvetica;text-align:-webkit-auto"> 392 54 50 560</span><br style="font-family:Helvetica;text-align:-webkit-auto"><b style="font-family:Helvetica;text-align:-webkit-auto">skype: </b><span style="font-family:Helvetica;text-align:-webkit-auto">gabrieletondi</span><br style="font-family:Helvetica;text-align:-webkit-auto"><br style="font-family:Helvetica;text-align:-webkit-auto"><i style="font-family:Helvetica;text-align:-webkit-auto">In ottemperanza alla Legge 196/2003 sulla tutela dei dati personali, le<br>informazioni contenute in questa mail sono di natura confidenziale e si<br>devono intendere ad uso esclusivo della persona o della Società cui è<br>destinato. Se chi legge questo messaggio non è il destinatario o l’incaricato<br>per la consegna del messaggio al destinatario, non deve assolutamente<br>copiare, divulgare, distribuire o in qualsiasi modo utilizzare le<br>informazioni contenute in questa mail.Nel caso in cui aveste ricevuto questa<br>mail per errore, vogliate avvertire il mittente al più presto a mezzo posta<br>elettronica e distruggere il presente messaggio.<br><br>According to Italian Law 196/2003 concerning privacy, the information<br>contained in this mail is confidential and is intended for the addressee<br>only. If you are not the correct recipient, please note that any use,<br>dissemination or copy of this document/information is strictly prohibited.<br>If you have received this message in error, you should destroy it and please<br>notify us immediatly by e-mail.</i></font><br></div><br>