Advertisement
Advertisement

More Related Content

Advertisement

Case study: un approccio modulare in un progetto legacy

  1. Un approccio modulare in un progetto legacy Mariano Fiorentino
  2. Chi sono Co-fondatore PUG Torino Architetto software per Engineering IT Responsabile tecnico su progetti Fiat/Chrysler
  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 dell'epoca”
  4. Standard php 4 del 2003 import('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. Com'era e.Link
  6. e.Link in Europa
  7. e.Link oggi Negli anni il software ha subito un'evoluzione vertiginosa, 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  100'000 utenti
  8. e.Link nel mondo
  9. Un portale per i dealers
  10. Strategie di evoluzione In 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. 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. Before Frameworks... /** * @version $Id: class_php_date.php,v 1.53 2012/07/03 class 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. 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. 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. 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. 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. 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. Tutte le volte che ha senso // load required classes require_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 MVC class ActionController {
  19. Un po' di statistiche #CR #Bugs Bugs/CR 2005 176 2630 15 2006 308 4009 13 2007 285 3222 11 Introduzione dei 2008 537 2648 5 Framework Zend/Extjs 2009 341 2022 6 2010 330 1990 6 2011 372 2188 6 2012 515 1813 4
  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. Domande? mariano.fiorentino@gmail.com
Advertisement