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

Case study: un approccio modulare in un progetto legacy

on

  • 855 views

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

Statistics

Views

Total Views
855
Views on SlideShare
839
Embed Views
16

Actions

Likes
2
Downloads
7
Comments
0

2 Embeds 16

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

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Case study: un approccio modulare in un progetto legacy Case study: un approccio modulare in un progetto legacy Presentation Transcript

  • Un approccio modulare in un progetto legacy Mariano Fiorentino
  • Chi sono Co-fondatore PUG Torino Architetto software per Engineering ITResponsabile tecnico su progetti Fiat/Chrysler
  • 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”
  • 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" ) {
  • Comera e.Link
  • e.Link in Europa
  • 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
  • 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 nuove evolutive usare componenti standard, cercare di non reinventare la ruota
  • 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
  • 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")...
  • 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.
  • Gestione delle date attuale$date = new Zend_Date( time(), Zend_Date::TIMESTAMP, new Zend_Locale($locale_id) );echo $date->get(Zend_Date::DATE_MEDIUM);
  • 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.
  • 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>
  • 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();
  • 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 {
  • 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
  • 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
  • Domande?mariano.fiorentino@gmail.com