O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Continous Delivery & HQ Code

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 26 Anúncio

Continous Delivery & HQ Code

Baixar para ler offline

Continous Delivery e codice di Alta Qualità in PHP. Usare Git , Jenkins e diversi tool per realizzare codice di qualità e per effettuare il deploy in maniera automatica.
Presentazione effettuata al 5 incontro del Palermo PHP User Group al teatro Gregotti

Continous Delivery e codice di Alta Qualità in PHP. Usare Git , Jenkins e diversi tool per realizzare codice di qualità e per effettuare il deploy in maniera automatica.
Presentazione effettuata al 5 incontro del Palermo PHP User Group al teatro Gregotti

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Semelhante a Continous Delivery & HQ Code (20)

Mais de Daniele Mondello (20)

Anúncio

Mais recentes (20)

Continous Delivery & HQ Code

  1. 1. Daniele Mondello Palermo 29/04/2013
  2. 2. Chi Sono2 About me Nasco nel 1971 a Palermo e dopo un’ infanzia fatta di cartoni animati, Super Santos, libri e Coin-Up nell’estate dell’86 ricevo in dono un COMMODORE 64 che mi cambia la vita. Daniele Mondello • Management • Team Leader • Quality Manager • Web Architect • Healthcare IT Consultant • UX Expert • Ubuntu, CentOS • Mac OSX • Windows • IOS • Android • Embedded OS: Raspbian,Pidora • PHP (5 years) • Javascript (10 years) • ASP(12 years) • MySQL (5 years) • HTML, CSS3 (14 years) • Ruby, Rails (1 year) Developer O.S. General Skill
  3. 3. 19863 Diego!
  4. 4. Prodotto Industriale4 Ric. MercatoAn. Normative An. Rischi Cond. Utilizzo Sc. Prodotto Req. Sistema Man. Utente An. Requisiti CONTINUOUS INTEGRATION -Test Responsive -Test Javascript -Ottimizzazione -Test Usability -Test Sicurezza -Test C&P -Test Style -Test PHP -Test DB -TestW3C REGOLE DI SVILUPPO [Regole di Stile] [Regole DB] [Regole Documentazione Codice] [Regole di Sviluppo] [Regole di Sistema] Casi D’uso Wireframes Pr. Esecutivo SOUP CVSServer CI Project Management BETA SPERIMENTAZIONE RILASCIO V. 1 Progettazione Sviluppo
  5. 5. Cosa è la Continuous Integration?5 CVS CI SERVER IDE Continuous Integration ”E’ una pratica di sviluppo software dove i membri di un team integrano il loro lavoro frequentemente, almeno una volta al giorno. Ogni integrazione è verificata da una build automatica (inclusi i test) per individuare gli errori d’integrazione il più rapidamente possibile.” PM TOOL
  6. 6. …..e la Continuous Delivery?6 SVILUPPO INTEGRAZIONE BUILD QA Code DEPLOY Continuous Integration Continuous Delivery
  7. 7. Cosa è un Control Version System?7 E' un tool che permette il controllo di versione (versioning), cioè la gestione di versioni multiple di un insieme di informazioni. CVS
  8. 8. CVS: GIT8 02 Dividere lo sviluppo del progetto in più linee indipendenti , chiamati "rami ", che possono evolvere separatamente 03 Periodicamente ricombinare i rami in un processo per riconciliare le modifiche apportate in due o più ram 01 Esaminare lo stato di un progetto nel più breve tempo possibile 04 Mostrare le differenze tra le varie versioni del progetto CVS
  9. 9. Funzionamento GIT9 File A Version 1 Version 2 Version 3 Version 4 Version 5 File B File C File A File C File A1 File B File C1 File B1 File B File C2 File B1 File A1 File B File C3 File B1 File A2 File B1 CVS
  10. 10. FLUSSO DI LAVORO10 Build Privata Server CI Lancio di una build privata Lo sviluppatore effettua una Build Privata sulla propria postazione così da integrare eventuali cambiamenti effettuati dagli altri membri del team e verificato che l’integrazione dia un sistema funzionante. Commit sul CVS del codice Lo sviluppatore conclusa l’attività effettua un commit sul repository del sistema di controllo di versione. 5 Lancio SCRIPT su server CI I l s e r v e r d i C I a c c o r t o s i d e l cambiamento scarica il codice aggiornato e lancia uno script di build così da integrare questi cambiamenti e da ricostruire il sistema e ri-testarlo ed a seguito del risultato della build, genera un feedback (es: email) visibile al team CVS DELIVERY
  11. 11. MOTORE CI e BUILD11 Il sistema di CI viene utilizzato per: - collezionare il codice dai repository remoti - lanciare i test automatici - lanciare test statici sul codice - generare report più o meno complessi - effettuare delle misurazioni rispetto a delle metriche - notificare a chi di dovere Privata Test sul codice Test PHP Test Javascript Deploy Minifizzazione Cambio URL Disattivazione Warning Pubblica Test Integrazione Prod. Documentazione Test Sicurezza Differenti tipi di BUILD CI SERVER
  12. 12. JENKINS: I PROGETTI12 CI SERVER
  13. 13. JENKINS: LA BUILD 1/213 CI SERVER
  14. 14. JENKINS: LA BUILD 2/214 CI SERVER
  15. 15. Metriche del software15 Affidabilità Le metriche software sono degli standard per misurare alcune proprietà del software permettendo di valutare funzionalità e il rapporto costi/efficacia, così da realizzare software di qualità. Efficienza Sicurezza Manutenibilità High Quality Code CI SERVER
  16. 16. PHPCS PHP Code Sniffer Tools: PHPLOC16 Permette di misurare le dimensioni di un progetto PHP, ottenendo informazioni utili riguardanti il numero di elementi presenti. PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Informazioni sulle dimensioni di un progetto linee di codice, linee di codice commentate e non commentate, numero di classi,dimensione media delle classi, media di funzioni nelle classi. Informazioni sulle complessità di un progetto Complessità ciclomatica rispetto alle linee di codice. Informazioni sulle struttura Numero di Namespace, Interfacce, Classi( Astratte e Concrete), Numero di metodi (pubblici e Non), Numero Funzioni e Numero Costanti. Autore: S. Bergmann
  17. 17. PHPCS PHP Code Sniffer Tools: PHP DEPEND17 Software che esegue l'analisi statica del codice sorgente. PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Analizza il codice sorgente di un applicativo PHP e ne produce un albero sintattico astratto (AST) In output genera: due grafici
  18. 18. PHPCS PHP Code Sniffer Tools: PHP DEPEND18 PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Coupling Inheritance Number Of Methods Number Of Packages Size & Complexity Number of Classes Lines Of Code Cyclomatic Complexy CALLS FANOUT Coupling Average Num of Derived Classes Inheritance Average Hierarchy Height Size & Complexity Software che esegue l'analisi statica del codice sorgente.
  19. 19. PHPCS PHP Code Sniffer Tools: PHP DEPEND19 PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Software che esegue l'analisi statica del codice sorgente.
  20. 20. PHPCS PHP Code Sniffer Tools: PHP Mess Detector20 Analizza il codice sorgente di un progetto PHP e cerca di estrarne i potenziali problemi, applicando un insieme predefinito di regole per l’analisi del codice. PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Regole sulle Dimensioni Regole su Codice inutilizzato Regole Design Regole attribuzione nomi
  21. 21. PHPCS PHP Code Sniffer Tools: PHP Mess Detector21 PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Regole sulle Dimensioni Regole su Codice inutilizzato Regole Design Cyclomatic Complexity NPath Complexity ExcessiveMethodLength ExcessiveClassLength ExcessivePublicCount TooManyFields ExcessiveClassComplexity TooManyFields UnusedPrivateField UnusedLocalVariable ExitExpression EvalExpression GotoStatement NumberOfChildren DepthOfInheritance CouplingBetweenObjects Regole attribuzione nomi ShortVariable LongVariable ShortMethodName ConstructorWithName ConstantNaming. BooleanGetMethod.
  22. 22. PHPCS PHP Code Sniffer Tools: PHP Code Sniffer22 Tool per l’analisi del codice che rileva violazioni delle convenzioni di scrittura (coding standard), così da aiutare a mantenere il codice pulito, consistente e manutenibile. PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code
  23. 23. Agavi AWS SDK for PHP (Amazon Web Services) Apache log4php Assetic and Buzz Aura Project and Solar Framework CakePHP Composer and Packagist Contao Open Source CMS Doctrine Drupal eZ Publish TYPO3 Flow Jackalope Joomla Laravel PEAR Phalcon PHPCS PHP Code Sniffer Tools: PHP Code Sniffer23 PHP Framework Interoperability Group PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code Phing phpBB phpDocumentor PPI Framework PrestaShop Propel PyroCMS SabreDAV Sculpin Stash SugarCRM Symfony2 The community at large Wikibase and Semantic MediaWiki Yii framework Zend Framework 2 Zikula
  24. 24. PHPCS PHP Code Sniffer Tools: PHP Code Sniffer24 Tool per l’analisi del codice che rileva violazioni delle convenzioni di scrittura (coding standard), così da aiutare a mantenere il codice pulito, consistente e manutenibile. PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code PSR 1 PSR-1 Garantisce un elevato livello di interoperabilità tecnica tra codice PHP condiviso. PSR-2 Fornisce una guida dello stile di codifica da adottare nella scrittura codice estendendo il PSR-1 PSR-3 Descrive una interfaccia comune per le librerie di log. PSR 2 PSR 0 PSR 3 PSR 4 PSR-4 Descrive un nuovo standard per l’autoloading FPSR-0 descrive i requisiti necessari ai quali ci si deve uniformare per garantire l''interoperabilità tra gli autoloader .
  25. 25. PHPCS PHP Code Sniffer Tools: PHPCPD25 Strumento che rivela la presenza di codice duplicato all’interno del codice sorgente PHP DEPEND PHPCPD Copy/Paste Detector PHPMD PHP Mass Detector PHPLOC PHP Lines of Code
  26. 26. PHP User Group PALERMO http://olomedia.it GRAZIE! info@danielemondello.it @dmondello daniele.mondello

×