Case study: un approccio modulare in un progetto legacy
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Case study: un approccio modulare in un progetto legacy

  • 919 views
Uploaded 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......

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
919
On Slideshare
903
From Embeds
16
Number of Embeds
2

Actions

Shares
Downloads
7
Comments
0
Likes
2

Embeds 16

http://lanyrd.com 9
http://www.linkedin.com 7

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Un approccio modulare in un progetto legacy Mariano Fiorentino
  • 2. Chi sono Co-fondatore PUG Torino Architetto software per Engineering ITResponsabile 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 dellepoca”
  • 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. Comera e.Link
  • 6. e.Link in Europa
  • 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. e.Link nel mondo
  • 9. Un portale per i dealers
  • 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. 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/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. 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 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. 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. 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