In queste slide, presentate durante il Google Developer Group Dev Fest Mediterranean 2014 vi è una introduzione alla "Continuous integration" una pratica di sviluppo software dove i membri di un team integrano il loro lavoro frequentemente.Sono inoltre presentati alcuni tool integrabili in una "build" per misurare la qualità del codice PHP così da rispettare diverse metriche ed avere codice di qualità.
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
Very little workshop on HLS:
Mention of Synthesizing hardware using high level language, in particular C-like languages. Analysis of existent old language since 1980 to 2000: Cones, HardwareC, Transmogrifier C, SystemC, C2Verilog, Handel-C. Open problems using C-like languages (taken from Stephen Edwards' "The challenges of synthesizing Hardware from C-like languages").
Hardware design and synthesis using Esterel, reactive and synchronous language, ideal to describe a *behavioural* structure of hardware concurrent real-time controller and to test formal correctness. Easiness in creation of VHDL, Verilog, SystemC, Finite State Automata, dataflow design, and implementation on ASIC or FPGA or RePIC (processor architecture supporting direct esterel execution).
Example of a Preudo-Random Bit Sequence using Esterel versus the implementation using OrCAD software
Lucidi relativi al DVD di Programmazione in CFulvio Corno
Copia integrale dei lucidi presenti nel DVD di Programmazione in C del Politecnico di Torino. Il DVD è visibile on-line all'indirizzo http://corsiadistanza.polito.it/on-line/Prog_in_C/index2.htm
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite un’infrastruttura di calcolo distribuito e parallelo
"Ricercare la qualità del codice sviluppato è fondamentale, è un processo lento e continuo"
Il nostro relatore, Alessandro Candon, ci ha mostrato il passaggio da "ognuno a modo suo" a una linea comune eseguita da tutta l'equipe IT. Siamo scesi nei dettagli dei vari tool, KPI e metodologie utilizzate e sperimentate all'interno del Team IT di Decathlon Italia.
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
Very little workshop on HLS:
Mention of Synthesizing hardware using high level language, in particular C-like languages. Analysis of existent old language since 1980 to 2000: Cones, HardwareC, Transmogrifier C, SystemC, C2Verilog, Handel-C. Open problems using C-like languages (taken from Stephen Edwards' "The challenges of synthesizing Hardware from C-like languages").
Hardware design and synthesis using Esterel, reactive and synchronous language, ideal to describe a *behavioural* structure of hardware concurrent real-time controller and to test formal correctness. Easiness in creation of VHDL, Verilog, SystemC, Finite State Automata, dataflow design, and implementation on ASIC or FPGA or RePIC (processor architecture supporting direct esterel execution).
Example of a Preudo-Random Bit Sequence using Esterel versus the implementation using OrCAD software
Lucidi relativi al DVD di Programmazione in CFulvio Corno
Copia integrale dei lucidi presenti nel DVD di Programmazione in C del Politecnico di Torino. Il DVD è visibile on-line all'indirizzo http://corsiadistanza.polito.it/on-line/Prog_in_C/index2.htm
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite un’infrastruttura di calcolo distribuito e parallelo
"Ricercare la qualità del codice sviluppato è fondamentale, è un processo lento e continuo"
Il nostro relatore, Alessandro Candon, ci ha mostrato il passaggio da "ognuno a modo suo" a una linea comune eseguita da tutta l'equipe IT. Siamo scesi nei dettagli dei vari tool, KPI e metodologie utilizzate e sperimentate all'interno del Team IT di Decathlon Italia.
Jenkins - From Continuous Integration to Continuous DeliveryVirendra Bhalothia
Continuous Delivery is a process that merges Continuous Integration with automated deployment, test, and release; creating a Continuous Delivery solution. Continuous Delivery doesn't mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time.
We would see how we can enable CD with Jenkins.
Please check out The Remote Lab's DevOps offerings: www.slideshare.net/bhalothia/the-remote-lab-devops-offerings
http://theremotelab.io
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Anche voi siete in piena "APIFICATION"? Riccardo ci svela tutti i segreti per rilasciare API di successo. #apistrategy
Per ulteriori informazioni scrivi a wso2.sales@profesia.it
Visual Studio Code è il editor di codice sorgente che rende subito produttivi grazie alla sua semplicità e leggerezza ed in questo talk troverete una panoramica, oltre a tip & tricks utili.
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
Slide di presentazione del progetto Programma Il Futuro (http://www.programmailfuturo.it) che mi ha visto come progettista del software in cooperazione con Marco Ferrigno che ha curato l'infrastruttura di rete.
Il progetto, ideato dal prof. Giorgio Ventre (Univ. "Federico II" di Napoli) ed il prof. Enrico Nardelli (Univ. di Roma "Tor Vergata") per il CINI (Consorzio Interuniversitario Nazionale per l'Informatica) ed il MIUR (Ministero dell'Istruzione, Università e Ricerca), fa parte de "La Buona Scuola", iniziativa promossa dal Ministro Giannini, in collegamento con il progetto internazionale Code.org tra i cui testimonial Barak Obama.
Il portale, che è il primo ad integrare la crittografia frattale FNA che ho sviluppato, ha come cuore il sistema di registrazione con profilazione capillare - a nodi - degli utenti, ed il bridge di comunicazione (un hack) verso il sistema di registrazione di code.org e di hourofcode.com.
Nelle slides i link ipertestuali verso pastebin.com dove sono riportate alcune parti del codice crittografico e del bridge in Perl.
Jenkins - From Continuous Integration to Continuous DeliveryVirendra Bhalothia
Continuous Delivery is a process that merges Continuous Integration with automated deployment, test, and release; creating a Continuous Delivery solution. Continuous Delivery doesn't mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time.
We would see how we can enable CD with Jenkins.
Please check out The Remote Lab's DevOps offerings: www.slideshare.net/bhalothia/the-remote-lab-devops-offerings
http://theremotelab.io
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Anche voi siete in piena "APIFICATION"? Riccardo ci svela tutti i segreti per rilasciare API di successo. #apistrategy
Per ulteriori informazioni scrivi a wso2.sales@profesia.it
Visual Studio Code è il editor di codice sorgente che rende subito produttivi grazie alla sua semplicità e leggerezza ed in questo talk troverete una panoramica, oltre a tip & tricks utili.
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
Slide di presentazione del progetto Programma Il Futuro (http://www.programmailfuturo.it) che mi ha visto come progettista del software in cooperazione con Marco Ferrigno che ha curato l'infrastruttura di rete.
Il progetto, ideato dal prof. Giorgio Ventre (Univ. "Federico II" di Napoli) ed il prof. Enrico Nardelli (Univ. di Roma "Tor Vergata") per il CINI (Consorzio Interuniversitario Nazionale per l'Informatica) ed il MIUR (Ministero dell'Istruzione, Università e Ricerca), fa parte de "La Buona Scuola", iniziativa promossa dal Ministro Giannini, in collegamento con il progetto internazionale Code.org tra i cui testimonial Barak Obama.
Il portale, che è il primo ad integrare la crittografia frattale FNA che ho sviluppato, ha come cuore il sistema di registrazione con profilazione capillare - a nodi - degli utenti, ed il bridge di comunicazione (un hack) verso il sistema di registrazione di code.org e di hourofcode.com.
Nelle slides i link ipertestuali verso pastebin.com dove sono riportate alcune parti del codice crittografico e del bridge in Perl.
Programma il futuro: una scelta open sourceMarco Ferrigno
Un'analisi tecnica dello strumento che avrà un grande impatto culturale sul futuro del nostro Paese: Programma Il Futuro. Nato da un'idea che ha visto coinvolti Il MIUR, il CINI – Consorzio Interuniversitario Nazionale per l’Informatica - e aziende IT intervenute come sponsor, l'iniziativa ha l’obiettivo di fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica. Il fine ultimo è dunque la formazione sin dalla tenera età del pensiero computazionale. Scopriremo insieme al collega Mario Rossano (responsabile della progettazione software) il perchè di un approccio opensource ad un progetto ad elevata criticità per il sistema Paese.
Con la nascita di .NET Core l'utilizzo del framework .NET è sbarcato in modo ufficiale anche su altre piattaforme.
Scrivere applicazioni moderne con SDK e tool nativi su altre piattaforme è diventato la normalità.
Lo vedremo realizzando un semplice applicazione .NET Core su Linux ed analizzando varie possibilità di deploy su altre piattaforme Linux based con il minimo sforzo e senza limitazioni.
Impatto dell'Intelligenza Artificiale sul Gioco d'AzzardoDaniele Mondello
Analisi dell'impatto che sta avendo l'Intelligenza Artificiale sul gioco d'azzardo. L'intelligenza artificiale sta trasformando il gioco d'azzardo, offrendo vantaggi
significativi ma anche sollevando criticità e questioni etiche. La
regolamentazione, la prevenzione e la formazione giocano un ruolo cruciale nel
bilanciare l'innovazione con la protezione dei giocatori
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...Daniele Mondello
Gestire infrastrutture in cloud con la semplicità di scrivere file di configurazione. Tutto ciò grazie a Terraform, soluzione Open Source per gestire infrastrutture cloud indipendentemente dal Cloud.
Linux day 2021 Analisi Open Source dei dati pandemiciDaniele Mondello
Intervento al Linux Day con Roberto Siragusa sull'utilizzo di software Open Source per l'analisi dei dati Pandemici all'interno dell'Hub Vaccinale di Palermo
Gdg 2019 artificial intelligence, sviluppo web... le nuove regole del giocoDaniele Mondello
Dev Fest Mediterranean Le normative nelle nuove tecnologie. Come cambia lo scenario con le regole AGID. Le sfide dell'intelligenza artificiale. Il software come dispositivo medico.
Wiad 2018 - CREARE, GESTIRE E TROVARE INFORMAZIONI ALL'INTERNO DI UN AMBIENTE...Daniele Mondello
Come funziona un ospedale e come organizzare le informazioni per ottimizzare i processi. Dato strutturato VS dato destrutturato. Usabilità e sua importanza nell'Healthcare
Tutto quello che avreste voluto chiedere sui social network (ma non avete ami...Daniele Mondello
Caminetto sulla tematica dei Social Network realizzato presso il Rotary Club Baia dei Fenici.Una panoramica sui diversi social network, sui loro pericoli e opportunità
Una overview sulla storia della sicurezza informatica con un finale che analizza le minacce e le difese da attuare per protegere i nostri dati e la nostra privacy.
Il gruppo Open Data Sicilia presente all 'Incontro territoriale sulle Opportunità del PO FESR di Caltanissetta. All'interno della stessa presentazione indicazioni sul nuovo portale Open Data basato su ckan
Evoluzione del web development dalle cgi ai microservicesDaniele Mondello
Come si è sviluppato negli ultimi 20 anni lo sviluppo web? Nel Talk tenutosi all'incubatore Arca di Palermo per la masterclass di Angular 4 abbiamo fatto una cavalcata che ci ha portato dalle cgi in Perl ai Microservices
Presentazione sull'iniziativa #openamat per la 2° giornata sulla trasparenza al comune di Palermo, sull'importanza degli open data e come una comunità possa rispondere avendo in mano un pò di dati dalla PA
Osservatorio StartUp innovative realizzato tramite la piattaforma Leanus dell'Imprenditore che analizza lo stato delle StartUp innovative in Italia a fine 2016
Fascicolo sanitario & Dossier sanitario vantaggi nell’adozione di open source...Daniele Mondello
Nuove normative su Fascicolo Sanitario & Dossier sanitario vantaggi nell’adozione di Open Source con panoramica su alcuni progetti e Big Data, Conferenza Nazionale Software Libero
Analisi su nuovo sistema informatico nazionale,sui flussi sanitari, sulle possibilità offerte da un approccio verso l'analisi dei Big Data e Privacy di Daniele Mondello e Adriano Bertolino
pagoPa, i pagamenti elettronici nella Pubblica AmministrazioneDaniele Mondello
pagoPA iniziativa che consente a cittadini e imprese di pagare in maniera elettronica la Pubblica Amministrazione. Normativa e guida tecnica per il collegamento
Approccio ad una infrastruttura per MicroserviceDaniele Mondello
Preentazione effettuata al Cnu Linux Meeting 2016 nel quale vine descritto un "approccio ad una infrastruttura per Microservices".Vengono descritte diverse tecnologie a supporto come RabbitMQ, Jenkins, Doickers.
Introduzione a GIT con le basi per utilizzarlo in poco tempo.Storia, comandi di base (git init, commit, push pull) e comandi avanzati.Presentazione realizzata da Daniele Mondello, Fabio Pileri, Marcello Vetro al PHP User Group Palermo.
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
Pitch presentato al Linux Day 2015 a Palermo su Vagrant e docker per confrontarli, scegliere ed iniziare. Partendo dal concetto di virtualizzazione, proseguendo con l'analisi delle due soluzioni fino a dare cenni sull'installazione ed un primo utilizzo.
2. 2 Chi Sono 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
4. 4 Prodotto Industriale
An. Normative An. Rischi Ric. Mercato
Sc. Prodotto
Req. Sistema
Cond. Utilizzo
Man. Utente
Pr. Esecutivo
SOUP
An. Requisiti CONTINUOUS INTEGRATION
-Test Responsive
-Test Javascript
-Ottimizzazione
-Test Usability
-Test Sicurezza
-Test C&P
-Test Style
-Test PHP
-Test DB
-TestW3C
Casi D’uso Wireframes
REGOLE DI SVILUPPO
[Regole di Stile]
[Regole DB]
[Regole Documentazione Codice]
[Regole di Sviluppo]
[Regole di Sistema]
Server CI CVS
Project
Management
BETA
SPERIMENTAZIONE
RILASCIO V. 1
Progettazione
Sviluppo
5. Cosa è la Continuous 5 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.”
CVS
CI
SERVER
IDE
Continuous Integration
PM
TOOL
6. Cosa è 6 un Control Version System?
E' un tool che permette il controllo di versione (versioning), cioè la
gestione di versioni multiple di un insieme di informazioni.
CVS
7. 7 CVS: GIT
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
8. 8 Funzionamento GIT
Version 1 Version 2 Version 3 Version 4 Version 5
File A
File B
File C
File A
File C
File A1
File A1
File File B1 B
File B
File C1
File B1
File C2
File A2
File B1
File B
File C3
File B1
CVS
9. 9 FLUSSO DI LAVORO
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 CI a c c o r t o s i d e l
cambiamento scarica i l 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
10. 10 MOTORE CI e BUILD
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
Differenti tipi di BUILD
Pubblica
Test Integrazione
Prod. Documentazione
Test Sicurezza
14. 14 Metriche del software
Le metriche software sono degli standard per misurare alcune proprietà del
software.
Le metriche del software permettono di valutare funzionalità e il rapporto
costi/efficacia, così da realizzare software di qualità.
Affidabilità
Efficienza Sicurezza Manutenibilità
High Quality Code
15. 15 Tools: PHPLOC
Permette di misurare le dimensioni di un progetto PHP, ottenendo informazioni utili riguardanti il numero di elementi presenti.
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
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
16. 16 Tools: PHP DEPEND
Software che esegue l'analisi statica del codice sorgente.
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
Analizza il codice sorgente di
un applicativo PHP e ne
produce un albero sintattico
astratto (AST)
In output genera:
due grafici
17. 17 Tools: PHP DEPEND
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
Inheritance
Coupling
Size & Complexity
Number Of Packages
Number of Classes
Number Of Methods
Lines Of Code
Cyclomatic Complexy
Coupling
CALLS
FANOUT
Inheritance
Average Num of Derived Classes
Average Hierarchy Height
Size &
Complexity
Software che esegue l'analisi statica del codice sorgente.
18. 18 Tools: PHP DEPEND
Software che esegue l'analisi statica del codice sorgente.
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
19. 19 Tools: PHP Mess Detector
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.
PHPLOC
PHP Lines of Code Regole sulle
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
Dimensioni
Regole su
Codice
inutilizzato
Regole
Design
Regole
attribuzione
nomi
21. 21 Tools: PHP Code Sniffer
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.
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
22. 22 Tools: PHP Code Sniffer
PHP Framework Interoperability Group
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
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
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
23. 23 Tools: PHP Code Sniffer
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.
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
PSR-1 Garantisce un elevato livello
di interoperabilità tecnica tra
codice PHP condiviso.
PSR 1
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
.
24. 24 Tools: PHPCPD
Strumento che rivela la presenza di codice duplicato all’interno del codice sorgente
PHPLOC
PHP Lines of Code
PHP DEPEND
PHPMD
PHP Mass Detector
PHPCS
PHP Code Sniffer
PHPCPD
Copy/Paste Detector
25. Daniele Mondello
Continuous Integration e High Quality Code
GRAZIE!
info@danielemondello.it
@dmondello
Daniele.Mondello