Un approccio modulare  in un progetto legacy     Mariano Fiorentino
Chi sono          Co-fondatore PUG Torino    Architetto software per Engineering ITResponsabile tecnico su progetti Fiat/C...
Progetto e.Link    Nasce nel 2003 per dare uno strumento informatico ai    concessionari per vendere vetture da catalogo....
Standard php 4 del 2003import(Marca);import(Concessionario);$marcaObj = new Marca();$concessionario = new Concessionario()...
Comera e.Link
e.Link in Europa
e.Link oggiNegli anni il software ha subito unevoluzionevertiginosa, viene arricchito di moduli di ogni genere.    6 mili...
e.Link nel mondo
Un portale per i dealers
Strategie di evoluzioneIn un software di queste dimensioni è necessario:    ridurre al minimo il codice prodotto con le n...
Zend Framework in e.Link    Zend_Http                               Zend_Amf    Zend_Mail                             ...
Before Frameworks.../*** @version $Id: class_php_date.php,v 1.53 2012/07/03class PhpDate {      function toChar($format = ...
Before Frameworks...    53 commit in 9 anni prima di arrivare ad una    versione definitiva.    Necessità di studiarsi i...
Gestione delle date                               attuale$date = new Zend_Date(     time(),     Zend_Date::TIMESTAMP,     ...
La localizzazione...    Problema ancora più critico delle date perchè di più    ampia portata, non si tratta solo eventua...
Potersi dedicare al                               software...$locale = new Zend_Locale(ar_MA);$localNames = $locale->getTr...
Integrazioni con Google$client = new Zend_Http_Client();$client->setUri(http://maps.google.com/maps/geo);$client->setConfi...
Tutte le volte che ha                                    senso// load required classesrequire_once Zend/Loader.php;Zend_Lo...
Un po di statistiche                              #CR   #Bugs   Bugs/CR                       2005   176    2630        15...
Ma perchè proprio                   Zend Framework?    Uno dei due framework php più usati al mondo    Un ampia comunità...
Domande?mariano.fiorentino@gmail.com
Upcoming SlideShare
Loading in...5
×

Case study: un approccio modulare in un progetto legacy

602

Published on

L'utilizzo di Zend Framework 1 all'interno del progetto Link, software usato da una 'fabbrica automobilistica torinese' per fornire servizi ai concessionari. Link è probabilmente il software in php più grande d'Europa con più di 6 milioni di righe di codice, nato nel 2003 utilizzando la versione 4 del linguaggio, Il talk illustrerà come negli anni si è passati dallo scriversi tutto in casa all'utilizzo dei moduli zend per abbassare i costi di sviluppo, migliorare la scalabilità e limitare le anomalie.">Case study: un approccio modulare in un progetto legacy

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
602
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Case study: un approccio modulare in un progetto legacy

  1. 1. Un approccio modulare in un progetto legacy Mariano Fiorentino
  2. 2. Chi sono Co-fondatore PUG Torino Architetto software per Engineering ITResponsabile tecnico su progetti Fiat/Chrysler
  3. 3. Progetto e.Link Nasce nel 2003 per dare uno strumento informatico ai concessionari per vendere vetture da catalogo. Viene sviluppato con php4/mysql secondo gli “standard tecnologici dellepoca”
  4. 4. Standard php 4 del 2003import(Marca);import(Concessionario);$marcaObj = new Marca();$concessionario = new Concessionario();?> <html> <link rel="Stylesheet" href="fiat_link.css"> <body> <? if ( $id_marca == "" ) { $id_marca = $SS_CODBRAND;// una global... $tablaResultados = array(); if ( $mode == "concesionario" ) {
  5. 5. Comera e.Link
  6. 6. e.Link in Europa
  7. 7. e.Link oggiNegli anni il software ha subito unevoluzionevertiginosa, viene arricchito di moduli di ogni genere. 6 milioni di righe di codice Attualmente un gruppo di 50+ persone Oltre 150 programmatori nel tempo 3000+ classi 100+ integrazioni con sistemi esterni 100000 utenti
  8. 8. e.Link nel mondo
  9. 9. Un portale per i dealers
  10. 10. Strategie di evoluzioneIn un software di queste dimensioni è necessario: ridurre al minimo il codice prodotto con le nuove evolutive usare componenti standard, cercare di non reinventare la ruota
  11. 11. Zend Framework in e.Link Zend_Http  Zend_Amf Zend_Mail  Zend_GData Zend_Locale  Zend_Config Zend_Log  Zend_Translate Zend_Currency  Zend_Cache Zend_Pdf  Zend_Json
  12. 12. Before Frameworks.../*** @version $Id: class_php_date.php,v 1.53 2012/07/03class PhpDate { function toChar($format = "") { if (!$format) $format = "YYYY-MM-DD HH:MI:SS"; $format = str_replace("YYYY", "Y", $format); $format = str_replace("MM", "m", $format); if ($this->plain) { if ($format == "Y-m-d") return $this->anno."-".$this->mese... if ($format == "d-m-Y")...
  13. 13. Before Frameworks... 53 commit in 9 anni prima di arrivare ad una versione definitiva. Necessità di studiarsi in casa ed implementare tutti gli standard dei paesi su cui si rilascia il software. Soluzione inevitabilmente progettata per il problema in oggetto, molto probabilmente non esportabile. ~2000 problemi relativi alle date in 10 anni.
  14. 14. Gestione delle date attuale$date = new Zend_Date( time(), Zend_Date::TIMESTAMP, new Zend_Locale($locale_id) );echo $date->get(Zend_Date::DATE_MEDIUM);
  15. 15. La localizzazione... Problema ancora più critico delle date perchè di più ampia portata, non si tratta solo eventualmente di formattare numeri, ma bisogna gestire: – contenuti locali e valori culturali – simboli – contesto sociale Le nostre aziende fanno software e non antropologia.
  16. 16. Potersi dedicare al software...$locale = new Zend_Locale(ar_MA);$localNames = $locale->getTranslationList();// Locale per il Marocco<localeDisplayNames> <localeDisplayPattern> <localePattern>{0} ({1})</localePattern> <localeSeparator>،</localeSeparator> </localeDisplayPattern> <languages> <language type="aa">‫/<ﺍﻸﻓﺍﺮﻳﺓ‬language> <language type="ab">‫/<ﺍﻸﺒﺧﺍﺰﻳﺓ‬language>
  17. 17. Integrazioni con Google$client = new Zend_Http_Client();$client->setUri(http://maps.google.com/maps/geo);$client->setConfig($pars);$client->setParameterGet(array( output => , //default json key => $this->googleAPIKey, q => $this->address.));$response = $client->request();
  18. 18. Tutte le volte che ha senso// load required classesrequire_once Zend/Loader.php;Zend_Loader::loadClass (Zend_Translate);Zend_Loader::loadClass (Zend_Locale);Zend_Loader::loadClass (Zend_Registry);Zend_Loader::loadClass (Zend_Log_Writer_Stream);Zend_Loader::loadClass (Zend_Log);Zend_Loader::loadClass (Zend_Config_Ini);// Link MVCclass ActionController {
  19. 19. Un po di statistiche #CR #Bugs Bugs/CR 2005 176 2630 15 2006 308 4009 13 2007 285 3222 11Introduzione dei 2008 537 2648 5Framework Zend/Extjs 2009 341 2022 6 2010 330 1990 6 2011 372 2188 6 2012 515 1813 4
  20. 20. Ma perchè proprio Zend Framework? Uno dei due framework php più usati al mondo Un ampia comunità di sviluppatori Supporto da parte di un azienda
  21. 21. Domande?mariano.fiorentino@gmail.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×